184 lines
3.0 KiB
TypeScript
184 lines
3.0 KiB
TypeScript
import { IsString, IsNotEmpty, IsOptional, IsNumber, IsEnum, Length } from 'class-validator';
|
|
import { Type } from 'class-transformer';
|
|
|
|
export class ApplyMerchantDto {
|
|
@IsString()
|
|
@IsNotEmpty({ message: '店铺名称不能为空' })
|
|
@Length(2, 100)
|
|
shopName: string;
|
|
|
|
@IsString()
|
|
@IsNotEmpty({ message: '联系电话不能为空' })
|
|
phone: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
province?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
city?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
district?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
address?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
description?: string;
|
|
|
|
@IsString()
|
|
@IsNotEmpty({ message: '门店营业执照不能为空' })
|
|
storeLicense: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
hotelImages?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
coverImage?: string;
|
|
|
|
@IsString()
|
|
@IsNotEmpty({ message: '签约类型不能为空' })
|
|
@IsEnum(['personal', 'company'], { message: '签约类型必须是personal或company' })
|
|
contractType: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
idCardFront?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
idCardBack?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
legalIdCardFront?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
legalIdCardBack?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
businessLicense?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
licenseNo?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
legalPerson?: string;
|
|
|
|
@IsString()
|
|
@IsNotEmpty({ message: '账户类型不能为空' })
|
|
@IsEnum(['company', 'personal'], { message: '账户类型必须是company或personal' })
|
|
accountType: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
accountName?: string;
|
|
|
|
@IsString()
|
|
@IsNotEmpty({ message: '银行账号不能为空' })
|
|
bankAccount: string;
|
|
|
|
@IsString()
|
|
@IsNotEmpty({ message: '开户银行不能为空' })
|
|
bankName: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
bankBranch?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
bankLicense?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
accountIdCardFront?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
accountIdCardBack?: string;
|
|
}
|
|
|
|
export class UpdateMerchantDto {
|
|
@IsOptional()
|
|
@IsString()
|
|
shopName?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
logo?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
coverImage?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
phone?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
description?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
province?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
city?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
district?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
address?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
businessLicense?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
licenseNo?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
legalPerson?: string;
|
|
}
|
|
|
|
export class QueryMerchantDto {
|
|
@IsOptional()
|
|
@Type(() => Number)
|
|
page?: number = 1;
|
|
|
|
@IsOptional()
|
|
@Type(() => Number)
|
|
pageSize?: number = 10;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
keyword?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
status?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
city?: string;
|
|
}
|