import { FieldInfo } from 'model-util-base'
import { ConditionUtil, ConditionUtilImpl, FieldUtil, TableUtilImpl, IdType, JoinTable, SubTable } from 'model-util'
import { Container, Singleton } from 'typescript-ioc' 
import { CpMonthlyCardOrder } from '../models/index' 
/**
 * @author auto generate
 * @version 1.0
 * @date 2020-10-16 11:27
 */
interface CpMonthlyCardOrderCU extends ConditionUtil<CpMonthlyCardOrderCU>{
    ID:FieldUtil<CpMonthlyCardOrderCU>;
    ORDER_NO:FieldUtil<CpMonthlyCardOrderCU>;
    USER_ID:FieldUtil<CpMonthlyCardOrderCU>;
    TRADE_ID:FieldUtil<CpMonthlyCardOrderCU>;
    PARK_ID:FieldUtil<CpMonthlyCardOrderCU>;
    CAR_PLATE_NUM:FieldUtil<CpMonthlyCardOrderCU>;
    RECHARGE_TYPE:FieldUtil<CpMonthlyCardOrderCU>;
    RULE_NAME:FieldUtil<CpMonthlyCardOrderCU>;
    SENT_AMOUNT:FieldUtil<CpMonthlyCardOrderCU>;
    SENT_TYPE:FieldUtil<CpMonthlyCardOrderCU>;
    RECHARGE_AMOUNT:FieldUtil<CpMonthlyCardOrderCU>;
    RECHARGE_UNIT:FieldUtil<CpMonthlyCardOrderCU>;
    CHARGE_NUMBER:FieldUtil<CpMonthlyCardOrderCU>;
    PAYABLE_AMOUNT:FieldUtil<CpMonthlyCardOrderCU>;
    PAY_STATUS:FieldUtil<CpMonthlyCardOrderCU>;
    BIZ_STATUS:FieldUtil<CpMonthlyCardOrderCU>;
    EXT_JSON:FieldUtil<CpMonthlyCardOrderCU>;
    REMARK:FieldUtil<CpMonthlyCardOrderCU>;
    STATE:FieldUtil<CpMonthlyCardOrderCU>;
    CREATE_TIME:FieldUtil<CpMonthlyCardOrderCU>;
    UPDATE_TIME:FieldUtil<CpMonthlyCardOrderCU>;
    CARD_ID:FieldUtil<CpMonthlyCardOrderCU>;
    CAR_TYPE:FieldUtil<CpMonthlyCardOrderCU>;
    RULE_ID:FieldUtil<CpMonthlyCardOrderCU>;
    PARK_NAME:FieldUtil<CpMonthlyCardOrderCU>;
    ORDER_TITLE:FieldUtil<CpMonthlyCardOrderCU>;
    PARK_ORDER_NO:FieldUtil<CpMonthlyCardOrderCU>;
    OUT_ORDER_NO:FieldUtil<CpMonthlyCardOrderCU>;
    ERROR_INFO:FieldUtil<CpMonthlyCardOrderCU>;
    PAY_TIME:FieldUtil<CpMonthlyCardOrderCU>;
    START_TIME:FieldUtil<CpMonthlyCardOrderCU>;
    END_TIME:FieldUtil<CpMonthlyCardOrderCU>;
}

