import { FieldInfo } from 'model-util-base'
import { ConditionUtil, ConditionUtilImpl, FieldUtil, TableUtilImpl, IdType, JoinTable, SubTable } from 'model-util'
import { Container, Singleton } from 'typescript-ioc' 
import { PayTrade } from '../models/index' 
/**
 * @author auto generate
 * @version 1.0
 * @date 2020-10-16 11:27
 */
interface PayTradeCU extends ConditionUtil<PayTradeCU>{
    ID:FieldUtil<PayTradeCU>;
    CATEGORY:FieldUtil<PayTradeCU>;
    INNER_ORDER_NO:FieldUtil<PayTradeCU>;
    OUT_ORDER_NO:FieldUtil<PayTradeCU>;
    CH_ORDER_NO:FieldUtil<PayTradeCU>;
    TOTAL_AMOUNT:FieldUtil<PayTradeCU>;
    PAY_CONFIG_ID:FieldUtil<PayTradeCU>;
    PAY_ACCOUNT_ID:FieldUtil<PayTradeCU>;
    PAY_ACCOUNT_TYPE:FieldUtil<PayTradeCU>;
    PAY_METHOD:FieldUtil<PayTradeCU>;
    PAY_TIME_EXPIRE:FieldUtil<PayTradeCU>;
    PREPAY_TIME:FieldUtil<PayTradeCU>;
    PAID_TIME:FieldUtil<PayTradeCU>;
    CURRENCY_CODE:FieldUtil<PayTradeCU>;
    ORDER_TITLE:FieldUtil<PayTradeCU>;
    ORDER_DESC:FieldUtil<PayTradeCU>;
    PAY_STATUS:FieldUtil<PayTradeCU>;
    PAY_REP_CODE:FieldUtil<PayTradeCU>;
    PAY_REP_MSG:FieldUtil<PayTradeCU>;
    BIZ_STATUS:FieldUtil<PayTradeCU>;
    ISSUING_BANK:FieldUtil<PayTradeCU>;
    EXT_JSON:FieldUtil<PayTradeCU>;
    REMARK:FieldUtil<PayTradeCU>;
    STATE:FieldUtil<PayTradeCU>;
    CREATE_TIME:FieldUtil<PayTradeCU>;
    UPDATE_TIME:FieldUtil<PayTradeCU>;
    RETURN_URL:FieldUtil<PayTradeCU>;
    CUST_NAME:FieldUtil<PayTradeCU>;
    CUST_PHONE:FieldUtil<PayTradeCU>;
    CUST_EMAIL:FieldUtil<PayTradeCU>;
    SYNC_METHOD:FieldUtil<PayTradeCU>;
}

class PayTradeCUImpl extends ConditionUtilImpl<PayTradeCUImpl> implements PayTradeCU{ 
    newInstance(): PayTradeCUImpl {
        return new PayTradeCUImpl();
    } 
    get ID(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('ID','id','', this);
    }
    get CATEGORY(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('CATEGORY','category','分类 00：临停，01:月卡', this);
    }
    get INNER_ORDER_NO(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('INNER_ORDER_NO','innerOrderNo','内部订单号', this);
    }
    get OUT_ORDER_NO(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('OUT_ORDER_NO','outOrderNo','交易表ID', this);
    }
    get CH_ORDER_NO(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('CH_ORDER_NO','chOrderNo','渠道交易号', this);
    }
    get TOTAL_AMOUNT(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('TOTAL_AMOUNT','totalAmount','交易总金额(分)', this);
    }
    get PAY_CONFIG_ID(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('PAY_CONFIG_ID','payConfigId','支付配置ID', this);
    }
    get PAY_ACCOUNT_ID(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('PAY_ACCOUNT_ID','payAccountId','支付账户配置ID', this);
    }
    get PAY_ACCOUNT_TYPE(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('PAY_ACCOUNT_TYPE','payAccountType','支付账户类型：10:境外第三方支付', this);
    }
    get PAY_METHOD(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('PAY_METHOD','payMethod','支付方式：101:信用卡支付', this);
    }
    get PAY_TIME_EXPIRE(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('PAY_TIME_EXPIRE','payTimeExpire','支付超时时间', this);
    }
    get PREPAY_TIME(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('PREPAY_TIME','prepayTime','下单时间', this);
    }
    get PAID_TIME(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('PAID_TIME','paidTime','支付完成时间', this);
    }
    get CURRENCY_CODE(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('CURRENCY_CODE','currencyCode','币种代码ISO-4217', this);
    }
    get ORDER_TITLE(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('ORDER_TITLE','orderTitle','订单标题', this);
    }
    get ORDER_DESC(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('ORDER_DESC','orderDesc','订单描述', this);
    }
    get PAY_STATUS(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('PAY_STATUS','payStatus','支付状态,0:支付成功，1：支付失败，2：待支付，3：支付中，4：支付超时', this);
    }
    get PAY_REP_CODE(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('PAY_REP_CODE','payRepCode','渠道支付返回代码', this);
    }
    get PAY_REP_MSG(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('PAY_REP_MSG','payRepMsg','渠道支付返回信息', this);
    }
    get BIZ_STATUS(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('BIZ_STATUS','bizStatus','业务状态 0:已同步,1:未同步', this);
    }
    get ISSUING_BANK(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('ISSUING_BANK','issuingBank','发卡行', this);
    }
    get EXT_JSON(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('EXT_JSON','extJson','扩展字段信息-JSON', this);
    }
    get REMARK(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('REMARK','remark','备注', this);
    }
    get STATE(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('STATE','state','状态：0-正常，1-删除', this);
    }
    get CREATE_TIME(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('CREATE_TIME','createTime','创建时间', this);
    }
    get UPDATE_TIME(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('UPDATE_TIME','updateTime','更新时间', this);
    }
    get RETURN_URL(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('RETURN_URL','returnUrl','前端通知地址', this);
    }
    get CUST_NAME(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('CUST_NAME','custName','顾客姓名', this);
    }
    get CUST_PHONE(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('CUST_PHONE','custPhone','顾客手机', this);
    }
    get CUST_EMAIL(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('CUST_EMAIL','custEmail','顾客邮箱地址', this);
    }
    get SYNC_METHOD(): FieldUtil<PayTradeCU>{  
        return new FieldUtil('SYNC_METHOD','syncMethod','状态同步类型 QUERY：查询，CALLBACK:回调', this);
    }
}

