<?php //1008a0f88d0054979f88c79ac883552b
/** @noinspection all */

namespace Modules\Client\Entities {

    use Illuminate\Database\Eloquent\Model;
    use Illuminate\Database\Eloquent\Relations\BelongsTo;
    use Illuminate\Database\Eloquent\Relations\HasMany;
    use Illuminate\Database\Eloquent\Relations\HasOne;
    use Illuminate\Support\Carbon;
    use LaravelIdea\Helper\Modules\Branch\Entities\_IH_Branch_QB;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_ClientFileType_C;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_ClientFileType_QB;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_ClientFile_C;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_ClientFile_QB;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_ClientIdentificationType_C;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_ClientIdentificationType_QB;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_ClientIdentification_C;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_ClientIdentification_QB;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_ClientNextOfKin_C;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_ClientNextOfKin_QB;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_ClientRelationship_C;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_ClientRelationship_QB;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_ClientType_C;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_ClientType_QB;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_ClientUser_C;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_ClientUser_QB;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_Client_C;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_Client_QB;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_Profession_C;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_Profession_QB;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_Title_C;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_Title_QB;
    use LaravelIdea\Helper\Modules\Core\Entities\_IH_Country_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_Loan_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_Loan_QB;
    use LaravelIdea\Helper\Modules\Savings\Entities\_IH_Savings_C;
    use LaravelIdea\Helper\Modules\Savings\Entities\_IH_Savings_QB;
    use LaravelIdea\Helper\Modules\User\Entities\_IH_User_QB;
    use Modules\Branch\Entities\Branch;
    use Modules\Core\Entities\Country;
    use Modules\Loan\Entities\Loan;
    use Modules\Savings\Entities\Savings;
    use Modules\User\Entities\User;
    
    /**
     * @property int $id
     * @property int|null $created_by_id
     * @property int|null $branch_id
     * @property int|null $loan_officer_id
     * @property string|null $reference
     * @property string|null $account_number
     * @property string|null $first_name
     * @property string|null $middle_name
     * @property string|null $last_name
     * @property string|null $gender
     * @property string $status
     * @property string|null $marital_status
     * @property int|null $country_id
     * @property int|null $title_id
     * @property int|null $profession_id
     * @property int|null $client_type_id
     * @property string|null $mobile
     * @property string|null $phone
     * @property string|null $email
     * @property string|null $external_id
     * @property Carbon|null $dob
     * @property string|null $address
     * @property string|null $city
     * @property string|null $state
     * @property string|null $zip
     * @property string|null $employer
     * @property string|null $photo
     * @property string|null $notes
     * @property string|null $signature
     * @property Carbon|null $created_date
     * @property Carbon|null $joined_date
     * @property Carbon|null $activation_date
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property-read string $name attribute
     * @property-read string $name_i_d attribute
     * @property Branch|null $branch
     * @method HasOne|_IH_Branch_QB branch()
     * @property ClientType|null $client_type
     * @method HasOne|_IH_ClientType_QB client_type()
     * @property _IH_ClientUser_C|ClientUser[] $client_users
     * @property-read int $client_users_count
     * @method HasMany|_IH_ClientUser_QB client_users()
     * @property Country|null $country
     * @method HasOne|_IH_Country_QB country()
     * @property _IH_ClientFile_C|ClientFile[] $files
     * @property-read int $files_count
     * @method HasMany|_IH_ClientFile_QB files()
     * @property _IH_ClientIdentification_C|ClientIdentification[] $identifications
     * @property-read int $identifications_count
     * @method HasMany|_IH_ClientIdentification_QB identifications()
     * @property User|null $loan_officer
     * @method HasOne|_IH_User_QB loan_officer()
     * @property _IH_Loan_C|Loan[] $loans
     * @property-read int $loans_count
     * @method HasMany|_IH_Loan_QB loans()
     * @property _IH_ClientNextOfKin_C|ClientNextOfKin[] $next_of_kins
     * @property-read int $next_of_kins_count
     * @method HasMany|_IH_ClientNextOfKin_QB next_of_kins()
     * @property Profession|null $profession
     * @method HasOne|_IH_Profession_QB profession()
     * @property _IH_Savings_C|Savings[] $savings
     * @property-read int $savings_count
     * @method HasMany|_IH_Savings_QB savings()
     * @property Title|null $title
     * @method HasOne|_IH_Title_QB title()
     * @method static _IH_Client_QB onWriteConnection()
     * @method _IH_Client_QB newQuery()
     * @method static _IH_Client_QB on(null|string $connection = null)
     * @method static _IH_Client_QB query()
     * @method static _IH_Client_QB with(array|string $relations)
     * @method _IH_Client_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_Client_C|Client[] all()
     * @ownLinks branch_id,\Modules\Branch\Entities\Branch,id|country_id,\Modules\Core\Entities\Country,id|title_id,\Modules\Client\Entities\Title,id|profession_id,\Modules\Client\Entities\Profession,id|client_type_id,\Modules\Client\Entities\ClientType,id
     * @foreignLinks id,\Laravel\Passport\AuthCode,client_id|id,\Laravel\Passport\Token,client_id|id,\Laravel\Passport\PersonalAccessClient,client_id|id,\Modules\Accounting\Entities\JournalEntry,client_id|id,\Modules\Client\Entities\ClientFile,client_id|id,\Modules\Client\Entities\ClientIdentification,client_id|id,\Modules\Client\Entities\ClientNextOfKin,client_id|id,\Modules\Client\Entities\ClientUser,client_id|id,\Modules\Loan\Entities\Loan,client_id|id,\Modules\Loan\Entities\LoanGuarantor,client_id|id,\Modules\Communication\Entities\CommunicationCampaignLog,client_id|id,\Modules\Savings\Entities\Savings,client_id|id,\Modules\Loan\Entities\LoanApplication,client_id|id,\Modules\Wallet\Entities\Wallet,client_id|id,\Modules\Share\Entities\Share,client_id
     * @mixin _IH_Client_QB
     */
    class Client extends Model {}
    