class CpMonthlyCardOrderCUImpl extends ConditionUtilImpl<CpMonthlyCardOrderCUImpl> implements CpMonthlyCardOrderCU{ 
    newInstance(): CpMonthlyCardOrderCUImpl {
        return new CpMonthlyCardOrderCUImpl();
    } 
    get ID(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('ID','id','', this);
    }
    get ORDER_NO(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('ORDER_NO','orderNo','订单号', this);
    }
    get USER_ID(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('USER_ID','userId','用户ID', this);
    }
    get TRADE_ID(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('TRADE_ID','tradeId','交易表ID', this);
    }
    get PARK_ID(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('PARK_ID','parkId','车场ID', this);
    }
    get CAR_PLATE_NUM(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('CAR_PLATE_NUM','carPlateNum','车牌号', this);
    }
    get RECHARGE_TYPE(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('RECHARGE_TYPE','rechargeType','充值类型(0 钱(单位:分),1 月,2 天,3 小时,4次)', this);
    }
    get RULE_NAME(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('RULE_NAME','ruleName','规则名称', this);
    }
    get SENT_AMOUNT(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('SENT_AMOUNT','sentAmount','赠送额度(单位:分)', this);
    }
    get SENT_TYPE(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('SENT_TYPE','sentType','赠送类型(0 钱(单位:分),1 月,2 天,3 小时,4次)', this);
    }
    get RECHARGE_AMOUNT(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('RECHARGE_AMOUNT','rechargeAmount','充值数额', this);
    }
    get RECHARGE_UNIT(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('RECHARGE_UNIT','rechargeUnit','充值单位', this);
    }
    get CHARGE_NUMBER(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('CHARGE_NUMBER','chargeNumber','充值车的充值月数或天数或次数', this);
    }
    get PAYABLE_AMOUNT(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('PAYABLE_AMOUNT','payableAmount','应付金额（分）', this);
    }
    get PAY_STATUS(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('PAY_STATUS','payStatus','支付状态,0:支付成功，1：支付失败，2：待支付，3：支付中，4：支付超时', this);
    }
    get BIZ_STATUS(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('BIZ_STATUS','bizStatus','业务状态 0:已同步,1:未同步', this);
    }
    get EXT_JSON(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('EXT_JSON','extJson','扩展字段信息-JSON', this);
    }
    get REMARK(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('REMARK','remark','备注', this);
    }
    get STATE(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('STATE','state','状态：0-正常，1-删除', this);
    }
    get CREATE_TIME(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('CREATE_TIME','createTime','创建时间', this);
    }
    get UPDATE_TIME(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('UPDATE_TIME','updateTime','更新时间', this);
    }
    get CARD_ID(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('CARD_ID','cardId','月卡id', this);
    }
    get CAR_TYPE(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('CAR_TYPE','carType','月卡类型', this);
    }
    get RULE_ID(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('RULE_ID','ruleId','规则id', this);
    }
    get PARK_NAME(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('PARK_NAME','parkName','', this);
    }
    get ORDER_TITLE(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('ORDER_TITLE','orderTitle','订单标题', this);
    }
    get PARK_ORDER_NO(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('PARK_ORDER_NO','parkOrderNo','内部订单号', this);
    }
    get OUT_ORDER_NO(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('OUT_ORDER_NO','outOrderNo','', this);
    }
    get ERROR_INFO(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('ERROR_INFO','errorInfo','异常信息', this);
    }
    get PAY_TIME(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('PAY_TIME','payTime','支付时间', this);
    }
    get START_TIME(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('START_TIME','startTime','开始日期', this);
    }
    get END_TIME(): FieldUtil<CpMonthlyCardOrderCU>{  
        return new FieldUtil('END_TIME','endTime','结束日期', this);
    }
}

@Singleton 
class CpMonthlyCardOrderMU extends TableUtilImpl<CpMonthlyCardOrderCU,CpMonthlyCardOrder>{ 
    tableName  = 'cp_monthly_card_order';
    tableFields  = ['id','order_no','user_id','trade_id','park_id','car_plate_num','recharge_type','rule_name','sent_amount','sent_type','recharge_amount','recharge_unit','charge_number','payable_amount','pay_status','biz_status','ext_json','remark','state','create_time','update_time','card_id','car_type','rule_id','park_name','order_title','park_order_no','out_order_no','error_info','pay_time','start_time','end_time'];
    modelFields  = ['id','orderNo','userId','tradeId','parkId','carPlateNum','rechargeType','ruleName','sentAmount','sentType','rechargeAmount','rechargeUnit','chargeNumber','payableAmount','payStatus','bizStatus','extJson','remark','state','createTime','updateTime','cardId','carType','ruleId','parkName','orderTitle','parkOrderNo','outOrderNo','errorInfo','payTime','startTime','endTime'];
    modelIdFields  = ['id'];
    tableIdFields  = ['id'];
    idType = IdType.CUSTOM;
    joinTables = [];
    subTables = [];

