Files
rent/apps/server/src/modules/merchant/dto/merchant.dto.ts
T
2026-05-11 17:59:19 +08:00

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;
}