Assist_Design/apps/bff/src/auth/dto/signup.dto.ts
2025-08-20 18:02:50 +09:00

39 lines
1.1 KiB
TypeScript

import { IsEmail, IsString, MinLength, IsOptional, Matches } from 'class-validator';
import { ApiProperty } from '@nestjs/swagger';
export class SignupDto {
@ApiProperty({ example: 'user@example.com' })
@IsEmail()
email: string;
@ApiProperty({
example: 'SecurePassword123!',
description: 'Password must be at least 8 characters and contain uppercase, lowercase, number, and special character'
})
@IsString()
@MinLength(8, { message: 'Password must be at least 8 characters long' })
@Matches(
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]/,
{ message: 'Password must contain at least one uppercase letter, one lowercase letter, one number, and one special character' }
)
password: string;
@ApiProperty({ example: 'John' })
@IsString()
firstName: string;
@ApiProperty({ example: 'Doe' })
@IsString()
lastName: string;
@ApiProperty({ example: 'Acme Corp', required: false })
@IsOptional()
@IsString()
company?: string;
@ApiProperty({ example: '+1-555-123-4567', required: false })
@IsOptional()
@IsString()
phone?: string;
}