    createConditionUtil(): CpMonthlyCardOrderCU {
        return new CpMonthlyCardOrderCUImpl();
    }   

    static get ID(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('ID','id','', new CpMonthlyCardOrderCUImpl());
    }
    static get ORDER_NO(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('ORDER_NO','orderNo','订单号', new CpMonthlyCardOrderCUImpl());
    }
    static get USER_ID(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('USER_ID','userId','用户ID', new CpMonthlyCardOrderCUImpl());
    }
    static get TRADE_ID(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('TRADE_ID','tradeId','交易表ID', new CpMonthlyCardOrderCUImpl());
    }
    static get PARK_ID(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('PARK_ID','parkId','车场ID', new CpMonthlyCardOrderCUImpl());
    }
    static get CAR_PLATE_NUM(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('CAR_PLATE_NUM','carPlateNum','车牌号', new CpMonthlyCardOrderCUImpl());
    }
    static get RECHARGE_TYPE(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('RECHARGE_TYPE','rechargeType','充值类型(0 钱(单位:分),1 月,2 天,3 小时,4次)', new CpMonthlyCardOrderCUImpl());
    }
    static get RULE_NAME(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('RULE_NAME','ruleName','规则名称', new CpMonthlyCardOrderCUImpl());
    }
    static get SENT_AMOUNT(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('SENT_AMOUNT','sentAmount','赠送额度(单位:分)', new CpMonthlyCardOrderCUImpl());
    }
    static get SENT_TYPE(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('SENT_TYPE','sentType','赠送类型(0 钱(单位:分),1 月,2 天,3 小时,4次)', new CpMonthlyCardOrderCUImpl());
    }
    static get RECHARGE_AMOUNT(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('RECHARGE_AMOUNT','rechargeAmount','充值数额', new CpMonthlyCardOrderCUImpl());
    }
    static get RECHARGE_UNIT(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('RECHARGE_UNIT','rechargeUnit','充值单位', new CpMonthlyCardOrderCUImpl());
    }
    static get CHARGE_NUMBER(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('CHARGE_NUMBER','chargeNumber','充值车的充值月数或天数或次数', new CpMonthlyCardOrderCUImpl());
    }
    static get PAYABLE_AMOUNT(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('PAYABLE_AMOUNT','payableAmount','应付金额（分）', new CpMonthlyCardOrderCUImpl());
    }
    static get PAY_STATUS(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('PAY_STATUS','payStatus','支付状态,0:支付成功，1：支付失败，2：待支付，3：支付中，4：支付超时', new CpMonthlyCardOrderCUImpl());
    }
    static get BIZ_STATUS(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('BIZ_STATUS','bizStatus','业务状态 0:已同步,1:未同步', new CpMonthlyCardOrderCUImpl());
    }
    static get EXT_JSON(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('EXT_JSON','extJson','扩展字段信息-JSON', new CpMonthlyCardOrderCUImpl());
    }
    static get REMARK(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('REMARK','remark','备注', new CpMonthlyCardOrderCUImpl());
    }
    static get STATE(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('STATE','state','状态：0-正常，1-删除', new CpMonthlyCardOrderCUImpl());
    }
    static get CREATE_TIME(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('CREATE_TIME','createTime','创建时间', new CpMonthlyCardOrderCUImpl());
    }
    static get UPDATE_TIME(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('UPDATE_TIME','updateTime','更新时间', new CpMonthlyCardOrderCUImpl());
    }
    static get CARD_ID(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('CARD_ID','cardId','月卡id', new CpMonthlyCardOrderCUImpl());
    }
    static get CAR_TYPE(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('CAR_TYPE','carType','月卡类型', new CpMonthlyCardOrderCUImpl());
    }
    static get RULE_ID(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('RULE_ID','ruleId','规则id', new CpMonthlyCardOrderCUImpl());
    }
    static get PARK_NAME(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('PARK_NAME','parkName','', new CpMonthlyCardOrderCUImpl());
    }
    static get ORDER_TITLE(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('ORDER_TITLE','orderTitle','订单标题', new CpMonthlyCardOrderCUImpl());
    }
    static get PARK_ORDER_NO(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('PARK_ORDER_NO','parkOrderNo','内部订单号', new CpMonthlyCardOrderCUImpl());
    }
    static get OUT_ORDER_NO(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('OUT_ORDER_NO','outOrderNo','', new CpMonthlyCardOrderCUImpl());
    }
    static get ERROR_INFO(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('ERROR_INFO','errorInfo','异常信息', new CpMonthlyCardOrderCUImpl());
    }
    static get PAY_TIME(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('PAY_TIME','payTime','支付时间', new CpMonthlyCardOrderCUImpl());
    }
    static get START_TIME(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('START_TIME','startTime','开始日期', new CpMonthlyCardOrderCUImpl());
    }
    static get END_TIME(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return new FieldUtil('END_TIME','endTime','结束日期', new CpMonthlyCardOrderCUImpl());
    }

