import { FieldInfo } from 'model-util-base'
import { ConditionUtil, ConditionUtilImpl, FieldUtil, TableUtilImpl, IdType, JoinTable, SubTable } from 'model-util'
import { Container, Singleton } from 'typescript-ioc' 
import { AdThirdPartyUser } from '../models/index' 
/**
 * @author auto generate
 * @version 1.0
 * @date 2021-05-08 18:19
 */
interface AdThirdPartyUserCU extends ConditionUtil<AdThirdPartyUserCU>{
    ID:FieldUtil<AdThirdPartyUserCU>;
    USERNAME:FieldUtil<AdThirdPartyUserCU>;
    KEY_OFFSET:FieldUtil<AdThirdPartyUserCU>;
    CREATE_TIME:FieldUtil<AdThirdPartyUserCU>;
    UPDATE_TIME:FieldUtil<AdThirdPartyUserCU>;
    NICKNAME:FieldUtil<AdThirdPartyUserCU>;
    PWD:FieldUtil<AdThirdPartyUserCU>;
    CODE_VALUE:FieldUtil<AdThirdPartyUserCU>;
    KEY_VALUE:FieldUtil<AdThirdPartyUserCU>;
    USER_STATUS:FieldUtil<AdThirdPartyUserCU>;
}

class AdThirdPartyUserCUImpl extends ConditionUtilImpl<AdThirdPartyUserCUImpl> implements AdThirdPartyUserCU{ 
    newInstance(): AdThirdPartyUserCUImpl {
        return new AdThirdPartyUserCUImpl();
    } 
    get ID(): FieldUtil<AdThirdPartyUserCU>{  
        return new FieldUtil('id','id','主键id', this);
    }
    get USERNAME(): FieldUtil<AdThirdPartyUserCU>{  
        return new FieldUtil('username','username','用户名', this);
    }
    get KEY_OFFSET(): FieldUtil<AdThirdPartyUserCU>{  
        return new FieldUtil('key_offset','keyOffset','密钥偏移量', this);
    }
    get CREATE_TIME(): FieldUtil<AdThirdPartyUserCU>{  
        return new FieldUtil('create_time','createTime','', this);
    }
    get UPDATE_TIME(): FieldUtil<AdThirdPartyUserCU>{  
        return new FieldUtil('update_time','updateTime','', this);
    }
    get NICKNAME(): FieldUtil<AdThirdPartyUserCU>{  
        return new FieldUtil('nickname','nickname','第三方用户名称', this);
    }
    get PWD(): FieldUtil<AdThirdPartyUserCU>{  
        return new FieldUtil('pwd','pwd','密码', this);
    }
    get CODE_VALUE(): FieldUtil<AdThirdPartyUserCU>{  
        return new FieldUtil('code_value','codeValue','代码：1，远山；2，百家', this);
    }
    get KEY_VALUE(): FieldUtil<AdThirdPartyUserCU>{  
        return new FieldUtil('key_value','keyValue','密钥', this);
    }
    get USER_STATUS(): FieldUtil<AdThirdPartyUserCU>{  
        return new FieldUtil('user_status','userStatus','状态：0，启用；1，禁用；2，删除', this);
    }
}

@Singleton 
class AdThirdPartyUserMU extends TableUtilImpl<AdThirdPartyUserCU,AdThirdPartyUser>{ 
    tableName  = 'ad_third_party_user';
    tableFields  = ['id','username','key_offset','create_time','update_time','nickname','pwd','code_value','key_value','user_status'];
    modelFields  = ['id','username','keyOffset','createTime','updateTime','nickname','pwd','codeValue','keyValue','userStatus'];
    modelIdFields  = ['id'];
    tableIdFields  = ['id'];
    idType = IdType.CUSTOM;
    joinTables = [];
    subTables = [];

    createConditionUtil(): AdThirdPartyUserCU {
        return new AdThirdPartyUserCUImpl();
    }   

    static get ID(): FieldUtil<AdThirdPartyUserCU>{ 
        return new FieldUtil('id','id','主键id', new AdThirdPartyUserCUImpl());
    }
    static get USERNAME(): FieldUtil<AdThirdPartyUserCU>{ 
        return new FieldUtil('username','username','用户名', new AdThirdPartyUserCUImpl());
    }
    static get KEY_OFFSET(): FieldUtil<AdThirdPartyUserCU>{ 
        return new FieldUtil('key_offset','keyOffset','密钥偏移量', new AdThirdPartyUserCUImpl());
    }
    static get CREATE_TIME(): FieldUtil<AdThirdPartyUserCU>{ 
        return new FieldUtil('create_time','createTime','', new AdThirdPartyUserCUImpl());
    }
    static get UPDATE_TIME(): FieldUtil<AdThirdPartyUserCU>{ 
        return new FieldUtil('update_time','updateTime','', new AdThirdPartyUserCUImpl());
    }
    static get NICKNAME(): FieldUtil<AdThirdPartyUserCU>{ 
        return new FieldUtil('nickname','nickname','第三方用户名称', new AdThirdPartyUserCUImpl());
    }
    static get PWD(): FieldUtil<AdThirdPartyUserCU>{ 
        return new FieldUtil('pwd','pwd','密码', new AdThirdPartyUserCUImpl());
    }
    static get CODE_VALUE(): FieldUtil<AdThirdPartyUserCU>{ 
        return new FieldUtil('code_value','codeValue','代码：1，远山；2，百家', new AdThirdPartyUserCUImpl());
    }
    static get KEY_VALUE(): FieldUtil<AdThirdPartyUserCU>{ 
        return new FieldUtil('key_value','keyValue','密钥', new AdThirdPartyUserCUImpl());
    }
    static get USER_STATUS(): FieldUtil<AdThirdPartyUserCU>{ 
        return new FieldUtil('user_status','userStatus','状态：0，启用；1，禁用；2，删除', new AdThirdPartyUserCUImpl());
    }

    get ID(): FieldUtil<AdThirdPartyUserCU>{ 
        return AdThirdPartyUserMU.ID;
    }
    get USERNAME(): FieldUtil<AdThirdPartyUserCU>{ 
        return AdThirdPartyUserMU.USERNAME;
    }
    get KEY_OFFSET(): FieldUtil<AdThirdPartyUserCU>{ 
        return AdThirdPartyUserMU.KEY_OFFSET;
    }
    get CREATE_TIME(): FieldUtil<AdThirdPartyUserCU>{ 
        return AdThirdPartyUserMU.CREATE_TIME;
    }
    get UPDATE_TIME(): FieldUtil<AdThirdPartyUserCU>{ 
        return AdThirdPartyUserMU.UPDATE_TIME;
    }
    get NICKNAME(): FieldUtil<AdThirdPartyUserCU>{ 
        return AdThirdPartyUserMU.NICKNAME;
    }
    get PWD(): FieldUtil<AdThirdPartyUserCU>{ 
        return AdThirdPartyUserMU.PWD;
    }
    get CODE_VALUE(): FieldUtil<AdThirdPartyUserCU>{ 
        return AdThirdPartyUserMU.CODE_VALUE;
    }
    get KEY_VALUE(): FieldUtil<AdThirdPartyUserCU>{ 
        return AdThirdPartyUserMU.KEY_VALUE;
    }
    get USER_STATUS(): FieldUtil<AdThirdPartyUserCU>{ 
        return AdThirdPartyUserMU.USER_STATUS;
    }
}
export {AdThirdPartyUserMU, AdThirdPartyUserCU}