@Singleton 
class PayTradeMU extends TableUtilImpl<PayTradeCU,PayTrade>{ 
    tableName  = 'pay_trade';
    tableFields  = ['id','category','inner_order_no','out_order_no','ch_order_no','total_amount','pay_config_id','pay_account_id','pay_account_type','pay_method','pay_time_expire','prepay_time','paid_time','currency_code','order_title','order_desc','pay_status','pay_rep_code','pay_rep_msg','biz_status','issuing_bank','ext_json','remark','state','create_time','update_time','return_url','cust_name','cust_phone','cust_email','sync_method'];
    modelFields  = ['id','category','innerOrderNo','outOrderNo','chOrderNo','totalAmount','payConfigId','payAccountId','payAccountType','payMethod','payTimeExpire','prepayTime','paidTime','currencyCode','orderTitle','orderDesc','payStatus','payRepCode','payRepMsg','bizStatus','issuingBank','extJson','remark','state','createTime','updateTime','returnUrl','custName','custPhone','custEmail','syncMethod'];
    modelIdFields  = ['id'];
    tableIdFields  = ['id'];
    idType = IdType.CUSTOM;
    joinTables = [];
    subTables = [];

    createConditionUtil(): PayTradeCU {
        return new PayTradeCUImpl();
    }   