    get ID(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.ID;
    }
    get ORDER_NO(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.ORDER_NO;
    }
    get USER_ID(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.USER_ID;
    }
    get TRADE_ID(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.TRADE_ID;
    }
    get PARK_ID(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.PARK_ID;
    }
    get CAR_PLATE_NUM(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.CAR_PLATE_NUM;
    }
    get RECHARGE_TYPE(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.RECHARGE_TYPE;
    }
    get RULE_NAME(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.RULE_NAME;
    }
    get SENT_AMOUNT(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.SENT_AMOUNT;
    }
    get SENT_TYPE(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.SENT_TYPE;
    }
    get RECHARGE_AMOUNT(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.RECHARGE_AMOUNT;
    }
    get RECHARGE_UNIT(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.RECHARGE_UNIT;
    }
    get CHARGE_NUMBER(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.CHARGE_NUMBER;
    }
    get PAYABLE_AMOUNT(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.PAYABLE_AMOUNT;
    }
    get PAY_STATUS(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.PAY_STATUS;
    }
    get BIZ_STATUS(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.BIZ_STATUS;
    }
    get EXT_JSON(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.EXT_JSON;
    }
    get REMARK(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.REMARK;
    }
    get STATE(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.STATE;
    }
    get CREATE_TIME(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.CREATE_TIME;
    }
    get UPDATE_TIME(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.UPDATE_TIME;
    }
    get CARD_ID(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.CARD_ID;
    }
    get CAR_TYPE(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.CAR_TYPE;
    }
    get RULE_ID(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.RULE_ID;
    }
    get PARK_NAME(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.PARK_NAME;
    }
    get ORDER_TITLE(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.ORDER_TITLE;
    }
    get PARK_ORDER_NO(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.PARK_ORDER_NO;
    }
    get OUT_ORDER_NO(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.OUT_ORDER_NO;
    }
    get ERROR_INFO(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.ERROR_INFO;
    }
    get PAY_TIME(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.PAY_TIME;
    }
    get START_TIME(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.START_TIME;
    }
    get END_TIME(): FieldUtil<CpMonthlyCardOrderCU>{ 
        return CpMonthlyCardOrderMU.END_TIME;
    }
}
export {CpMonthlyCardOrderMU, CpMonthlyCardOrderCU}
