This commit is contained in:
lendry
2026-06-25 07:23:34 +03:00
parent f2366a69a0
commit 71b270fcb3
19 changed files with 1410 additions and 112 deletions

View File

@@ -76,6 +76,41 @@ export class SetPasswordDto {
password!: string;
}
export class SendPasswordVerificationOtpDto {
@ApiProperty({ description: 'Канал OTP', enum: ['sms', 'email'] })
@IsString({ message: 'Канал должен быть строкой' })
channel!: 'sms' | 'email';
}
export class PasswordVerificationDto {
@ApiPropertyOptional({ description: 'Текущий пароль' })
@IsOptional()
@IsString({ message: 'Текущий пароль должен быть строкой' })
currentPassword?: string;
@ApiPropertyOptional({ description: 'OTP-код из SMS или почты' })
@IsOptional()
@IsString({ message: 'OTP-код должен быть строкой' })
otpCode?: string;
@ApiPropertyOptional({ description: 'Канал OTP', enum: ['sms', 'email'] })
@IsOptional()
@IsString({ message: 'Канал OTP должен быть строкой' })
otpChannel?: 'sms' | 'email';
@ApiPropertyOptional({ description: 'Код из приложения-аутентификатора' })
@IsOptional()
@IsString({ message: 'Код аутентификатора должен быть строкой' })
totpCode?: string;
}
export class ChangePasswordDto extends PasswordVerificationDto {
@ApiProperty({ description: 'Новый пароль', minLength: 8 })
@IsString({ message: 'Пароль должен быть строкой' })
@MinLength(8, { message: 'Пароль должен содержать минимум 8 символов' })
newPassword!: string;
}
export class UserIdParamDto {
@ApiProperty({ description: 'ID пользователя' })
@IsString({ message: 'ID пользователя должен быть строкой' })