    static get ID(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('ID','id','', new PayTradeCUImpl());
    }
    static get CATEGORY(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('CATEGORY','category','分类 00：临停，01:月卡', new PayTradeCUImpl());
    }
    static get INNER_ORDER_NO(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('INNER_ORDER_NO','innerOrderNo','内部订单号', new PayTradeCUImpl());
    }
    static get OUT_ORDER_NO(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('OUT_ORDER_NO','outOrderNo','交易表ID', new PayTradeCUImpl());
    }
    static get CH_ORDER_NO(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('CH_ORDER_NO','chOrderNo','渠道交易号', new PayTradeCUImpl());
    }
    static get TOTAL_AMOUNT(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('TOTAL_AMOUNT','totalAmount','交易总金额(分)', new PayTradeCUImpl());
    }
    static get PAY_CONFIG_ID(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('PAY_CONFIG_ID','payConfigId','支付配置ID', new PayTradeCUImpl());
    }
    static get PAY_ACCOUNT_ID(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('PAY_ACCOUNT_ID','payAccountId','支付账户配置ID', new PayTradeCUImpl());
    }
    static get PAY_ACCOUNT_TYPE(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('PAY_ACCOUNT_TYPE','payAccountType','支付账户类型：10:境外第三方支付', new PayTradeCUImpl());
    }
    static get PAY_METHOD(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('PAY_METHOD','payMethod','支付方式：101:信用卡支付', new PayTradeCUImpl());
    }
    static get PAY_TIME_EXPIRE(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('PAY_TIME_EXPIRE','payTimeExpire','支付超时时间', new PayTradeCUImpl());
    }
    static get PREPAY_TIME(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('PREPAY_TIME','prepayTime','下单时间', new PayTradeCUImpl());
    }
    static get PAID_TIME(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('PAID_TIME','paidTime','支付完成时间', new PayTradeCUImpl());
    }
    static get CURRENCY_CODE(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('CURRENCY_CODE','currencyCode','币种代码ISO-4217', new PayTradeCUImpl());
    }
    static get ORDER_TITLE(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('ORDER_TITLE','orderTitle','订单标题', new PayTradeCUImpl());
    }
    static get ORDER_DESC(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('ORDER_DESC','orderDesc','订单描述', new PayTradeCUImpl());
    }
    static get PAY_STATUS(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('PAY_STATUS','payStatus','支付状态,0:支付成功，1：支付失败，2：待支付，3：支付中，4：支付超时', new PayTradeCUImpl());
    }
    static get PAY_REP_CODE(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('PAY_REP_CODE','payRepCode','渠道支付返回代码', new PayTradeCUImpl());
    }
    static get PAY_REP_MSG(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('PAY_REP_MSG','payRepMsg','渠道支付返回信息', new PayTradeCUImpl());
    }
    static get BIZ_STATUS(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('BIZ_STATUS','bizStatus','业务状态 0:已同步,1:未同步', new PayTradeCUImpl());
    }
    static get ISSUING_BANK(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('ISSUING_BANK','issuingBank','发卡行', new PayTradeCUImpl());
    }
    static get EXT_JSON(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('EXT_JSON','extJson','扩展字段信息-JSON', new PayTradeCUImpl());
    }
    static get REMARK(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('REMARK','remark','备注', new PayTradeCUImpl());
    }
    static get STATE(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('STATE','state','状态：0-正常，1-删除', new PayTradeCUImpl());
    }
    static get CREATE_TIME(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('CREATE_TIME','createTime','创建时间', new PayTradeCUImpl());
    }
    static get UPDATE_TIME(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('UPDATE_TIME','updateTime','更新时间', new PayTradeCUImpl());
    }
    static get RETURN_URL(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('RETURN_URL','returnUrl','前端通知地址', new PayTradeCUImpl());
    }
    static get CUST_NAME(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('CUST_NAME','custName','顾客姓名', new PayTradeCUImpl());
    }
    static get CUST_PHONE(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('CUST_PHONE','custPhone','顾客手机', new PayTradeCUImpl());
    }
    static get CUST_EMAIL(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('CUST_EMAIL','custEmail','顾客邮箱地址', new PayTradeCUImpl());
    }
    static get SYNC_METHOD(): FieldUtil<PayTradeCU>{ 
        return new FieldUtil('SYNC_METHOD','syncMethod','状态同步类型 QUERY：查询，CALLBACK:回调', new PayTradeCUImpl());
    }

    get ID(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.ID;
    }
    get CATEGORY(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.CATEGORY;
    }
    get INNER_ORDER_NO(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.INNER_ORDER_NO;
    }
    get OUT_ORDER_NO(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.OUT_ORDER_NO;
    }
    get CH_ORDER_NO(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.CH_ORDER_NO;
    }
    get TOTAL_AMOUNT(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.TOTAL_AMOUNT;
    }
    get PAY_CONFIG_ID(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.PAY_CONFIG_ID;
    }
    get PAY_ACCOUNT_ID(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.PAY_ACCOUNT_ID;
    }
    get PAY_ACCOUNT_TYPE(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.PAY_ACCOUNT_TYPE;
    }
    get PAY_METHOD(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.PAY_METHOD;
    }
    get PAY_TIME_EXPIRE(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.PAY_TIME_EXPIRE;
    }
    get PREPAY_TIME(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.PREPAY_TIME;
    }
    get PAID_TIME(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.PAID_TIME;
    }
    get CURRENCY_CODE(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.CURRENCY_CODE;
    }
    get ORDER_TITLE(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.ORDER_TITLE;
    }
    get ORDER_DESC(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.ORDER_DESC;
    }
    get PAY_STATUS(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.PAY_STATUS;
    }
    get PAY_REP_CODE(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.PAY_REP_CODE;
    }
    get PAY_REP_MSG(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.PAY_REP_MSG;
    }
    get BIZ_STATUS(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.BIZ_STATUS;
    }
    get ISSUING_BANK(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.ISSUING_BANK;
    }
    get EXT_JSON(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.EXT_JSON;
    }
    get REMARK(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.REMARK;
    }
    get STATE(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.STATE;
    }
    get CREATE_TIME(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.CREATE_TIME;
    }
    get UPDATE_TIME(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.UPDATE_TIME;
    }
    get RETURN_URL(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.RETURN_URL;
    }
    get CUST_NAME(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.CUST_NAME;
    }
    get CUST_PHONE(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.CUST_PHONE;
    }
    get CUST_EMAIL(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.CUST_EMAIL;
    }
    get SYNC_METHOD(): FieldUtil<PayTradeCU>{ 
        return PayTradeMU.SYNC_METHOD;
    }
}
export {PayTradeMU, PayTradeCU}
