<?php //e5c9de2467833eedb490a2e90bdcf52162f7f70909a4fa961ebc658b8b13bb72
/** @noinspection all */

namespace App {

    use App\Restaurant\ResTable;
    use Carbon\Carbon;
    use Illuminate\Database\Eloquent\Model;
    use Illuminate\Database\Eloquent\Relations\BelongsTo;
    use Illuminate\Database\Eloquent\Relations\BelongsToMany;
    use Illuminate\Database\Eloquent\Relations\HasMany;
    use Illuminate\Database\Eloquent\Relations\HasOne;
    use Illuminate\Database\Eloquent\Relations\MorphTo;
    use Illuminate\Database\Eloquent\Relations\MorphToMany;
    use Illuminate\Notifications\DatabaseNotification;
    use Illuminate\Notifications\DatabaseNotificationCollection;
    use Laravel\Passport\Client;
    use Laravel\Passport\Token;
    use LaravelIdea\Helper\App\Restaurant\_IH_ResTable_QB;
    use LaravelIdea\Helper\App\_IH_AccountTransaction_C;
    use LaravelIdea\Helper\App\_IH_AccountTransaction_QB;
    use LaravelIdea\Helper\App\_IH_AccountType_C;
    use LaravelIdea\Helper\App\_IH_AccountType_QB;
    use LaravelIdea\Helper\App\_IH_Account_C;
    use LaravelIdea\Helper\App\_IH_Account_QB;
    use LaravelIdea\Helper\App\_IH_Barcode_C;
    use LaravelIdea\Helper\App\_IH_Barcode_QB;
    use LaravelIdea\Helper\App\_IH_Brands_C;
    use LaravelIdea\Helper\App\_IH_Brands_QB;
    use LaravelIdea\Helper\App\_IH_BusinessLocation_C;
    use LaravelIdea\Helper\App\_IH_BusinessLocation_QB;
    use LaravelIdea\Helper\App\_IH_Business_C;
    use LaravelIdea\Helper\App\_IH_Business_QB;
    use LaravelIdea\Helper\App\_IH_CashRegisterTransaction_C;
    use LaravelIdea\Helper\App\_IH_CashRegisterTransaction_QB;
    use LaravelIdea\Helper\App\_IH_CashRegister_C;
    use LaravelIdea\Helper\App\_IH_CashRegister_QB;
    use LaravelIdea\Helper\App\_IH_Category_C;
    use LaravelIdea\Helper\App\_IH_Category_QB;
    use LaravelIdea\Helper\App\_IH_Contact_C;
    use LaravelIdea\Helper\App\_IH_Contact_QB;
    use LaravelIdea\Helper\App\_IH_Currency_C;
    use LaravelIdea\Helper\App\_IH_Currency_QB;
    use LaravelIdea\Helper\App\_IH_CustomerGroup_C;
    use LaravelIdea\Helper\App\_IH_CustomerGroup_QB;
    use LaravelIdea\Helper\App\_IH_DashboardConfiguration_C;
    use LaravelIdea\Helper\App\_IH_DashboardConfiguration_QB;
    use LaravelIdea\Helper\App\_IH_Discount_C;
    use LaravelIdea\Helper\App\_IH_Discount_QB;
    use LaravelIdea\Helper\App\_IH_DocumentAndNote_C;
    use LaravelIdea\Helper\App\_IH_DocumentAndNote_QB;
    use LaravelIdea\Helper\App\_IH_ExpenseCategory_C;
    use LaravelIdea\Helper\App\_IH_ExpenseCategory_QB;
    use LaravelIdea\Helper\App\_IH_GroupSubTax_C;
    use LaravelIdea\Helper\App\_IH_GroupSubTax_QB;
    use LaravelIdea\Helper\App\_IH_InvoiceLayout_C;
    use LaravelIdea\Helper\App\_IH_InvoiceLayout_QB;
    use LaravelIdea\Helper\App\_IH_InvoiceScheme_C;
    use LaravelIdea\Helper\App\_IH_InvoiceScheme_QB;
    use LaravelIdea\Helper\App\_IH_Media_C;
    use LaravelIdea\Helper\App\_IH_Media_QB;
    use LaravelIdea\Helper\App\_IH_NotificationTemplate_C;
    use LaravelIdea\Helper\App\_IH_NotificationTemplate_QB;
    use LaravelIdea\Helper\App\_IH_PaymentAccount_C;
    use LaravelIdea\Helper\App\_IH_PaymentAccount_QB;
    use LaravelIdea\Helper\App\_IH_Printer_C;
    use LaravelIdea\Helper\App\_IH_Printer_QB;
    use LaravelIdea\Helper\App\_IH_ProductRack_C;
    use LaravelIdea\Helper\App\_IH_ProductRack_QB;
    use LaravelIdea\Helper\App\_IH_ProductVariation_C;
    use LaravelIdea\Helper\App\_IH_ProductVariation_QB;
    use LaravelIdea\Helper\App\_IH_Product_C;
    use LaravelIdea\Helper\App\_IH_Product_QB;
    use LaravelIdea\Helper\App\_IH_PurchaseLine_C;
    use LaravelIdea\Helper\App\_IH_PurchaseLine_QB;
    use LaravelIdea\Helper\App\_IH_ReferenceCount_C;
    use LaravelIdea\Helper\App\_IH_ReferenceCount_QB;
    use LaravelIdea\Helper\App\_IH_SellingPriceGroup_C;
    use LaravelIdea\Helper\App\_IH_SellingPriceGroup_QB;
    use LaravelIdea\Helper\App\_IH_StockAdjustmentLine_C;
    use LaravelIdea\Helper\App\_IH_StockAdjustmentLine_QB;
    use LaravelIdea\Helper\App\_IH_System_C;
    use LaravelIdea\Helper\App\_IH_System_QB;
    use LaravelIdea\Helper\App\_IH_TaxRate_C;
    use LaravelIdea\Helper\App\_IH_TaxRate_QB;
    use LaravelIdea\Helper\App\_IH_TransactionPayment_C;
    use LaravelIdea\Helper\App\_IH_TransactionPayment_QB;
    use LaravelIdea\Helper\App\_IH_TransactionSellLinesPurchaseLines_C;
    use LaravelIdea\Helper\App\_IH_TransactionSellLinesPurchaseLines_QB;
    use LaravelIdea\Helper\App\_IH_TransactionSellLine_C;
    use LaravelIdea\Helper\App\_IH_TransactionSellLine_QB;
    use LaravelIdea\Helper\App\_IH_Transaction_C;
    use LaravelIdea\Helper\App\_IH_Transaction_QB;
    use LaravelIdea\Helper\App\_IH_TypesOfService_C;
    use LaravelIdea\Helper\App\_IH_TypesOfService_QB;
    use LaravelIdea\Helper\App\_IH_Unit_C;
    use LaravelIdea\Helper\App\_IH_Unit_QB;
    use LaravelIdea\Helper\App\_IH_UserContactAccess_C;
    use LaravelIdea\Helper\App\_IH_UserContactAccess_QB;
    use LaravelIdea\Helper\App\_IH_User_C;
    use LaravelIdea\Helper\App\_IH_User_QB;
    use LaravelIdea\Helper\App\_IH_VariationGroupPrice_C;
    use LaravelIdea\Helper\App\_IH_VariationGroupPrice_QB;
    use LaravelIdea\Helper\App\_IH_VariationLocationDetails_C;
    use LaravelIdea\Helper\App\_IH_VariationLocationDetails_QB;
    use LaravelIdea\Helper\App\_IH_VariationTemplate_C;
    use LaravelIdea\Helper\App\_IH_VariationTemplate_QB;
    use LaravelIdea\Helper\App\_IH_VariationValueTemplate_C;
    use LaravelIdea\Helper\App\_IH_VariationValueTemplate_QB;
    use LaravelIdea\Helper\App\_IH_Variation_C;
    use LaravelIdea\Helper\App\_IH_Variation_QB;
    use LaravelIdea\Helper\App\_IH_Warranty_C;
    use LaravelIdea\Helper\App\_IH_Warranty_QB;
    use LaravelIdea\Helper\Illuminate\Notifications\_IH_DatabaseNotification_QB;
    use LaravelIdea\Helper\Laravel\Passport\_IH_Client_C;
    use LaravelIdea\Helper\Laravel\Passport\_IH_Client_QB;
    use LaravelIdea\Helper\Laravel\Passport\_IH_Token_C;
    use LaravelIdea\Helper\Laravel\Passport\_IH_Token_QB;
    use LaravelIdea\Helper\Modules\Superadmin\Entities\_IH_Subscription_C;
    use LaravelIdea\Helper\Modules\Superadmin\Entities\_IH_Subscription_QB;
    use LaravelIdea\Helper\Spatie\Permission\Models\_IH_Permission_C;
    use LaravelIdea\Helper\Spatie\Permission\Models\_IH_Permission_QB;
    use LaravelIdea\Helper\Spatie\Permission\Models\_IH_Role_C;
    use LaravelIdea\Helper\Spatie\Permission\Models\_IH_Role_QB;
    use Modules\Superadmin\Entities\Subscription;
    use Spatie\Permission\Models\Permission;
    use Spatie\Permission\Models\Role;
    
    /**
     * @property int $id
     * @property int $business_id
     * @property string $name
     * @property string $account_number
     * @property string|null $account_type
     * @property string|null $note
     * @property int $created_by
     * @property bool $is_closed
     * @property Carbon|null $deleted_at
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property int|null $account_type_id
     * @method BelongsTo|_IH_AccountType_QB account_type()
     * @method static _IH_Account_QB onWriteConnection()
     * @method _IH_Account_QB newQuery()
     * @method static _IH_Account_QB on(null|string $connection = null)
     * @method static _IH_Account_QB query()
     * @method static _IH_Account_QB with(array|string $relations)
     * @method _IH_Account_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_Account_C|Account[] all($columns = ['*'])
     * @ownLinks account_type_id,\App\AccountType,id
     * @foreignLinks id,\App\TransactionPayment,account_id|id,\App\AccountTransaction,account_id
     * @mixin _IH_Account_QB
     */
    class Account extends Model {}
    