    /**
     * @property int $id
     * @property int|null $created_by_id
     * @property int|null $client_id
     * @property string|null $name
     * @property string|null $description
     * @property int|null $size
     * @property string|null $link
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property int|null $client_file_type_id
     * @property string $status
     * @method static _IH_ClientFile_QB onWriteConnection()
     * @method _IH_ClientFile_QB newQuery()
     * @method static _IH_ClientFile_QB on(null|string $connection = null)
     * @method static _IH_ClientFile_QB query()
     * @method static _IH_ClientFile_QB with(array|string $relations)
     * @method _IH_ClientFile_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_ClientFile_C|ClientFile[] all()
     * @ownLinks client_id,\Modules\Client\Entities\Client,id|client_file_type_id,\Modules\Client\Entities\ClientFileType,id
     * @mixin _IH_ClientFile_QB
     */
    class ClientFile extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @method static _IH_ClientFileType_QB onWriteConnection()
     * @method _IH_ClientFileType_QB newQuery()
     * @method static _IH_ClientFileType_QB on(null|string $connection = null)
     * @method static _IH_ClientFileType_QB query()
     * @method static _IH_ClientFileType_QB with(array|string $relations)
     * @method _IH_ClientFileType_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_ClientFileType_C|ClientFileType[] all()
     * @foreignLinks id,\Modules\Client\Entities\ClientFile,client_file_type_id
     * @mixin _IH_ClientFileType_QB
     */
    class ClientFileType extends Model {}
    
    /**
     * @property int $id
     * @property int|null $created_by_id
     * @property int|null $client_id
     * @property int|null $client_identification_type_id
     * @property string|null $identification_value
     * @property string|null $description
     * @property int|null $size
     * @property string|null $link
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property string $status
     * @property ClientIdentificationType|null $identification_type
     * @method HasOne|_IH_ClientIdentificationType_QB identification_type()
     * @method static _IH_ClientIdentification_QB onWriteConnection()
     * @method _IH_ClientIdentification_QB newQuery()
     * @method static _IH_ClientIdentification_QB on(null|string $connection = null)
     * @method static _IH_ClientIdentification_QB query()
     * @method static _IH_ClientIdentification_QB with(array|string $relations)
     * @method _IH_ClientIdentification_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_ClientIdentification_C|ClientIdentification[] all()
     * @ownLinks client_id,\Modules\Client\Entities\Client,id|client_identification_type_id,\Modules\Client\Entities\ClientIdentificationType,id
     * @mixin _IH_ClientIdentification_QB
     */
    class ClientIdentification extends Model {}
    
    /**
     * @property int $id
     * @property string|null $name
     * @method static _IH_ClientIdentificationType_QB onWriteConnection()
     * @method _IH_ClientIdentificationType_QB newQuery()
     * @method static _IH_ClientIdentificationType_QB on(null|string $connection = null)
     * @method static _IH_ClientIdentificationType_QB query()
     * @method static _IH_ClientIdentificationType_QB with(array|string $relations)
     * @method _IH_ClientIdentificationType_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_ClientIdentificationType_C|ClientIdentificationType[] all()
     * @foreignLinks id,\Modules\Client\Entities\ClientIdentification,client_identification_type_id
     * @mixin _IH_ClientIdentificationType_QB
     */
    class ClientIdentificationType extends Model {}
    
