first commit
This commit is contained in:
60
apps/api-gateway/src/dto/admin.dto.ts
Normal file
60
apps/api-gateway/src/dto/admin.dto.ts
Normal file
@@ -0,0 +1,60 @@
|
||||
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
||||
import { IsBoolean, IsEmail, IsEnum, IsOptional, IsString, Matches, MinLength } from 'class-validator';
|
||||
|
||||
export enum GatewayUserStatus {
|
||||
ACTIVE = 'ACTIVE',
|
||||
SUSPENDED = 'SUSPENDED',
|
||||
DELETED = 'DELETED'
|
||||
}
|
||||
|
||||
export class ListUsersQueryDto {
|
||||
@ApiPropertyOptional({ description: 'Поиск по почте, телефону, имени или логину' })
|
||||
@IsOptional()
|
||||
@IsString({ message: 'Поисковая строка должна быть текстом' })
|
||||
search?: string;
|
||||
}
|
||||
|
||||
export class UpdateUserDto {
|
||||
@ApiPropertyOptional({ description: 'Отображаемое имя' })
|
||||
@IsOptional()
|
||||
@IsString({ message: 'Имя должно быть строкой' })
|
||||
displayName?: string;
|
||||
|
||||
@ApiPropertyOptional({ description: 'Основная почта' })
|
||||
@IsOptional()
|
||||
@IsEmail({}, { message: 'Укажите корректную почту' })
|
||||
email?: string;
|
||||
|
||||
@ApiPropertyOptional({ description: 'Основной телефон' })
|
||||
@IsOptional()
|
||||
@Matches(/^\+?[1-9]\d{7,14}$/, { message: 'Укажите корректный телефон' })
|
||||
phone?: string;
|
||||
|
||||
@ApiPropertyOptional({ description: 'Резервная почта' })
|
||||
@IsOptional()
|
||||
@IsEmail({}, { message: 'Укажите корректную резервную почту' })
|
||||
backupEmail?: string;
|
||||
|
||||
@ApiPropertyOptional({ description: 'Резервный телефон' })
|
||||
@IsOptional()
|
||||
@Matches(/^\+?[1-9]\d{7,14}$/, { message: 'Укажите корректный резервный телефон' })
|
||||
backupPhone?: string;
|
||||
|
||||
@ApiPropertyOptional({ description: 'Статус пользователя', enum: GatewayUserStatus })
|
||||
@IsOptional()
|
||||
@IsEnum(GatewayUserStatus, { message: 'Укажите корректный статус пользователя' })
|
||||
status?: GatewayUserStatus;
|
||||
}
|
||||
|
||||
export class ResetPasswordDto {
|
||||
@ApiProperty({ description: 'Новый пароль пользователя', minLength: 8 })
|
||||
@IsString({ message: 'Пароль должен быть строкой' })
|
||||
@MinLength(8, { message: 'Пароль должен содержать минимум 8 символов' })
|
||||
newPassword!: string;
|
||||
}
|
||||
|
||||
export class SetSuperAdminDto {
|
||||
@ApiProperty({ description: 'Выдать или снять права супер-администратора' })
|
||||
@IsBoolean({ message: 'isSuperAdmin должно быть boolean' })
|
||||
isSuperAdmin!: boolean;
|
||||
}
|
||||
Reference in New Issue
Block a user