    /**
     * @property int $id
     * @property int $account_id
     * @property string $type
     * @property string|null $sub_type
     * @property string|float $amount
     * @property string|null $reff_no
     * @property Carbon $operation_date
     * @property int $created_by
     * @property int|null $transaction_id
     * @property int|null $transaction_payment_id
     * @property int|null $transfer_transaction_id
     * @property string|null $note
     * @property Carbon|null $deleted_at
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property Account $account
     * @method BelongsTo|_IH_Account_QB account()
     * @property _IH_Media_C|Media[] $media
     * @property-read int $media_count
     * @method MorphToMany|_IH_Media_QB media()
     * @property Transaction|null $transaction
     * @method BelongsTo|_IH_Transaction_QB transaction()
     * @property AccountTransaction|null $transfer_transaction
     * @method BelongsTo|_IH_AccountTransaction_QB transfer_transaction()
     * @method static _IH_AccountTransaction_QB onWriteConnection()
     * @method _IH_AccountTransaction_QB newQuery()
     * @method static _IH_AccountTransaction_QB on(null|string $connection = null)
     * @method static _IH_AccountTransaction_QB query()
     * @method static _IH_AccountTransaction_QB with(array|string $relations)
     * @method _IH_AccountTransaction_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_AccountTransaction_C|AccountTransaction[] all($columns = ['*'])
     * @ownLinks account_id,\App\Account,id|transaction_id,\App\Transaction,id|transaction_payment_id,\App\TransactionPayment,id
     * @mixin _IH_AccountTransaction_QB
     */
    class AccountTransaction extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property int|null $parent_account_type_id
     * @property int $business_id
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property AccountType|null $parent_account
     * @method BelongsTo|_IH_AccountType_QB parent_account()
     * @property _IH_AccountType_C|AccountType[] $sub_types
     * @property-read int $sub_types_count
     * @method HasMany|_IH_AccountType_QB sub_types()
     * @method static _IH_AccountType_QB onWriteConnection()
     * @method _IH_AccountType_QB newQuery()
     * @method static _IH_AccountType_QB on(null|string $connection = null)
     * @method static _IH_AccountType_QB query()
     * @method static _IH_AccountType_QB with(array|string $relations)
     * @method _IH_AccountType_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_AccountType_C|AccountType[] all($columns = ['*'])
     * @foreignLinks id,\App\Account,account_type_id
     * @mixin _IH_AccountType_QB
     */
    class AccountType extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property string|null $description
     * @property float|null $width
     * @property float|null $height
     * @property float|null $paper_width
     * @property float|null $paper_height
     * @property float|null $top_margin
     * @property float|null $left_margin
     * @property float|null $row_distance
     * @property float|null $col_distance
     * @property int|null $stickers_in_one_row
     * @property bool $is_default
     * @property bool $is_continuous
     * @property int|null $stickers_in_one_sheet
     * @property int|null $business_id
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @method static _IH_Barcode_QB onWriteConnection()
     * @method _IH_Barcode_QB newQuery()
     * @method static _IH_Barcode_QB on(null|string $connection = null)
     * @method static _IH_Barcode_QB query()
     * @method static _IH_Barcode_QB with(array|string $relations)
     * @method _IH_Barcode_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_Barcode_C|Barcode[] all($columns = ['*'])
     * @ownLinks business_id,\App\Business,id
     * @mixin _IH_Barcode_QB
     */
    class Barcode extends Model {}
    
    /**
     * @property int $id
     * @property int $business_id
     * @property string $name
     * @property string|null $description
     * @property int $created_by
     * @property Carbon|null $deleted_at
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @method static _IH_Brands_QB onWriteConnection()
     * @method _IH_Brands_QB newQuery()
     * @method static _IH_Brands_QB on(null|string $connection = null)
     * @method static _IH_Brands_QB query()
     * @method static _IH_Brands_QB with(array|string $relations)
     * @method _IH_Brands_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_Brands_C|Brands[] all($columns = ['*'])
     * @ownLinks business_id,\App\Business,id|created_by,\App\User,id
     * @foreignLinks id,\App\Product,brand_id|id,\App\Discount,brand_id
     * @mixin _IH_Brands_QB
     */
    class Brands extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property int $currency_id
     * @property Carbon|null $start_date
     * @property string $tax_number_1
     * @property string $tax_label_1
     * @property string|null $tax_number_2
     * @property string|null $tax_label_2
     * @property float $default_profit_percent
     * @property int $owner_id
     * @property string $time_zone
     * @property int $fy_start_month
     * @property string $accounting_method
     * @property string|float|null $default_sales_discount
     * @property string $sell_price_tax
     * @property string|null $logo
     * @property string|null $sku_prefix
     * @property bool $enable_tooltip
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property int|null $default_sales_tax
     * @property bool $purchase_in_diff_currency Allow purchase to be in different currency then the business currency
     * @property int|null $purchase_currency_id
     * @property string|float $p_exchange_rate 1 Purchase currency = ? Base Currency
     * @property bool $enable_product_expiry
     * @property int $transaction_edit_days
     * @property int $stock_expiry_alert_days
     * @property string|null $keyboard_shortcuts
     * @property bool $enable_editing_product_from_purchase
     * @property string|null $sales_cmsn_agnt
     * @property bool $item_addition_method
     * @property bool $enable_inline_tax
     * @property string $currency_symbol_placement
     * @property string $expiry_type
     * @property string $on_product_expiry
     * @property int $stop_selling_before Stop selling expied item n days before expiry
     * @property bool $enable_brand
     * @property bool $enable_category
     * @property bool $enable_sub_category
     * @property bool $enable_price_tax
     * @property bool|null $enable_purchase_status
     * @property int|null $default_unit
     * @property string|null $pos_settings
     * @property bool $enable_lot_number
     * @property bool $enable_racks
     * @property array|null $enabled_modules
     * @property string $date_format
     * @property string $time_format
     * @property bool $enable_row
     * @property bool $enable_position
     * @property array|null $ref_no_prefixes
     * @property int|null $created_by
     * @property bool $is_active
     * @property string|null $theme_color
     * @property array|null $email_settings
     * @property array|null $sms_settings
     * @property bool $enable_rp rp is the short form of reward points
     * @property string|null $rp_name rp is the short form of reward points
     * @property string|float $amount_for_unit_rp rp is the short form of reward points
     * @property string|float $min_order_total_for_rp rp is the short form of reward points
     * @property int|null $max_rp_per_order rp is the short form of reward points
     * @property string|float $redeem_amount_per_unit_rp rp is the short form of reward points
     * @property string|float $min_order_total_for_redeem rp is the short form of reward points
     * @property int|null $min_redeem_point rp is the short form of reward points
     * @property int|null $max_redeem_point rp is the short form of reward points
     * @property int|null $rp_expiry_period rp is the short form of reward points
     * @property string $rp_expiry_type rp is the short form of reward points
     * @property bool $enable_sub_units
     * @property string|null $custom_labels
     * @property array|null $common_settings
     * @property array $weighing_scale_setting used to store the configuration of weighing scale
     * @property-read string $business_address attribute
     * @property Currency $currency
     * @method BelongsTo|_IH_Currency_QB currency()
     * @property _IH_BusinessLocation_C|BusinessLocation[] $locations
     * @property-read int $locations_count
     * @method HasMany|_IH_BusinessLocation_QB locations()
     * @property User $owner
     * @method HasOne|_IH_User_QB owner()
     * @property _IH_Printer_C|Printer[] $printers
     * @property-read int $printers_count
     * @method HasMany|_IH_Printer_QB printers()
     * @property _IH_Subscription_C|Subscription[] $subscriptions
     * @property-read int $subscriptions_count
     * @method HasMany|_IH_Subscription_QB subscriptions()
     * @method static _IH_Business_QB onWriteConnection()
     * @method _IH_Business_QB newQuery()
     * @method static _IH_Business_QB on(null|string $connection = null)
     * @method static _IH_Business_QB query()
     * @method static _IH_Business_QB with(array|string $relations)
     * @method _IH_Business_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_Business_C|Business[] all($columns = ['*'])
     * @ownLinks owner_id,\App\User,id|currency_id,\App\Currency,id|default_sales_tax,\App\TaxRate,id
     * @foreignLinks id,\App\User,business_id|id,\App\Brands,business_id|id,\Spatie\Permission\Models\Role,business_id|id,\App\TaxRate,business_id|id,\App\Unit,business_id|id,\App\Contact,business_id|id,\App\Category,business_id|id,\App\Product,business_id|id,\App\VariationTemplate,business_id|id,\App\Transaction,business_id|id,\App\Barcode,business_id|id,\App\InvoiceScheme,business_id|id,\App\BusinessLocation,business_id|id,\App\InvoiceLayout,business_id|id,\App\ExpenseCategory,business_id|id,\App\Printer,business_id|id,\App\CashRegister,business_id|id,\App\CustomerGroup,business_id|id,\App\Restaurant\ResTable,business_id|id,\App\Restaurant\Booking,business_id|id,\Modules\Superadmin\Entities\Subscription,business_id|id,\App\SellingPriceGroup,business_id|id,\App\DashboardConfiguration,business_id
     * @mixin _IH_Business_QB
     */
    class Business extends Model {}
    
