import { FieldInfo } from 'model-util-base'
import { ConditionUtil, ConditionUtilImpl, FieldUtil, TableUtilImpl, IdType, JoinTable, SubTable } from 'model-util'
import { Container, Singleton } from 'typescript-ioc' 
import { DevopsTaskNoticeQueue } from '../models/index' 
/**
 * @author auto generate
 * @version 1.0
 * @date 2021-05-19 16:50
 */
interface DevopsTaskNoticeQueueCU extends ConditionUtil<DevopsTaskNoticeQueueCU>{
    ID:FieldUtil<DevopsTaskNoticeQueueCU>;
    TASK_ID:FieldUtil<DevopsTaskNoticeQueueCU>;
    STATE:FieldUtil<DevopsTaskNoticeQueueCU>;
}

class DevopsTaskNoticeQueueCUImpl extends ConditionUtilImpl<DevopsTaskNoticeQueueCUImpl> implements DevopsTaskNoticeQueueCU{ 
    newInstance(): DevopsTaskNoticeQueueCUImpl {
        return new DevopsTaskNoticeQueueCUImpl();
    } 
    get ID(): FieldUtil<DevopsTaskNoticeQueueCU>{  
        return new FieldUtil('id','id','', this);
    }
    get TASK_ID(): FieldUtil<DevopsTaskNoticeQueueCU>{  
        return new FieldUtil('task_id','taskId','', this);
    }
    get STATE(): FieldUtil<DevopsTaskNoticeQueueCU>{  
        return new FieldUtil('state','state','任务通知推送状态（1已推送，0未推送）', this);
    }
}

@Singleton 
class DevopsTaskNoticeQueueMU extends TableUtilImpl<DevopsTaskNoticeQueueCU,DevopsTaskNoticeQueue>{ 
    tableName  = 'devops_task_notice_queue';
    tableFields  = ['id','task_id','state'];
    modelFields  = ['id','taskId','state'];
    modelIdFields  = ['id'];
    tableIdFields  = ['id'];
    idType = IdType.CUSTOM;
    joinTables = [];
    subTables = [];

    createConditionUtil(): DevopsTaskNoticeQueueCU {
        return new DevopsTaskNoticeQueueCUImpl();
    }   

    static get ID(): FieldUtil<DevopsTaskNoticeQueueCU>{ 
        return new FieldUtil('id','id','', new DevopsTaskNoticeQueueCUImpl());
    }
    static get TASK_ID(): FieldUtil<DevopsTaskNoticeQueueCU>{ 
        return new FieldUtil('task_id','taskId','', new DevopsTaskNoticeQueueCUImpl());
    }
    static get STATE(): FieldUtil<DevopsTaskNoticeQueueCU>{ 
        return new FieldUtil('state','state','任务通知推送状态（1已推送，0未推送）', new DevopsTaskNoticeQueueCUImpl());
    }

    get ID(): FieldUtil<DevopsTaskNoticeQueueCU>{ 
        return DevopsTaskNoticeQueueMU.ID;
    }
    get TASK_ID(): FieldUtil<DevopsTaskNoticeQueueCU>{ 
        return DevopsTaskNoticeQueueMU.TASK_ID;
    }
    get STATE(): FieldUtil<DevopsTaskNoticeQueueCU>{ 
        return DevopsTaskNoticeQueueMU.STATE;
    }
}
export {DevopsTaskNoticeQueueMU, DevopsTaskNoticeQueueCU}
