import { IsString, IsNotEmpty, Matches, MinLength } from 'class-validator'; import { ApiProperty } from '@nestjs/swagger'; /** * 手机号+密码登录 DTO */ export class LoginWithPasswordDto { @ApiProperty({ description: '手机号', example: '13800138000', }) @IsString() @IsNotEmpty({ message: '手机号不能为空' }) @Matches(/^1[3-9]\d{9}$/, { message: '手机号格式不正确' }) phoneNumber!: string; @ApiProperty({ description: '登录密码', example: 'password123', }) @IsString() @IsNotEmpty({ message: '密码不能为空' }) @MinLength(6, { message: '密码至少6位' }) password!: string; @ApiProperty({ description: '设备ID', example: 'device-uuid-12345', }) @IsString() @IsNotEmpty({ message: '设备ID不能为空' }) deviceId!: string; }