    /**
     * @property int $id
     * @property int $business_id
     * @property string $name
     * @property string|null $landmark
     * @property string $country
     * @property string $state
     * @property string $city
     * @property string $zip_code
     * @property string|null $mobile
     * @property string|null $alternate_number
     * @property string|null $email
     * @property Carbon|null $deleted_at
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property int $invoice_scheme_id
     * @property int $invoice_layout_id
     * @property bool|null $print_receipt_on_invoice
     * @property string $receipt_printer_type
     * @property int|null $printer_id
     * @property string|null $website
     * @property string|null $custom_field1
     * @property string|null $custom_field2
     * @property string|null $custom_field3
     * @property string|null $custom_field4
     * @property string|null $location_id
     * @property int|null $selling_price_group_id
     * @property string|null $default_payment_accounts
     * @property bool $is_active
     * @property array|null $featured_products
     * @property int|null $sale_invoice_layout_id
     * @property-read string $location_address attribute
     * @property SellingPriceGroup|null $price_group
     * @method BelongsTo|_IH_SellingPriceGroup_QB price_group()
     * @method static _IH_BusinessLocation_QB onWriteConnection()
     * @method _IH_BusinessLocation_QB newQuery()
     * @method static _IH_BusinessLocation_QB on(null|string $connection = null)
     * @method static _IH_BusinessLocation_QB query()
     * @method static _IH_BusinessLocation_QB with(array|string $relations)
     * @method _IH_BusinessLocation_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_BusinessLocation_C|BusinessLocation[] all($columns = ['*'])
     * @ownLinks business_id,\App\Business,id|invoice_scheme_id,\App\InvoiceScheme,id|invoice_layout_id,\App\InvoiceLayout,id|printer_id,\App\Printer,id|selling_price_group_id,\App\SellingPriceGroup,id
     * @foreignLinks id,\App\Transaction,location_id|id,\App\VariationLocationDetails,location_id
     * @mixin _IH_BusinessLocation_QB
     */
    class BusinessLocation extends Model {}
    
    /**
     * @property int $id
     * @property int $business_id
     * @property int|null $user_id
     * @property string $status
     * @property Carbon|null $closed_at
     * @property string|float $closing_amount
     * @property int $total_card_slips
     * @property int $total_cheques
     * @property string|null $closing_note
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property int|null $location_id
     * @property _IH_CashRegisterTransaction_C|CashRegisterTransaction[] $cash_register_transactions
     * @property-read int $cash_register_transactions_count
     * @method HasMany|_IH_CashRegisterTransaction_QB cash_register_transactions()
     * @method static _IH_CashRegister_QB onWriteConnection()
     * @method _IH_CashRegister_QB newQuery()
     * @method static _IH_CashRegister_QB on(null|string $connection = null)
     * @method static _IH_CashRegister_QB query()
     * @method static _IH_CashRegister_QB with(array|string $relations)
     * @method _IH_CashRegister_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_CashRegister_C|CashRegister[] all($columns = ['*'])
     * @ownLinks business_id,\App\Business,id|user_id,\App\User,id
     * @foreignLinks id,\App\CashRegisterTransaction,cash_register_id
     * @mixin _IH_CashRegister_QB
     */
    class CashRegister extends Model {}
    
    /**
     * @property int $id
     * @property int $cash_register_id
     * @property string|float $amount
     * @property string $pay_method
     * @property string $type
     * @property string $transaction_type
     * @property int|null $transaction_id
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @method static _IH_CashRegisterTransaction_QB onWriteConnection()
     * @method _IH_CashRegisterTransaction_QB newQuery()
     * @method static _IH_CashRegisterTransaction_QB on(null|string $connection = null)
     * @method static _IH_CashRegisterTransaction_QB query()
     * @method static _IH_CashRegisterTransaction_QB with(array|string $relations)
     * @method _IH_CashRegisterTransaction_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_CashRegisterTransaction_C|CashRegisterTransaction[] all($columns = ['*'])
     * @ownLinks cash_register_id,\App\CashRegister,id|transaction_id,\App\Transaction,id
     * @mixin _IH_CashRegisterTransaction_QB
     */
    class CashRegisterTransaction extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property int $business_id
     * @property string|null $short_code
     * @property int $parent_id
     * @property int $created_by
     * @property Carbon|null $deleted_at
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property string|null $category_type
     * @property string|null $description
     * @property string|null $slug
     * @property _IH_Category_C|Category[] $sub_categories
     * @property-read int $sub_categories_count
     * @method HasMany|_IH_Category_QB sub_categories()
     * @method static _IH_Category_QB onWriteConnection()
     * @method _IH_Category_QB newQuery()
     * @method static _IH_Category_QB on(null|string $connection = null)
     * @method static _IH_Category_QB query()
     * @method static _IH_Category_QB with(array|string $relations)
     * @method _IH_Category_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_Category_C|Category[] all($columns = ['*'])
     * @ownLinks business_id,\App\Business,id|created_by,\App\User,id
     * @foreignLinks id,\App\Product,category_id|id,\App\Product,sub_category_id|id,\App\Discount,category_id
     * @mixin _IH_Category_QB
     */
    class Category extends Model {}
    
    /**
     * @property int $id
     * @property int $business_id
     * @property string $type
     * @property string|null $supplier_business_name
     * @property string $name
     * @property string|null $tax_number
     * @property string|null $city
     * @property string|null $state
     * @property string|null $country
     * @property string|null $landmark
     * @property string $mobile
     * @property string|null $landline
     * @property string|null $alternate_number
     * @property int|null $pay_term_number
     * @property string|null $pay_term_type
     * @property int $created_by
     * @property bool $is_default
     * @property Carbon|null $deleted_at
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property int|null $customer_group_id
     * @property string|null $contact_id
     * @property string|null $custom_field1
     * @property string|null $custom_field2
     * @property string|null $custom_field3
     * @property string|null $custom_field4
     * @property string|null $email
     * @property string|float|null $credit_limit
     * @property int $total_rp rp is the short form of reward points
     * @property int $total_rp_used rp is the short form of reward points
     * @property int $total_rp_expired rp is the short form of reward points
     * @property string $contact_status
     * @property string|null $shipping_address
     * @property string|null $position
     * @property string|null $prefix
     * @property string|null $first_name
     * @property string|null $middle_name
     * @property string|null $last_name
     * @property string|null $address_line_2
     * @property string|null $zip_code
     * @property Carbon|null $dob
     * @property string|float $balance
     * @property string|null $custom_field5
     * @property string|null $custom_field6
     * @property string|null $custom_field7
     * @property string|null $custom_field8
     * @property string|null $custom_field9
     * @property string|null $custom_field10
     * @property-read string $contact_address attribute
     * @property Business $business
     * @method BelongsTo|_IH_Business_QB business()
     * @property _IH_DocumentAndNote_C|DocumentAndNote[] $documentsAndnote
     * @property-read int $documents_andnote_count
     * @method MorphToMany|_IH_DocumentAndNote_QB documentsAndnote()
     * @property DatabaseNotificationCollection|DatabaseNotification[] $notifications
     * @property-read int $notifications_count
     * @method MorphToMany|_IH_DatabaseNotification_QB notifications()
     * @property DatabaseNotificationCollection|DatabaseNotification[] $readNotifications
     * @property-read int $read_notifications_count
     * @method MorphToMany|_IH_DatabaseNotification_QB readNotifications()
     * @property DatabaseNotificationCollection|DatabaseNotification[] $unreadNotifications
     * @property-read int $unread_notifications_count
     * @method MorphToMany|_IH_DatabaseNotification_QB unreadNotifications()
     * @method static _IH_Contact_QB onWriteConnection()
     * @method _IH_Contact_QB newQuery()
     * @method static _IH_Contact_QB on(null|string $connection = null)
     * @method static _IH_Contact_QB query()
     * @method static _IH_Contact_QB with(array|string $relations)
     * @method _IH_Contact_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_Contact_C|Contact[] all($columns = ['*'])
     * @ownLinks business_id,\App\Business,id|created_by,\App\User,id|customer_group_id,\App\CustomerGroup,id
     * @foreignLinks id,\App\Transaction,contact_id|id,\App\Restaurant\Booking,contact_id
     * @mixin _IH_Contact_QB
     */
    class Contact extends Model {}
    
    /**
     * @property int $id
     * @property string $country
     * @property string $currency
     * @property string $code
     * @property string $symbol
     * @property string $thousand_separator
     * @property string $decimal_separator
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @method static _IH_Currency_QB onWriteConnection()
     * @method _IH_Currency_QB newQuery()
     * @method static _IH_Currency_QB on(null|string $connection = null)
     * @method static _IH_Currency_QB query()
     * @method static _IH_Currency_QB with(array|string $relations)
     * @method _IH_Currency_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_Currency_C|Currency[] all($columns = ['*'])
     * @foreignLinks id,\App\Business,currency_id
     * @mixin _IH_Currency_QB
     */
    class Currency extends Model {}
    
    /**
     * @property int $id
     * @property int $business_id
     * @property string $name
     * @property float $amount
     * @property int $created_by
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property string|null $price_calculation_type
     * @property int|null $selling_price_group_id
     * @method static _IH_CustomerGroup_QB onWriteConnection()
     * @method _IH_CustomerGroup_QB newQuery()
     * @method static _IH_CustomerGroup_QB on(null|string $connection = null)
     * @method static _IH_CustomerGroup_QB query()
     * @method static _IH_CustomerGroup_QB with(array|string $relations)
     * @method _IH_CustomerGroup_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_CustomerGroup_C|CustomerGroup[] all($columns = ['*'])
     * @ownLinks business_id,\App\Business,id|selling_price_group_id,\App\SellingPriceGroup,id
     * @foreignLinks id,\App\Contact,customer_group_id|id,\App\Transaction,customer_group_id
     * @mixin _IH_CustomerGroup_QB
     */
    class CustomerGroup extends Model {}
    
    /**
     * @property int $id
     * @property int $business_id
     * @property int $created_by
     * @property string $name
     * @property string $color
     * @property string|null $configuration
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @method static _IH_DashboardConfiguration_QB onWriteConnection()
     * @method _IH_DashboardConfiguration_QB newQuery()
     * @method static _IH_DashboardConfiguration_QB on(null|string $connection = null)
     * @method static _IH_DashboardConfiguration_QB query()
     * @method static _IH_DashboardConfiguration_QB with(array|string $relations)
     * @method _IH_DashboardConfiguration_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_DashboardConfiguration_C|DashboardConfiguration[] all($columns = ['*'])
     * @ownLinks business_id,\App\Business,id
     * @mixin _IH_DashboardConfiguration_QB
     */
    class DashboardConfiguration extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property int $business_id
     * @property int|null $brand_id
     * @property int|null $category_id
     * @property int|null $location_id
     * @property int|null $priority
     * @property string|null $discount_type
     * @property string|float $discount_amount
     * @property Carbon|null $starts_at
     * @property Carbon|null $ends_at
     * @property bool $is_active
     * @property bool|null $applicable_in_spg
     * @property bool|null $applicable_in_cg
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property _IH_Variation_C|Variation[] $variations
     * @property-read int $variations_count
     * @method BelongsToMany|_IH_Variation_QB variations()
     * @method static _IH_Discount_QB onWriteConnection()
     * @method _IH_Discount_QB newQuery()
     * @method static _IH_Discount_QB on(null|string $connection = null)
     * @method static _IH_Discount_QB query()
     * @method static _IH_Discount_QB with(array|string $relations)
     * @method _IH_Discount_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_Discount_C|Discount[] all($columns = ['*'])
     * @ownLinks brand_id,\App\Brands,id|category_id,\App\Category,id
     * @foreignLinks id,\App\TransactionSellLine,discount_id
     * @mixin _IH_Discount_QB
     */
    class Discount extends Model {}
    
