import { Rule, RuleType } from '@midwayjs/validate'; import { ApiProperty } from '@midwayjs/swagger'; import { SearchBase } from 'free-midway-component'; import get = require('lodash/get'); const dealVO = (cla, data) => { for (const key in cla) { const val = get(data, key); if (val || val === 0) cla[key] = val; } }; export class FVO_expert { constructor(data: object) { dealVO(this, data); } @ApiProperty({ description: '数据id' }) _id: string = undefined; @ApiProperty({ description: '平台用户id' }) 'user': string = undefined; @ApiProperty({ description: '专家姓名' }) 'name': string = undefined; @ApiProperty({ description: '头像' }) 'icon': Array = undefined; @ApiProperty({ description: '性别' }) 'gender': string = undefined; @ApiProperty({ description: '出生年月' }) 'birth': string = undefined; @ApiProperty({ description: '证件类型' }) 'cardType': string = undefined; @ApiProperty({ description: '证件号码' }) 'card': string = undefined; @ApiProperty({ description: '联系电话' }) 'phone': string = undefined; @ApiProperty({ description: '所属领域' }) 'field': string = undefined; @ApiProperty({ description: '研究方向' }) 'direction': string = undefined; @ApiProperty({ description: '学历' }) 'education': string = undefined; @ApiProperty({ description: '工作单位' }) 'work': string = undefined; @ApiProperty({ description: '职称' }) 'title': string = undefined; @ApiProperty({ description: '简介' }) 'brief': string = undefined; @ApiProperty({ description: '所在地区' }) 'area': Array = undefined; @ApiProperty({ description: '是否公开' }) 'is_show': string = undefined; @ApiProperty({ description: '状态' }) 'status': string = undefined; } export class QDTO_expert extends SearchBase { constructor() { const like_prop = ['name']; const props = ['user', 'name', 'gender', 'phone', 'field', 'direction', 'education', 'title', 'area', 'is_show', 'status']; const mapping = []; super({ like_prop, props, mapping }); } @ApiProperty({ description: '平台用户id' }) 'user': string = undefined; @ApiProperty({ description: '专家姓名' }) 'name': string = undefined; @ApiProperty({ description: '性别' }) 'gender': string = undefined; @ApiProperty({ description: '联系电话' }) 'phone': string = undefined; @ApiProperty({ description: '所属领域' }) 'field': string = undefined; @ApiProperty({ description: '研究方向' }) 'direction': string = undefined; @ApiProperty({ description: '学历' }) 'education': string = undefined; @ApiProperty({ description: '职称' }) 'title': string = undefined; @ApiProperty({ description: '所在地区' }) 'area': Array = undefined; @ApiProperty({ description: '是否公开' }) 'is_show': string = undefined; @ApiProperty({ description: '状态' }) 'status': string = undefined; } export class QVO_expert extends FVO_expert { constructor(data: object) { super(data); dealVO(this, data); } } export class CDTO_expert { @ApiProperty({ description: '平台用户id' }) @Rule(RuleType['string']().empty('')) 'user': string = undefined; @ApiProperty({ description: '专家姓名' }) @Rule(RuleType['string']().empty('')) 'name': string = undefined; @ApiProperty({ description: '头像' }) @Rule(RuleType['array']().empty('')) 'icon': Array = undefined; @ApiProperty({ description: '性别' }) @Rule(RuleType['string']().empty('')) 'gender': string = undefined; @ApiProperty({ description: '出生年月' }) @Rule(RuleType['string']().empty('')) 'birth': string = undefined; @ApiProperty({ description: '证件类型' }) @Rule(RuleType['string']().empty('')) 'cardType': string = undefined; @ApiProperty({ description: '证件号码' }) @Rule(RuleType['string']().empty('')) 'card': string = undefined; @ApiProperty({ description: '联系电话' }) @Rule(RuleType['string']().empty('')) 'phone': string = undefined; @ApiProperty({ description: '所属领域' }) @Rule(RuleType['string']().empty('')) 'field': string = undefined; @ApiProperty({ description: '研究方向' }) @Rule(RuleType['string']().empty('')) 'direction': string = undefined; @ApiProperty({ description: '学历' }) @Rule(RuleType['string']().empty('')) 'education': string = undefined; @ApiProperty({ description: '工作单位' }) @Rule(RuleType['string']().empty('')) 'work': string = undefined; @ApiProperty({ description: '职称' }) @Rule(RuleType['string']().empty('')) 'title': string = undefined; @ApiProperty({ description: '简介' }) @Rule(RuleType['string']().empty('')) 'brief': string = undefined; @ApiProperty({ description: '所在地区' }) @Rule(RuleType['array']().empty('')) 'area': Array = undefined; @ApiProperty({ description: '是否公开' }) @Rule(RuleType['string']().empty('')) 'is_show': string = undefined; @ApiProperty({ description: '状态' }) @Rule(RuleType['string']().empty('')) 'status': string = undefined; } export class CVO_expert extends FVO_expert { constructor(data: object) { super(data); dealVO(this, data); } } export class UDTO_expert extends CDTO_expert { @ApiProperty({ description: '数据id' }) @Rule(RuleType['string']().empty('')) _id: string = undefined; } export class UVAO_expert extends FVO_expert { constructor(data: object) { super(data); dealVO(this, data); } }