    /**
     * @property int $id
     * @property int|null $created_by_id
     * @property int|null $client_id
     * @property int|null $client_relationship_id
     * @property string|null $first_name
     * @property string|null $middle_name
     * @property string|null $last_name
     * @property string|null $gender
     * @property string|null $marital_status
     * @property int|null $country_id
     * @property int|null $title_id
     * @property int|null $profession_id
     * @property string|null $mobile
     * @property string|null $phone
     * @property string|null $email
     * @property Carbon|null $dob
     * @property string|null $address
     * @property string|null $city
     * @property string|null $state
     * @property string|null $zip
     * @property string|null $employer
     * @property string|null $photo
     * @property string|null $notes
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property ClientRelationship|null $client_relationship
     * @method HasOne|_IH_ClientRelationship_QB client_relationship()
     * @property Country|null $country
     * @method HasOne|_IH_Country_QB country()
     * @property Profession|null $profession
     * @method HasOne|_IH_Profession_QB profession()
     * @property Title|null $title
     * @method HasOne|_IH_Title_QB title()
     * @method static _IH_ClientNextOfKin_QB onWriteConnection()
     * @method _IH_ClientNextOfKin_QB newQuery()
     * @method static _IH_ClientNextOfKin_QB on(null|string $connection = null)
     * @method static _IH_ClientNextOfKin_QB query()
     * @method static _IH_ClientNextOfKin_QB with(array|string $relations)
     * @method _IH_ClientNextOfKin_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_ClientNextOfKin_C|ClientNextOfKin[] all()
     * @ownLinks client_id,\Modules\Client\Entities\Client,id|client_relationship_id,\Modules\Client\Entities\ClientRelationship,id|country_id,\Modules\Core\Entities\Country,id|title_id,\Modules\Client\Entities\Title,id|profession_id,\Modules\Client\Entities\Profession,id
     * @mixin _IH_ClientNextOfKin_QB
     */
    class ClientNextOfKin extends Model {}
    
    /**
     * @property int $id
     * @property string|null $name
     * @method static _IH_ClientRelationship_QB onWriteConnection()
     * @method _IH_ClientRelationship_QB newQuery()
     * @method static _IH_ClientRelationship_QB on(null|string $connection = null)
     * @method static _IH_ClientRelationship_QB query()
     * @method static _IH_ClientRelationship_QB with(array|string $relations)
     * @method _IH_ClientRelationship_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_ClientRelationship_C|ClientRelationship[] all()
     * @foreignLinks id,\Modules\Client\Entities\ClientNextOfKin,client_relationship_id|id,\Modules\Loan\Entities\LoanGuarantor,client_relationship_id
     * @mixin _IH_ClientRelationship_QB
     */
    class ClientRelationship extends Model {}
    
    /**
     * @property int $id
     * @property string|null $name
     * @method static _IH_ClientType_QB onWriteConnection()
     * @method _IH_ClientType_QB newQuery()
     * @method static _IH_ClientType_QB on(null|string $connection = null)
     * @method static _IH_ClientType_QB query()
     * @method static _IH_ClientType_QB with(array|string $relations)
     * @method _IH_ClientType_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_ClientType_C|ClientType[] all()
     * @foreignLinks id,\Modules\Client\Entities\Client,client_type_id
     * @mixin _IH_ClientType_QB
     */
    class ClientType extends Model {}
    
    /**
     * @property int $id
     * @property int|null $created_by_id
     * @property int|null $client_id
     * @property int|null $user_id
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property Client|null $client
     * @method BelongsTo|_IH_Client_QB client()
     * @property User|null $user
     * @method HasOne|_IH_User_QB user()
     * @method static _IH_ClientUser_QB onWriteConnection()
     * @method _IH_ClientUser_QB newQuery()
     * @method static _IH_ClientUser_QB on(null|string $connection = null)
     * @method static _IH_ClientUser_QB query()
     * @method static _IH_ClientUser_QB with(array|string $relations)
     * @method _IH_ClientUser_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_ClientUser_C|ClientUser[] all()
     * @ownLinks client_id,\Modules\Client\Entities\Client,id|user_id,\Workbench\App\Models\User,id
     * @mixin _IH_ClientUser_QB
     */
    class ClientUser extends Model {}
    
    /**
     * @property int $id
     * @property string|null $name
     * @method static _IH_Profession_QB onWriteConnection()
     * @method _IH_Profession_QB newQuery()
     * @method static _IH_Profession_QB on(null|string $connection = null)
     * @method static _IH_Profession_QB query()
     * @method static _IH_Profession_QB with(array|string $relations)
     * @method _IH_Profession_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_Profession_C|Profession[] all()
     * @foreignLinks id,\Modules\Client\Entities\Client,profession_id|id,\Modules\Client\Entities\ClientNextOfKin,profession_id|id,\Modules\Loan\Entities\LoanGuarantor,profession_id
     * @mixin _IH_Profession_QB
     */
    class Profession extends Model {}
    
    /**
     * @property int $id
     * @property string|null $name
     * @method static _IH_Title_QB onWriteConnection()
     * @method _IH_Title_QB newQuery()
     * @method static _IH_Title_QB on(null|string $connection = null)
     * @method static _IH_Title_QB query()
     * @method static _IH_Title_QB with(array|string $relations)
     * @method _IH_Title_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_Title_C|Title[] all()
     * @foreignLinks id,\Modules\Client\Entities\Client,title_id|id,\Modules\Client\Entities\ClientNextOfKin,title_id|id,\Modules\Loan\Entities\LoanGuarantor,title_id
     * @mixin _IH_Title_QB
     */
    class Title extends Model {}
}