    /**
     * @property int $id
     * @property int $business_id
     * @property int $notable_id
     * @property string $notable_type
     * @property string|null $heading
     * @property string|null $description
     * @property bool $is_private
     * @property int $created_by
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property User $createdBy
     * @method BelongsTo|_IH_User_QB createdBy()
     * @property _IH_Media_C|Media[] $media
     * @property-read int $media_count
     * @method MorphToMany|_IH_Media_QB media()
     * @property Model $notable
     * @method MorphTo notable()
     * @method static _IH_DocumentAndNote_QB onWriteConnection()
     * @method _IH_DocumentAndNote_QB newQuery()
     * @method static _IH_DocumentAndNote_QB on(null|string $connection = null)
     * @method static _IH_DocumentAndNote_QB query()
     * @method static _IH_DocumentAndNote_QB with(array|string $relations)
     * @method _IH_DocumentAndNote_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_DocumentAndNote_C|DocumentAndNote[] all($columns = ['*'])
     * @mixin _IH_DocumentAndNote_QB
     */
    class DocumentAndNote extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property int $business_id
     * @property string|null $code
     * @property Carbon|null $deleted_at
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @method static _IH_ExpenseCategory_QB onWriteConnection()
     * @method _IH_ExpenseCategory_QB newQuery()
     * @method static _IH_ExpenseCategory_QB on(null|string $connection = null)
     * @method static _IH_ExpenseCategory_QB query()
     * @method static _IH_ExpenseCategory_QB with(array|string $relations)
     * @method _IH_ExpenseCategory_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_ExpenseCategory_C|ExpenseCategory[] all($columns = ['*'])
     * @ownLinks business_id,\App\Business,id
     * @foreignLinks id,\App\Transaction,expense_category_id
     * @mixin _IH_ExpenseCategory_QB
     */
    class ExpenseCategory extends Model {}
    
    /**
     * @property int $group_tax_id
     * @property int $tax_id
     * @property TaxRate $tax_rate
     * @method BelongsTo|_IH_TaxRate_QB tax_rate()
     * @method static _IH_GroupSubTax_QB onWriteConnection()
     * @method _IH_GroupSubTax_QB newQuery()
     * @method static _IH_GroupSubTax_QB on(null|string $connection = null)
     * @method static _IH_GroupSubTax_QB query()
     * @method static _IH_GroupSubTax_QB with(array|string $relations)
     * @method _IH_GroupSubTax_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_GroupSubTax_C|GroupSubTax[] all($columns = ['*'])
     * @ownLinks group_tax_id,\App\TaxRate,id|tax_id,\App\TaxRate,id
     * @mixin _IH_GroupSubTax_QB
     */
    class GroupSubTax extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property string|null $header_text
     * @property string|null $invoice_no_prefix
     * @property string|null $invoice_heading
     * @property string|null $sub_total_label
     * @property string|null $discount_label
     * @property string|null $tax_label
     * @property string|null $total_label
     * @property string|null $logo
     * @property bool $show_logo
     * @property bool $show_business_name
     * @property bool $show_location_name
     * @property bool $show_landmark
     * @property bool $show_city
     * @property bool $show_state
     * @property bool $show_zip_code
     * @property bool $show_country
     * @property bool $show_mobile_number
     * @property bool $show_alternate_number
     * @property bool $show_email
     * @property bool $show_tax_1
     * @property bool $show_tax_2
     * @property bool $show_barcode
     * @property string|null $highlight_color
     * @property string|null $footer_text
     * @property bool $is_default
     * @property int $business_id
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property string|null $invoice_heading_paid
     * @property string|null $invoice_heading_not_paid
     * @property string|null $total_due_label
     * @property string|null $paid_label
     * @property bool $show_payments
     * @property bool $show_customer
     * @property string|null $customer_label
     * @property string|null $sub_heading_line1
     * @property string|null $sub_heading_line2
     * @property string|null $sub_heading_line3
     * @property string|null $sub_heading_line4
     * @property string|null $sub_heading_line5
     * @property string|null $table_product_label
     * @property string|null $table_qty_label
     * @property string|null $table_unit_price_label
     * @property string|null $table_subtotal_label
     * @property bool $show_client_id
     * @property string|null $client_id_label
     * @property string|null $date_label
     * @property bool $show_time
     * @property bool $show_brand
     * @property bool $show_sku
     * @property bool $show_cat_code
     * @property bool $show_sale_description
     * @property string|null $module_info
     * @property string|null $quotation_heading
     * @property string|null $quotation_no_prefix
     * @property string $design
     * @property string|null $client_tax_label
     * @property string|null $cat_code_label
     * @property string|null $cn_heading cn = credit note
     * @property string|null $cn_no_label
     * @property string|null $cn_amount_label
     * @property string|null $sales_person_label
     * @property bool $show_sales_person
     * @property bool $show_expiry
     * @property bool $show_lot
     * @property string|null $table_tax_headings
     * @property array|null $product_custom_fields
     * @property array|null $contact_custom_fields
     * @property array|null $location_custom_fields
     * @property bool $show_previous_bal
     * @property string|null $prev_bal_label
     * @property string|null $date_time_format
     * @property bool $show_image
     * @property bool $show_reward_point
     * @property array|null $common_settings
     * @property string|null $change_return_label
     * @property string|null $round_off_label
     * @property _IH_BusinessLocation_C|BusinessLocation[] $locations
     * @property-read int $locations_count
     * @method HasMany|_IH_BusinessLocation_QB locations()
     * @method static _IH_InvoiceLayout_QB onWriteConnection()
     * @method _IH_InvoiceLayout_QB newQuery()
     * @method static _IH_InvoiceLayout_QB on(null|string $connection = null)
     * @method static _IH_InvoiceLayout_QB query()
     * @method static _IH_InvoiceLayout_QB with(array|string $relations)
     * @method _IH_InvoiceLayout_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_InvoiceLayout_C|InvoiceLayout[] all($columns = ['*'])
     * @ownLinks business_id,\App\Business,id
     * @foreignLinks id,\App\BusinessLocation,invoice_layout_id
     * @mixin _IH_InvoiceLayout_QB
     */
    class InvoiceLayout extends Model {}
    
    /**
     * @property int $id
     * @property int $business_id
     * @property string $name
     * @property string $scheme_type
     * @property string|null $prefix
     * @property int|null $start_number
     * @property int $invoice_count
     * @property int|null $total_digits
     * @property bool $is_default
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @method static _IH_InvoiceScheme_QB onWriteConnection()
     * @method _IH_InvoiceScheme_QB newQuery()
     * @method static _IH_InvoiceScheme_QB on(null|string $connection = null)
     * @method static _IH_InvoiceScheme_QB query()
     * @method static _IH_InvoiceScheme_QB with(array|string $relations)
     * @method _IH_InvoiceScheme_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_InvoiceScheme_C|InvoiceScheme[] all($columns = ['*'])
     * @ownLinks business_id,\App\Business,id
     * @foreignLinks id,\App\BusinessLocation,invoice_scheme_id
     * @mixin _IH_InvoiceScheme_QB
     */
    class InvoiceScheme extends Model {}
    
    /**
     * @property int $id
     * @property int $business_id
     * @property string $file_name
     * @property int $model_id
     * @property string $model_type
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property string|null $description
     * @property int|null $uploaded_by
     * @property string|null $model_media_type
     * @property-read $display_name attribute
     * @property-read string $display_path attribute
     * @property-read $display_url attribute
     * @property Model $mediable
     * @method MorphTo mediable()
     * @property User|null $uploaded_by_user
     * @method BelongsTo|_IH_User_QB uploaded_by_user()
     * @method static _IH_Media_QB onWriteConnection()
     * @method _IH_Media_QB newQuery()
     * @method static _IH_Media_QB on(null|string $connection = null)
     * @method static _IH_Media_QB query()
     * @method static _IH_Media_QB with(array|string $relations)
     * @method _IH_Media_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_Media_C|Media[] all($columns = ['*'])
     * @mixin _IH_Media_QB
     */
    class Media extends Model {}
    
    /**
     * @property int $id
     * @property int $business_id
     * @property string $template_for
     * @property string|null $email_body
     * @property string|null $sms_body
     * @property string|null $subject
     * @property bool $auto_send
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property bool $auto_send_sms
     * @property string|null $cc
     * @property string|null $bcc
     * @property string|null $whatsapp_text
     * @property bool $auto_send_wa_notif
     * @method static _IH_NotificationTemplate_QB onWriteConnection()
     * @method _IH_NotificationTemplate_QB newQuery()
     * @method static _IH_NotificationTemplate_QB on(null|string $connection = null)
     * @method static _IH_NotificationTemplate_QB query()
     * @method static _IH_NotificationTemplate_QB with(array|string $relations)
     * @method _IH_NotificationTemplate_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_NotificationTemplate_C|NotificationTemplate[] all($columns = ['*'])
     * @mixin _IH_NotificationTemplate_QB
     */
    class NotificationTemplate extends Model {}
    
    /**
     * @method static _IH_PaymentAccount_QB onWriteConnection()
     * @method _IH_PaymentAccount_QB newQuery()
     * @method static _IH_PaymentAccount_QB on(null|string $connection = null)
     * @method static _IH_PaymentAccount_QB query()
     * @method static _IH_PaymentAccount_QB with(array|string $relations)
     * @method _IH_PaymentAccount_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_PaymentAccount_C|PaymentAccount[] all($columns = ['*'])
     * @mixin _IH_PaymentAccount_QB
     */
    class PaymentAccount extends Model {}
    
