51 lines
1.4 KiB
TypeScript
51 lines
1.4 KiB
TypeScript
import { ApiProperty } from '@nestjs/swagger';
|
|
import { IsString, IsEmail, IsOptional, MinLength, IsNotEmpty, IsEnum } from 'class-validator';
|
|
import { ResponseCode } from 'src/base.dto';
|
|
import { Gender, User } from '../models/user.model';
|
|
|
|
export class UpdateUserDto {
|
|
@IsString({ message: '用户ID必须是字符串' })
|
|
@IsNotEmpty({ message: '用户ID不能为空' })
|
|
@ApiProperty({ description: '用户ID', example: '123' })
|
|
userId: string;
|
|
|
|
@IsString({ message: '用户名必须是字符串' })
|
|
@MinLength(1, { message: '用户名长度不能少于1个字符' })
|
|
@IsOptional()
|
|
@ApiProperty({ description: '用户名', example: '张三' })
|
|
name: string;
|
|
|
|
@IsString({ message: '头像必须是字符串' })
|
|
@IsOptional()
|
|
@ApiProperty({ description: '头像', example: 'base64' })
|
|
avatar: string;
|
|
|
|
@IsEnum(Gender, { message: '性别必须是枚举值' })
|
|
@IsOptional()
|
|
@ApiProperty({ description: '性别', example: 'male' })
|
|
gender: Gender;
|
|
|
|
|
|
// 时间戳
|
|
@IsOptional()
|
|
@ApiProperty({ description: '出生年月日', example: 1713859200 })
|
|
birthDate: number;
|
|
|
|
}
|
|
|
|
export class UpdateUserResponseDto {
|
|
@ApiProperty({ description: '状态码', example: ResponseCode.SUCCESS })
|
|
code: ResponseCode;
|
|
@ApiProperty({ description: '消息', example: 'success' })
|
|
message: string;
|
|
@ApiProperty({
|
|
description: '用户', example: {
|
|
id: '123',
|
|
name: '张三',
|
|
avatar: 'base64',
|
|
}
|
|
})
|
|
data: User | null;
|
|
}
|
|
|