import { FieldInfo } from 'model-util-base'
import { ConditionUtil, ConditionUtilImpl, FieldUtil, TableUtilImpl, IdType, JoinTable, SubTable } from 'model-util'
import { Container, Singleton } from 'typescript-ioc' 
import { CnProjectVersion } from '../models/index' 
/**
 * @author auto generate
 * @version 1.0
 * @date 2021-10-29 14:10
 */
interface CnProjectVersionCU extends ConditionUtil<CnProjectVersionCU>{
    ID:FieldUtil<CnProjectVersionCU>;
    PROJECT_ID:FieldUtil<CnProjectVersionCU>;
    VERSION_NO:FieldUtil<CnProjectVersionCU>;
    RELEASE_TAG:FieldUtil<CnProjectVersionCU>;
    RELEASE_STATUS:FieldUtil<CnProjectVersionCU>;
    REMARK:FieldUtil<CnProjectVersionCU>;
    DELETED:FieldUtil<CnProjectVersionCU>;
    CREATE_USER_ID:FieldUtil<CnProjectVersionCU>;
    CREATE_TIME:FieldUtil<CnProjectVersionCU>;
    SEQ_NO:FieldUtil<CnProjectVersionCU>;
}

class CnProjectVersionCUImpl extends ConditionUtilImpl<CnProjectVersionCUImpl> implements CnProjectVersionCU{ 
    newInstance(): CnProjectVersionCUImpl {
        return new CnProjectVersionCUImpl();
    } 
    get ID(): FieldUtil<CnProjectVersionCU>{  
        return new FieldUtil('id','id','id', this);
    }
    get PROJECT_ID(): FieldUtil<CnProjectVersionCU>{  
        return new FieldUtil('project_id','projectId','项目ID', this);
    }
    get VERSION_NO(): FieldUtil<CnProjectVersionCU>{  
        return new FieldUtil('version_no','versionNo','版本号', this);
    }
    get RELEASE_TAG(): FieldUtil<CnProjectVersionCU>{  
        return new FieldUtil('release_tag','releaseTag','发布标签', this);
    }
    get RELEASE_STATUS(): FieldUtil<CnProjectVersionCU>{  
        return new FieldUtil('release_status','releaseStatus','发布状态：0-未发布、1-已发布', this);
    }
    get REMARK(): FieldUtil<CnProjectVersionCU>{  
        return new FieldUtil('remark','remark','备注', this);
    }
    get DELETED(): FieldUtil<CnProjectVersionCU>{  
        return new FieldUtil('deleted','deleted','deleted', this);
    }
    get CREATE_USER_ID(): FieldUtil<CnProjectVersionCU>{  
        return new FieldUtil('create_user_id','createUserId','create_user_id', this);
    }
    get CREATE_TIME(): FieldUtil<CnProjectVersionCU>{  
        return new FieldUtil('create_time','createTime','create_time', this);
    }
    get SEQ_NO(): FieldUtil<CnProjectVersionCU>{  
        return new FieldUtil('seq_no','seqNo','显示顺序', this);
    }
}

@Singleton 
class CnProjectVersionMU extends TableUtilImpl<CnProjectVersionCU,CnProjectVersion>{ 
    tableName  = 'cn_project_version';
    tableFields  = ['id','project_id','version_no','release_tag','release_status','remark','deleted','create_user_id','create_time','seq_no'];
    modelFields  = ['id','projectId','versionNo','releaseTag','releaseStatus','remark','deleted','createUserId','createTime','seqNo'];
    modelIdFields  = ['id'];
    tableIdFields  = ['id'];
    idType = IdType.CUSTOM;
    joinTables = [];
    subTables = [];

    createConditionUtil(): CnProjectVersionCU {
        return new CnProjectVersionCUImpl();
    }   

    static get ID(): FieldUtil<CnProjectVersionCU>{ 
        return new FieldUtil('id','id','id', new CnProjectVersionCUImpl());
    }
    static get PROJECT_ID(): FieldUtil<CnProjectVersionCU>{ 
        return new FieldUtil('project_id','projectId','项目ID', new CnProjectVersionCUImpl());
    }
    static get VERSION_NO(): FieldUtil<CnProjectVersionCU>{ 
        return new FieldUtil('version_no','versionNo','版本号', new CnProjectVersionCUImpl());
    }
    static get RELEASE_TAG(): FieldUtil<CnProjectVersionCU>{ 
        return new FieldUtil('release_tag','releaseTag','发布标签', new CnProjectVersionCUImpl());
    }
    static get RELEASE_STATUS(): FieldUtil<CnProjectVersionCU>{ 
        return new FieldUtil('release_status','releaseStatus','发布状态：0-未发布、1-已发布', new CnProjectVersionCUImpl());
    }
    static get REMARK(): FieldUtil<CnProjectVersionCU>{ 
        return new FieldUtil('remark','remark','备注', new CnProjectVersionCUImpl());
    }
    static get DELETED(): FieldUtil<CnProjectVersionCU>{ 
        return new FieldUtil('deleted','deleted','deleted', new CnProjectVersionCUImpl());
    }
    static get CREATE_USER_ID(): FieldUtil<CnProjectVersionCU>{ 
        return new FieldUtil('create_user_id','createUserId','create_user_id', new CnProjectVersionCUImpl());
    }
    static get CREATE_TIME(): FieldUtil<CnProjectVersionCU>{ 
        return new FieldUtil('create_time','createTime','create_time', new CnProjectVersionCUImpl());
    }
    static get SEQ_NO(): FieldUtil<CnProjectVersionCU>{ 
        return new FieldUtil('seq_no','seqNo','显示顺序', new CnProjectVersionCUImpl());
    }

    get ID(): FieldUtil<CnProjectVersionCU>{ 
        return CnProjectVersionMU.ID;
    }
    get PROJECT_ID(): FieldUtil<CnProjectVersionCU>{ 
        return CnProjectVersionMU.PROJECT_ID;
    }
    get VERSION_NO(): FieldUtil<CnProjectVersionCU>{ 
        return CnProjectVersionMU.VERSION_NO;
    }
    get RELEASE_TAG(): FieldUtil<CnProjectVersionCU>{ 
        return CnProjectVersionMU.RELEASE_TAG;
    }
    get RELEASE_STATUS(): FieldUtil<CnProjectVersionCU>{ 
        return CnProjectVersionMU.RELEASE_STATUS;
    }
    get REMARK(): FieldUtil<CnProjectVersionCU>{ 
        return CnProjectVersionMU.REMARK;
    }
    get DELETED(): FieldUtil<CnProjectVersionCU>{ 
        return CnProjectVersionMU.DELETED;
    }
    get CREATE_USER_ID(): FieldUtil<CnProjectVersionCU>{ 
        return CnProjectVersionMU.CREATE_USER_ID;
    }
    get CREATE_TIME(): FieldUtil<CnProjectVersionCU>{ 
        return CnProjectVersionMU.CREATE_TIME;
    }
    get SEQ_NO(): FieldUtil<CnProjectVersionCU>{ 
        return CnProjectVersionMU.SEQ_NO;
    }
}
export {CnProjectVersionMU, CnProjectVersionCU}