    /**
     * @property int $id
     * @property int $business_id
     * @property string $name
     * @property string $connection_type
     * @property string $capability_profile
     * @property string|null $char_per_line
     * @property string|null $ip_address
     * @property string|null $port
     * @property string|null $path
     * @property int $created_by
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @method static _IH_Printer_QB onWriteConnection()
     * @method _IH_Printer_QB newQuery()
     * @method static _IH_Printer_QB on(null|string $connection = null)
     * @method static _IH_Printer_QB query()
     * @method static _IH_Printer_QB with(array|string $relations)
     * @method _IH_Printer_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_Printer_C|Printer[] all($columns = ['*'])
     * @ownLinks business_id,\App\Business,id
     * @foreignLinks id,\App\BusinessLocation,printer_id
     * @mixin _IH_Printer_QB
     */
    class Printer extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property int $business_id
     * @property string $type
     * @property int $unit_id
     * @property int|null $brand_id
     * @property int|null $category_id
     * @property int|null $sub_category_id
     * @property int|null $tax
     * @property string $tax_type
     * @property bool $enable_stock
     * @property string|float $alert_quantity
     * @property string $sku
     * @property string $barcode_type
     * @property int $created_by
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property string|float|null $expiry_period
     * @property string|null $expiry_period_type
     * @property bool $enable_sr_no
     * @property string|null $weight
     * @property string|null $image
     * @property string|null $product_custom_field1
     * @property string|null $product_custom_field2
     * @property string|null $product_custom_field3
     * @property string|null $product_custom_field4
     * @property string|null $product_description
     * @property bool $is_inactive
     * @property bool $not_for_selling
     * @property array|null $sub_unit_ids
     * @property int|null $warranty_id
     * @property-read null|string $image_path attribute
     * @property-read string $image_url attribute
     * @property Brands|null $brand
     * @method BelongsTo|_IH_Brands_QB brand()
     * @property Category|null $category
     * @method BelongsTo|_IH_Category_QB category()
     * @property _IH_Media_C|Media[] $media
     * @property-read int $media_count
     * @method MorphToMany|_IH_Media_QB media()
     * @property _IH_Product_C|Product[] $modifier_products
     * @property-read int $modifier_products_count
     * @method BelongsToMany|_IH_Product_QB modifier_products()
     * @property _IH_Product_C|Product[] $modifier_sets
     * @property-read int $modifier_sets_count
     * @method BelongsToMany|_IH_Product_QB modifier_sets()
     * @property _IH_BusinessLocation_C|BusinessLocation[] $product_locations
     * @property-read int $product_locations_count
     * @method BelongsToMany|_IH_BusinessLocation_QB product_locations()
     * @property TaxRate|null $product_tax
     * @method BelongsTo|_IH_TaxRate_QB product_tax()
     * @property _IH_ProductVariation_C|ProductVariation[] $product_variations
     * @property-read int $product_variations_count
     * @method HasMany|_IH_ProductVariation_QB product_variations()
     * @property _IH_PurchaseLine_C|PurchaseLine[] $purchase_lines
     * @property-read int $purchase_lines_count
     * @method HasMany|_IH_PurchaseLine_QB purchase_lines()
     * @property Category|null $sub_category
     * @method BelongsTo|_IH_Category_QB sub_category()
     * @property Unit $unit
     * @method BelongsTo|_IH_Unit_QB unit()
     * @property _IH_Variation_C|Variation[] $variations
     * @property-read int $variations_count
     * @method HasMany|_IH_Variation_QB variations()
     * @property Warranty|null $warranty
     * @method BelongsTo|_IH_Warranty_QB warranty()
     * @method static _IH_Product_QB onWriteConnection()
     * @method _IH_Product_QB newQuery()
     * @method static _IH_Product_QB on(null|string $connection = null)
     * @method static _IH_Product_QB query()
     * @method static _IH_Product_QB with(array|string $relations)
     * @method _IH_Product_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_Product_C|Product[] all($columns = ['*'])
     * @ownLinks business_id,\App\Business,id|unit_id,\App\Unit,id|brand_id,\App\Brands,id|category_id,\App\Category,id|sub_category_id,\App\Category,id|tax,\App\TaxRate,id|created_by,\App\User,id|warranty_id,\App\Warranty,id
     * @foreignLinks id,\App\ProductVariation,product_id|id,\App\Variation,product_id|id,\App\PurchaseLine,product_id|id,\App\TransactionSellLine,product_id|id,\App\StockAdjustmentLine,product_id|id,\App\VariationLocationDetails,product_id|id,\App\ProductRack,product_id
     * @mixin _IH_Product_QB
     */
    class Product extends Model {}
    
    /**
     * @property int $id
     * @property int $business_id
     * @property int $location_id
     * @property int $product_id
     * @property string|null $rack
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property string|null $row
     * @property string|null $position
     * @method static _IH_ProductRack_QB onWriteConnection()
     * @method _IH_ProductRack_QB newQuery()
     * @method static _IH_ProductRack_QB on(null|string $connection = null)
     * @method static _IH_ProductRack_QB query()
     * @method static _IH_ProductRack_QB with(array|string $relations)
     * @method _IH_ProductRack_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_ProductRack_C|ProductRack[] all($columns = ['*'])
     * @ownLinks product_id,\App\Product,id
     * @mixin _IH_ProductRack_QB
     */
    class ProductRack extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property int $product_id
     * @property bool $is_dummy
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property int|null $variation_template_id
     * @property VariationTemplate|null $variation_template
     * @method BelongsTo|_IH_VariationTemplate_QB variation_template()
     * @property _IH_Variation_C|Variation[] $variations
     * @property-read int $variations_count
     * @method HasMany|_IH_Variation_QB variations()
     * @method static _IH_ProductVariation_QB onWriteConnection()
     * @method _IH_ProductVariation_QB newQuery()
     * @method static _IH_ProductVariation_QB on(null|string $connection = null)
     * @method static _IH_ProductVariation_QB query()
     * @method static _IH_ProductVariation_QB with(array|string $relations)
     * @method _IH_ProductVariation_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_ProductVariation_C|ProductVariation[] all($columns = ['*'])
     * @ownLinks product_id,\App\Product,id|variation_template_id,\App\VariationTemplate,id
     * @foreignLinks id,\App\Variation,product_variation_id|id,\App\VariationLocationDetails,product_variation_id
     * @mixin _IH_ProductVariation_QB
     */
    class ProductVariation extends Model {}
    
    /**
     * @property int $id
     * @property int $transaction_id
     * @property int $product_id
     * @property int $variation_id
     * @property string|float $quantity
     * @property string|float $purchase_price
     * @property string|float $purchase_price_inc_tax
     * @property string|float $item_tax Tax for one quantity
     * @property int|null $tax_id
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property Carbon|null $mfg_date
     * @property Carbon|null $exp_date
     * @property string|float $quantity_sold Quanity sold from this purchase line
     * @property string|float $quantity_adjusted Quanity adjusted in stock adjustment from this purchase line
     * @property string|float $pp_without_discount Purchase price before inline discounts
     * @property string|float $discount_percent Inline discount percentage
     * @property string|null $lot_number
     * @property string|float $quantity_returned
     * @property int|null $sub_unit_id
     * @property string|float $mfg_quantity_used
     * @property-read float $quantity_remaining attribute
     * @property-read float $quantity_used attribute
     * @property TaxRate|null $line_tax
     * @method BelongsTo|_IH_TaxRate_QB line_tax()
     * @property Product $product
     * @method BelongsTo|_IH_Product_QB product()
     * @property Unit|null $sub_unit
     * @method BelongsTo|_IH_Unit_QB sub_unit()
     * @property Transaction $transaction
     * @method BelongsTo|_IH_Transaction_QB transaction()
     * @property Variation $variations
     * @method BelongsTo|_IH_Variation_QB variations()
     * @method static _IH_PurchaseLine_QB onWriteConnection()
     * @method _IH_PurchaseLine_QB newQuery()
     * @method static _IH_PurchaseLine_QB on(null|string $connection = null)
     * @method static _IH_PurchaseLine_QB query()
     * @method static _IH_PurchaseLine_QB with(array|string $relations)
     * @method _IH_PurchaseLine_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_PurchaseLine_C|PurchaseLine[] all($columns = ['*'])
     * @ownLinks transaction_id,\App\Transaction,id|product_id,\App\Product,id|variation_id,\App\Variation,id|tax_id,\App\TaxRate,id
     * @foreignLinks id,\App\TransactionSellLinesPurchaseLines,purchase_line_id|id,\App\StockAdjustmentLine,purchase_line_id
     * @mixin _IH_PurchaseLine_QB
     */
    class PurchaseLine extends Model {}
    
    /**
     * @property int $id
     * @property string $ref_type
     * @property int $ref_count
     * @property int $business_id
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @method static _IH_ReferenceCount_QB onWriteConnection()
     * @method _IH_ReferenceCount_QB newQuery()
     * @method static _IH_ReferenceCount_QB on(null|string $connection = null)
     * @method static _IH_ReferenceCount_QB query()
     * @method static _IH_ReferenceCount_QB with(array|string $relations)
     * @method _IH_ReferenceCount_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_ReferenceCount_C|ReferenceCount[] all($columns = ['*'])
     * @mixin _IH_ReferenceCount_QB
     */
    class ReferenceCount extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property string|null $description
     * @property int $business_id
     * @property Carbon|null $deleted_at
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property bool $is_active
     * @method static _IH_SellingPriceGroup_QB onWriteConnection()
     * @method _IH_SellingPriceGroup_QB newQuery()
     * @method static _IH_SellingPriceGroup_QB on(null|string $connection = null)
     * @method static _IH_SellingPriceGroup_QB query()
     * @method static _IH_SellingPriceGroup_QB with(array|string $relations)
     * @method _IH_SellingPriceGroup_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_SellingPriceGroup_C|SellingPriceGroup[] all($columns = ['*'])
     * @ownLinks business_id,\App\Business,id
     * @foreignLinks id,\App\VariationGroupPrice,price_group_id|id,\App\Transaction,selling_price_group_id|id,\App\BusinessLocation,selling_price_group_id|id,\App\CustomerGroup,selling_price_group_id
     * @mixin _IH_SellingPriceGroup_QB
     */
    class SellingPriceGroup extends Model {}
    
    /**
     * @property int $id
     * @property int $transaction_id
     * @property int $product_id
     * @property int $variation_id
     * @property string|float $quantity
     * @property string|float|null $unit_price Last purchase unit price
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property int|null $purchase_line_id
     * @property int|null $lot_no_line_id
     * @property Variation $variation
     * @method BelongsTo|_IH_Variation_QB variation()
     * @method static _IH_StockAdjustmentLine_QB onWriteConnection()
     * @method _IH_StockAdjustmentLine_QB newQuery()
     * @method static _IH_StockAdjustmentLine_QB on(null|string $connection = null)
     * @method static _IH_StockAdjustmentLine_QB query()
     * @method static _IH_StockAdjustmentLine_QB with(array|string $relations)
     * @method _IH_StockAdjustmentLine_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_StockAdjustmentLine_C|StockAdjustmentLine[] all($columns = ['*'])
     * @ownLinks transaction_id,\App\Transaction,id|product_id,\App\Product,id|variation_id,\App\Variation,id|purchase_line_id,\App\PurchaseLine,id
     * @foreignLinks id,\App\TransactionSellLinesPurchaseLines,stock_adjustment_line_id
     * @mixin _IH_StockAdjustmentLine_QB
     */
    class StockAdjustmentLine extends Model {}
    
    /**
     * @property string $key
     * @property string|null $value
     * @property int $id
     * @method static _IH_System_QB onWriteConnection()
     * @method _IH_System_QB newQuery()
     * @method static _IH_System_QB on(null|string $connection = null)
     * @method static _IH_System_QB query()
     * @method static _IH_System_QB with(array|string $relations)
     * @method _IH_System_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_System_C|System[] all($columns = ['*'])
     * @mixin _IH_System_QB
     */
    class System extends Model {}
    
    /**
     * @property int $id
     * @property int $business_id
     * @property string $name
     * @property float $amount
     * @property bool $is_tax_group
     * @property int $created_by
     * @property Carbon|null $deleted_at
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property bool $for_tax_group
     * @property _IH_TaxRate_C|TaxRate[] $sub_taxes
     * @property-read int $sub_taxes_count
     * @method BelongsToMany|_IH_TaxRate_QB sub_taxes()
     * @method static _IH_TaxRate_QB onWriteConnection()
     * @method _IH_TaxRate_QB newQuery()
     * @method static _IH_TaxRate_QB on(null|string $connection = null)
     * @method static _IH_TaxRate_QB query()
     * @method static _IH_TaxRate_QB with(array|string $relations)
     * @method _IH_TaxRate_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_TaxRate_C|TaxRate[] all($columns = ['*'])
     * @ownLinks business_id,\App\Business,id|created_by,\App\User,id
     * @foreignLinks id,\App\Product,tax|id,\App\Transaction,tax_id|id,\App\PurchaseLine,tax_id|id,\App\Business,default_sales_tax|id,\App\GroupSubTax,group_tax_id|id,\App\GroupSubTax,tax_id|id,\App\TransactionSellLine,tax_id
     * @mixin _IH_TaxRate_QB
     */
    class TaxRate extends Model {}
    
    /**
     * @property int $id
     * @property int $business_id
     * @property string $type
     * @property string $status
     * @property string $payment_status
     * @property int $contact_id
     * @property string|null $invoice_no
     * @property string|null $ref_no
     * @property Carbon $transaction_date
     * @property string|float $total_before_tax Total before the purchase/invoice tax, this includeds the indivisual product tax
     * @property int|null $tax_id
     * @property string|float $tax_amount
     * @property string|null $discount_type
     * @property string|float $discount_amount
     * @property string|null $shipping_details
     * @property string|float $shipping_charges
     * @property string|null $additional_notes
     * @property string|null $staff_note
     * @property string|float $final_total
     * @property int $created_by
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property int $location_id
     * @property int|null $expense_category_id
     * @property int|null $expense_for
     * @property string|float $exchange_rate
     * @property string|null $document
     * @property string|null $adjustment_type
     * @property string|float|null $total_amount_recovered Used for stock adjustment.
     * @property bool $is_direct_sale
     * @property int|null $commission_agent
     * @property int|null $transfer_parent_id
     * @property int|null $opening_stock_product_id
     * @property int|null $customer_group_id used to add customer group while selling
     * @property int|null $res_table_id fields to restaurant module
     * @property int|null $res_waiter_id fields to restaurant module
     * @property bool $is_quotation
     * @property string|null $res_order_status
     * @property int|null $selling_price_group_id
     * @property int|null $return_parent_id
     * @property int|null $pay_term_number
     * @property string|null $pay_term_type
     * @property bool $is_suspend
     * @property string|null $invoice_token
     * @property bool $is_recurring
     * @property float|null $recur_interval
     * @property string|null $recur_interval_type
     * @property int|null $recur_repetitions
     * @property Carbon|null $recur_stopped_on
     * @property int|null $recur_parent_id
     * @property string|null $subscription_no
     * @property string|null $order_addresses
     * @property string|null $sub_type
     * @property int $rp_earned rp is the short form of reward points
     * @property int $rp_redeemed rp is the short form of reward points
     * @property string|float $rp_redeemed_amount rp is the short form of reward points
     * @property bool $is_created_from_api
     * @property int|null $types_of_service_id
     * @property string|float|null $packing_charge
     * @property string|null $packing_charge_type
     * @property string|null $service_custom_field_1
     * @property string|null $service_custom_field_2
     * @property string|null $service_custom_field_3
     * @property string|null $service_custom_field_4
     * @property string|null $shipping_address
     * @property string|null $shipping_status
     * @property string|null $delivered_to
     * @property string|float $round_off_amount Difference of rounded total and actual total
     * @property int|null $import_batch
     * @property Carbon|null $import_time
     * @property string|null $subscription_repeat_on
     * @property string|null $shipping_custom_field_1
     * @property string|null $shipping_custom_field_2
     * @property string|null $shipping_custom_field_3
     * @property string|null $shipping_custom_field_4
     * @property string|null $shipping_custom_field_5
     * @property string|null $sub_status
     * @property string|null $custom_field_1
     * @property string|null $custom_field_2
     * @property string|null $custom_field_3
     * @property string|null $custom_field_4
     * @property-read $document_name attribute
     * @property-read null $document_path attribute
     * @property-read null $due_date attribute
     * @property-read array|string[] $log_properties attribute
     * @property Business $business
     * @method BelongsTo|_IH_Business_QB business()
     * @property _IH_CashRegisterTransaction_C|CashRegisterTransaction[] $cash_register_payments
     * @property-read int $cash_register_payments_count
     * @method HasMany|_IH_CashRegisterTransaction_QB cash_register_payments()
     * @property Contact $contact
     * @method BelongsTo|_IH_Contact_QB contact()
     * @property BusinessLocation $location
     * @method BelongsTo|_IH_BusinessLocation_QB location()
     * @property _IH_Media_C|Media[] $media
     * @property-read int $media_count
     * @method MorphToMany|_IH_Media_QB media()
     * @property _IH_TransactionPayment_C|TransactionPayment[] $payment_lines
     * @property-read int $payment_lines_count
     * @method HasMany|_IH_TransactionPayment_QB payment_lines()
     * @property SellingPriceGroup|null $price_group
     * @method BelongsTo|_IH_SellingPriceGroup_QB price_group()
     * @property _IH_PurchaseLine_C|PurchaseLine[] $purchase_lines
     * @property-read int $purchase_lines_count
     * @method HasMany|_IH_PurchaseLine_QB purchase_lines()
     * @property _IH_Transaction_C|Transaction[] $recurring_invoices
     * @property-read int $recurring_invoices_count
     * @method HasMany|_IH_Transaction_QB recurring_invoices()
     * @property Transaction|null $recurring_parent
     * @method HasOne|_IH_Transaction_QB recurring_parent()
     * @property Transaction $return_parent
     * @method HasOne|_IH_Transaction_QB return_parent()
     * @property Transaction|null $return_parent_sell
     * @method BelongsTo|_IH_Transaction_QB return_parent_sell()
     * @property User $sales_person
     * @method BelongsTo|_IH_User_QB sales_person()
     * @property _IH_TransactionSellLine_C|TransactionSellLine[] $sell_lines
     * @property-read int $sell_lines_count
     * @method HasMany|_IH_TransactionSellLine_QB sell_lines()
     * @property User|null $service_staff
     * @method BelongsTo|_IH_User_QB service_staff()
     * @property _IH_StockAdjustmentLine_C|StockAdjustmentLine[] $stock_adjustment_lines
     * @property-read int $stock_adjustment_lines_count
     * @method HasMany|_IH_StockAdjustmentLine_QB stock_adjustment_lines()
     * @property _IH_Transaction_C|Transaction[] $subscription_invoices
     * @property-read int $subscription_invoices_count
     * @method HasMany|_IH_Transaction_QB subscription_invoices()
     * @property ResTable|null $table
     * @method BelongsTo|_IH_ResTable_QB table()
     * @property TaxRate|null $tax
     * @method BelongsTo|_IH_TaxRate_QB tax()
     * @property User|null $transaction_for
     * @method BelongsTo|_IH_User_QB transaction_for()
     * @property TypesOfService|null $types_of_service
     * @method BelongsTo|_IH_TypesOfService_QB types_of_service()
     * @method static _IH_Transaction_QB onWriteConnection()
     * @method _IH_Transaction_QB newQuery()
     * @method static _IH_Transaction_QB on(null|string $connection = null)
     * @method static _IH_Transaction_QB query()
     * @method static _IH_Transaction_QB with(array|string $relations)
     * @method _IH_Transaction_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_Transaction_C|Transaction[] all($columns = ['*'])
     * @ownLinks business_id,\App\Business,id|contact_id,\App\Contact,id|tax_id,\App\TaxRate,id|created_by,\App\User,id|location_id,\App\BusinessLocation,id|expense_category_id,\App\ExpenseCategory,id|expense_for,\App\User,id|customer_group_id,\App\CustomerGroup,id|res_table_id,\App\Restaurant\ResTable,id|selling_price_group_id,\App\SellingPriceGroup,id|types_of_service_id,\App\TypesOfService,id
     * @foreignLinks id,\App\PurchaseLine,transaction_id|id,\App\TransactionPayment,transaction_id|id,\App\TransactionSellLine,transaction_id|id,\App\StockAdjustmentLine,transaction_id|id,\App\CashRegisterTransaction,transaction_id|id,\App\AccountTransaction,transaction_id
     * @mixin _IH_Transaction_QB
     */
    class Transaction extends Model {}
    
    /**
     * @property int $id
     * @property int $transaction_id
     * @property string|float $amount
     * @property string $method
     * @property string|null $card_transaction_number
     * @property string|null $card_number
     * @property string|null $card_type
     * @property string|null $card_holder_name
     * @property string|null $card_month
     * @property string|null $card_year
     * @property string|null $card_security
     * @property string|null $cheque_number
     * @property string|null $bank_account_number
     * @property string|null $note
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property Carbon|null $paid_on
     * @property int $created_by
     * @property int|null $payment_for
     * @property int|null $parent_id
     * @property bool $is_return Used during sales to return the change
     * @property string|null $payment_ref_no
     * @property string|null $transaction_no
     * @property int|null $account_id
     * @property int|null $business_id
     * @property string|null $document
     * @property bool $is_advance
     * @property-read $document_name attribute
     * @property-read null $document_path attribute
     * @property _IH_TransactionPayment_C|TransactionPayment[] $child_payments
     * @property-read int $child_payments_count
     * @method HasMany|_IH_TransactionPayment_QB child_payments()
     * @property User $created_user
     * @method BelongsTo|_IH_User_QB created_user()
     * @property Account|null $payment_account
     * @method BelongsTo|_IH_Account_QB payment_account()
     * @property Transaction $transaction
     * @method BelongsTo|_IH_Transaction_QB transaction()
     * @method static _IH_TransactionPayment_QB onWriteConnection()
     * @method _IH_TransactionPayment_QB newQuery()
     * @method static _IH_TransactionPayment_QB on(null|string $connection = null)
     * @method static _IH_TransactionPayment_QB query()
     * @method static _IH_TransactionPayment_QB with(array|string $relations)
     * @method _IH_TransactionPayment_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_TransactionPayment_C|TransactionPayment[] all($columns = ['*'])
     * @ownLinks transaction_id,\App\Transaction,id|account_id,\App\Account,id
     * @foreignLinks id,\App\AccountTransaction,transaction_payment_id
     * @mixin _IH_TransactionPayment_QB
     */
    class TransactionPayment extends Model {}
    
    /**
     * @property int $id
     * @property int $transaction_id
     * @property int $product_id
     * @property int $variation_id
     * @property string|float $quantity
     * @property string|float|null $unit_price Sell price excluding tax
     * @property string|float|null $unit_price_inc_tax Sell price including tax
     * @property string|float $item_tax Tax for one quantity
     * @property int|null $tax_id
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property string|null $sell_line_note
     * @property int|null $parent_sell_line_id
     * @property int|null $lot_no_line_id
     * @property string|null $line_discount_type
     * @property string|float $line_discount_amount
     * @property string|float $unit_price_before_discount
     * @property string|float $quantity_returned
     * @property int|null $sub_unit_id
     * @property int|null $discount_id
     * @property int|null $res_service_staff_id
     * @property string|null $res_line_order_status
     * @property string $children_type Type of children for the parent, like modifier or combo
     * @property TaxRate|null $line_tax
     * @method BelongsTo|_IH_TaxRate_QB line_tax()
     * @property PurchaseLine|null $lot_details
     * @method BelongsTo|_IH_PurchaseLine_QB lot_details()
     * @property _IH_TransactionSellLine_C|TransactionSellLine[] $modifiers
     * @property-read int $modifiers_count
     * @method HasMany|_IH_TransactionSellLine_QB modifiers()
     * @property Product $product
     * @method BelongsTo|_IH_Product_QB product()
     * @property _IH_TransactionSellLinesPurchaseLines_C|TransactionSellLinesPurchaseLines[] $sell_line_purchase_lines
     * @property-read int $sell_line_purchase_lines_count
     * @method HasMany|_IH_TransactionSellLinesPurchaseLines_QB sell_line_purchase_lines()
     * @property User|null $service_staff
     * @method BelongsTo|_IH_User_QB service_staff()
     * @property Unit|null $sub_unit
     * @method BelongsTo|_IH_Unit_QB sub_unit()
     * @property Transaction $transaction
     * @method BelongsTo|_IH_Transaction_QB transaction()
     * @property Variation $variations
     * @method BelongsTo|_IH_Variation_QB variations()
     * @property _IH_Warranty_C|Warranty[] $warranties
     * @property-read int $warranties_count
     * @method BelongsToMany|_IH_Warranty_QB warranties()
     * @method static _IH_TransactionSellLine_QB onWriteConnection()
     * @method _IH_TransactionSellLine_QB newQuery()
     * @method static _IH_TransactionSellLine_QB on(null|string $connection = null)
     * @method static _IH_TransactionSellLine_QB query()
     * @method static _IH_TransactionSellLine_QB with(array|string $relations)
     * @method _IH_TransactionSellLine_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_TransactionSellLine_C|TransactionSellLine[] all($columns = ['*'])
     * @ownLinks transaction_id,\App\Transaction,id|product_id,\App\Product,id|variation_id,\App\Variation,id|tax_id,\App\TaxRate,id|discount_id,\App\Discount,id
     * @mixin _IH_TransactionSellLine_QB
     */
    class TransactionSellLine extends Model {}
    
    /**
     * @property int $id
     * @property int|null $sell_line_id id from transaction_sell_lines
     * @property int|null $stock_adjustment_line_id id from stock_adjustment_lines
     * @property int $purchase_line_id id from purchase_lines
     * @property string|float $quantity
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property string|float $qty_returned
     * @property PurchaseLine $purchase_line
     * @method BelongsTo|_IH_PurchaseLine_QB purchase_line()
     * @method static _IH_TransactionSellLinesPurchaseLines_QB onWriteConnection()
     * @method _IH_TransactionSellLinesPurchaseLines_QB newQuery()
     * @method static _IH_TransactionSellLinesPurchaseLines_QB on(null|string $connection = null)
     * @method static _IH_TransactionSellLinesPurchaseLines_QB query()
     * @method static _IH_TransactionSellLinesPurchaseLines_QB with(array|string $relations)
     * @method _IH_TransactionSellLinesPurchaseLines_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_TransactionSellLinesPurchaseLines_C|TransactionSellLinesPurchaseLines[] all($columns = ['*'])
     * @ownLinks stock_adjustment_line_id,\App\StockAdjustmentLine,id|purchase_line_id,\App\PurchaseLine,id
     * @mixin _IH_TransactionSellLinesPurchaseLines_QB
     */
    class TransactionSellLinesPurchaseLines extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property string|null $description
     * @property int $business_id
     * @property array|null $location_price_group
     * @property string|float|null $packing_charge
     * @property string|null $packing_charge_type
     * @property bool $enable_custom_fields
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @method static _IH_TypesOfService_QB onWriteConnection()
     * @method _IH_TypesOfService_QB newQuery()
     * @method static _IH_TypesOfService_QB on(null|string $connection = null)
     * @method static _IH_TypesOfService_QB query()
     * @method static _IH_TypesOfService_QB with(array|string $relations)
     * @method _IH_TypesOfService_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_TypesOfService_C|TypesOfService[] all($columns = ['*'])
     * @foreignLinks id,\App\Transaction,types_of_service_id
     * @mixin _IH_TypesOfService_QB
     */
    class TypesOfService extends Model {}
    
    /**
     * @property int $id
     * @property int $business_id
     * @property string $actual_name
     * @property string $short_name
     * @property bool $allow_decimal
     * @property int $created_by
     * @property Carbon|null $deleted_at
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property int|null $base_unit_id
     * @property string|float|null $base_unit_multiplier
     * @property Unit|null $base_unit
     * @method BelongsTo|_IH_Unit_QB base_unit()
     * @property _IH_Unit_C|Unit[] $sub_units
     * @property-read int $sub_units_count
     * @method HasMany|_IH_Unit_QB sub_units()
     * @method static _IH_Unit_QB onWriteConnection()
     * @method _IH_Unit_QB newQuery()
     * @method static _IH_Unit_QB on(null|string $connection = null)
     * @method static _IH_Unit_QB query()
     * @method static _IH_Unit_QB with(array|string $relations)
     * @method _IH_Unit_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_Unit_C|Unit[] all($columns = ['*'])
     * @ownLinks business_id,\App\Business,id|created_by,\App\User,id
     * @foreignLinks id,\App\Product,unit_id
     * @mixin _IH_Unit_QB
     */
    class Unit extends Model {}
    
    /**
     * @property int $id
     * @property string $surname
     * @property string $first_name
     * @property string|null $last_name
     * @property string $username
     * @property string|null $email
     * @property string $password
     * @property string $language
     * @property string|null $remember_token
     * @property Carbon|null $deleted_at
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property int|null $business_id
     * @property string|null $contact_no
     * @property string|null $address
     * @property bool $is_cmmsn_agnt
     * @property string|float $cmmsn_percent
     * @property bool $selected_contacts
     * @property string $status
     * @property Carbon|null $dob
     * @property string|null $marital_status
     * @property string|null $blood_group
     * @property string|null $contact_number
     * @property string|null $fb_link
     * @property string|null $twitter_link
     * @property string|null $social_media_1
     * @property string|null $social_media_2
     * @property string|null $permanent_address
     * @property string|null $current_address
     * @property string|null $guardian_name
     * @property string|null $custom_field_1
     * @property string|null $custom_field_2
     * @property string|null $custom_field_3
     * @property string|null $custom_field_4
     * @property string|null $bank_details
     * @property string|null $id_proof_name
     * @property string|null $id_proof_number
     * @property string|null $gender
     * @property bool $allow_login
     * @property string $user_type
     * @property string|float|null $max_sales_discount_percent
     * @property string|null $alt_number
     * @property string|null $family_number
     * @property-read string $role_name attribute
     * @property-read string $user_full_name attribute
     * @property Business|null $business
     * @method BelongsTo|_IH_Business_QB business()
     * @property _IH_Client_C|Client[] $clients
     * @property-read int $clients_count
     * @method HasMany|_IH_Client_QB clients()
     * @property _IH_Contact_C|Contact[] $contactAccess
     * @property-read int $contact_access_count
     * @method BelongsToMany|_IH_Contact_QB contactAccess()
     * @property _IH_DocumentAndNote_C|DocumentAndNote[] $documentsAndnote
     * @property-read int $documents_andnote_count
     * @method MorphToMany|_IH_DocumentAndNote_QB documentsAndnote()
     * @property Media $media
     * @method MorphToMany|_IH_Media_QB media()
     * @property DatabaseNotificationCollection|DatabaseNotification[] $notifications
     * @property-read int $notifications_count
     * @method MorphToMany|_IH_DatabaseNotification_QB notifications()
     * @property _IH_Permission_C|Permission[] $permissions
     * @property-read int $permissions_count
     * @method MorphToMany|_IH_Permission_QB permissions()
     * @property DatabaseNotificationCollection|DatabaseNotification[] $readNotifications
     * @property-read int $read_notifications_count
     * @method MorphToMany|_IH_DatabaseNotification_QB readNotifications()
     * @property _IH_Role_C|Role[] $roles
     * @property-read int $roles_count
     * @method MorphToMany|_IH_Role_QB roles()
     * @property _IH_Token_C|Token[] $tokens
     * @property-read int $tokens_count
     * @method HasMany|_IH_Token_QB tokens()
     * @property DatabaseNotificationCollection|DatabaseNotification[] $unreadNotifications
     * @property-read int $unread_notifications_count
     * @method MorphToMany|_IH_DatabaseNotification_QB unreadNotifications()
     * @method static _IH_User_QB onWriteConnection()
     * @method _IH_User_QB newQuery()
     * @method static _IH_User_QB on(null|string $connection = null)
     * @method static _IH_User_QB query()
     * @method static _IH_User_QB with(array|string $relations)
     * @method _IH_User_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_User_C|User[] all($columns = ['*'])
     * @ownLinks business_id,\App\Business,id
     * @foreignLinks id,\App\Business,owner_id|id,\App\Brands,created_by|id,\App\TaxRate,created_by|id,\App\Unit,created_by|id,\App\Contact,created_by|id,\App\Category,created_by|id,\App\Product,created_by|id,\App\Transaction,created_by|id,\App\Transaction,expense_for|id,\App\CashRegister,user_id|id,\App\Restaurant\Booking,created_by|id,\Laravel\Passport\AuthCode,user_id|id,\Laravel\Passport\Token,user_id|id,\Laravel\Passport\Client,user_id
     * @mixin _IH_User_QB
     */
    class User extends Model {}
    
    /**
     * @method static _IH_UserContactAccess_QB onWriteConnection()
     * @method _IH_UserContactAccess_QB newQuery()
     * @method static _IH_UserContactAccess_QB on(null|string $connection = null)
     * @method static _IH_UserContactAccess_QB query()
     * @method static _IH_UserContactAccess_QB with(array|string $relations)
     * @method _IH_UserContactAccess_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_UserContactAccess_C|UserContactAccess[] all($columns = ['*'])
     * @mixin _IH_UserContactAccess_QB
     */
    class UserContactAccess extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property int $product_id
     * @property string|null $sub_sku
     * @property int $product_variation_id
     * @property string|float|null $default_purchase_price
     * @property string|float $dpp_inc_tax
     * @property string|float $profit_percent
     * @property string|float|null $default_sell_price
     * @property string|float|null $sell_price_inc_tax Sell price including tax
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property Carbon|null $deleted_at
     * @property int|null $variation_value_id
     * @property array|null $combo_variations Contains the combo variation details
     * @property-read string $full_name attribute
     * @property _IH_VariationGroupPrice_C|VariationGroupPrice[] $group_prices
     * @property-read int $group_prices_count
     * @method HasMany|_IH_VariationGroupPrice_QB group_prices()
     * @property _IH_Media_C|Media[] $media
     * @property-read int $media_count
     * @method MorphToMany|_IH_Media_QB media()
     * @property Product $product
     * @method BelongsTo|_IH_Product_QB product()
     * @property ProductVariation $product_variation
     * @method BelongsTo|_IH_ProductVariation_QB product_variation()
     * @property _IH_TransactionSellLine_C|TransactionSellLine[] $sell_lines
     * @property-read int $sell_lines_count
     * @method HasMany|_IH_TransactionSellLine_QB sell_lines()
     * @property _IH_VariationLocationDetails_C|VariationLocationDetails[] $variation_location_details
     * @property-read int $variation_location_details_count
     * @method HasMany|_IH_VariationLocationDetails_QB variation_location_details()
     * @method static _IH_Variation_QB onWriteConnection()
     * @method _IH_Variation_QB newQuery()
     * @method static _IH_Variation_QB on(null|string $connection = null)
     * @method static _IH_Variation_QB query()
     * @method static _IH_Variation_QB with(array|string $relations)
     * @method _IH_Variation_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_Variation_C|Variation[] all($columns = ['*'])
     * @ownLinks product_id,\App\Product,id|product_variation_id,\App\ProductVariation,id
     * @foreignLinks id,\App\PurchaseLine,variation_id|id,\App\TransactionSellLine,variation_id|id,\App\VariationLocationDetails,variation_id|id,\App\StockAdjustmentLine,variation_id|id,\App\VariationGroupPrice,variation_id
     * @mixin _IH_Variation_QB
     */
    class Variation extends Model {}
    
    /**
     * @property int $id
     * @property int $variation_id
     * @property int $price_group_id
     * @property string|float $price_inc_tax
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @method static _IH_VariationGroupPrice_QB onWriteConnection()
     * @method _IH_VariationGroupPrice_QB newQuery()
     * @method static _IH_VariationGroupPrice_QB on(null|string $connection = null)
     * @method static _IH_VariationGroupPrice_QB query()
     * @method static _IH_VariationGroupPrice_QB with(array|string $relations)
     * @method _IH_VariationGroupPrice_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_VariationGroupPrice_C|VariationGroupPrice[] all($columns = ['*'])
     * @ownLinks variation_id,\App\Variation,id|price_group_id,\App\SellingPriceGroup,id
     * @mixin _IH_VariationGroupPrice_QB
     */
    class VariationGroupPrice extends Model {}
    
    /**
     * @property int $id
     * @property int $product_id
     * @property int $product_variation_id id from product_variations table
     * @property int $variation_id
     * @property int $location_id
     * @property string|float $qty_available
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @method static _IH_VariationLocationDetails_QB onWriteConnection()
     * @method _IH_VariationLocationDetails_QB newQuery()
     * @method static _IH_VariationLocationDetails_QB on(null|string $connection = null)
     * @method static _IH_VariationLocationDetails_QB query()
     * @method static _IH_VariationLocationDetails_QB with(array|string $relations)
     * @method _IH_VariationLocationDetails_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_VariationLocationDetails_C|VariationLocationDetails[] all($columns = ['*'])
     * @ownLinks variation_id,\App\Variation,id|location_id,\App\BusinessLocation,id|product_id,\App\Product,id|product_variation_id,\App\ProductVariation,id
     * @mixin _IH_VariationLocationDetails_QB
     */
    class VariationLocationDetails extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property int $business_id
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property _IH_VariationValueTemplate_C|VariationValueTemplate[] $values
     * @property-read int $values_count
     * @method HasMany|_IH_VariationValueTemplate_QB values()
     * @method static _IH_VariationTemplate_QB onWriteConnection()
     * @method _IH_VariationTemplate_QB newQuery()
     * @method static _IH_VariationTemplate_QB on(null|string $connection = null)
     * @method static _IH_VariationTemplate_QB query()
     * @method static _IH_VariationTemplate_QB with(array|string $relations)
     * @method _IH_VariationTemplate_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_VariationTemplate_C|VariationTemplate[] all($columns = ['*'])
     * @ownLinks business_id,\App\Business,id
     * @foreignLinks id,\App\VariationValueTemplate,variation_template_id|id,\App\ProductVariation,variation_template_id
     * @mixin _IH_VariationTemplate_QB
     */
    class VariationTemplate extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property int $variation_template_id
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property VariationTemplate $variationTemplate
     * @method BelongsTo|_IH_VariationTemplate_QB variationTemplate()
     * @method static _IH_VariationValueTemplate_QB onWriteConnection()
     * @method _IH_VariationValueTemplate_QB newQuery()
     * @method static _IH_VariationValueTemplate_QB on(null|string $connection = null)
     * @method static _IH_VariationValueTemplate_QB query()
     * @method static _IH_VariationValueTemplate_QB with(array|string $relations)
     * @method _IH_VariationValueTemplate_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_VariationValueTemplate_C|VariationValueTemplate[] all($columns = ['*'])
     * @ownLinks variation_template_id,\App\VariationTemplate,id
     * @mixin _IH_VariationValueTemplate_QB
     */
    class VariationValueTemplate extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property int $business_id
     * @property string|null $description
     * @property int $duration
     * @property string $duration_type
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property-read string $display_name attribute
     * @method static _IH_Warranty_QB onWriteConnection()
     * @method _IH_Warranty_QB newQuery()
     * @method static _IH_Warranty_QB on(null|string $connection = null)
     * @method static _IH_Warranty_QB query()
     * @method static _IH_Warranty_QB with(array|string $relations)
     * @method _IH_Warranty_QB newModelQuery()
     * @method int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_Warranty_C|Warranty[] all($columns = ['*'])
     * @foreignLinks id,\App\Product,warranty_id
     * @mixin _IH_Warranty_QB
     */
    class Warranty extends Model {}
}