first commit
This commit is contained in:
53
apps/api-gateway/src/dto/addresses.dto.ts
Normal file
53
apps/api-gateway/src/dto/addresses.dto.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
import { IsIn, IsNumber, IsOptional, IsString, IsUUID, MinLength } from 'class-validator';
|
||||
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
||||
|
||||
export class UpsertAddressDto {
|
||||
@ApiPropertyOptional({ description: 'ID адреса для обновления' })
|
||||
@IsOptional()
|
||||
@IsUUID('4', { message: 'ID адреса должен быть UUID' })
|
||||
addressId?: string;
|
||||
|
||||
@ApiProperty({ description: 'Тип адреса', enum: ['HOME', 'WORK', 'OTHER'] })
|
||||
@IsIn(['HOME', 'WORK', 'OTHER'], { message: 'Некорректный тип адреса' })
|
||||
label!: 'HOME' | 'WORK' | 'OTHER';
|
||||
|
||||
@ApiProperty({ description: 'Город' })
|
||||
@IsString({ message: 'Город должен быть строкой' })
|
||||
@MinLength(1, { message: 'Укажите город' })
|
||||
city!: string;
|
||||
|
||||
@ApiProperty({ description: 'Улица' })
|
||||
@IsString({ message: 'Улица должна быть строкой' })
|
||||
@MinLength(1, { message: 'Укажите улицу' })
|
||||
street!: string;
|
||||
|
||||
@ApiProperty({ description: 'Дом' })
|
||||
@IsString({ message: 'Дом должен быть строкой' })
|
||||
@MinLength(1, { message: 'Укажите дом' })
|
||||
house!: string;
|
||||
|
||||
@ApiPropertyOptional({ description: 'Квартира или офис' })
|
||||
@IsOptional()
|
||||
@IsString({ message: 'Квартира должна быть строкой' })
|
||||
apartment?: string;
|
||||
|
||||
@ApiPropertyOptional({ description: 'Комментарий' })
|
||||
@IsOptional()
|
||||
@IsString({ message: 'Комментарий должен быть строкой' })
|
||||
comment?: string;
|
||||
|
||||
@ApiPropertyOptional({ description: 'Широта' })
|
||||
@IsOptional()
|
||||
@IsNumber({}, { message: 'Широта должна быть числом' })
|
||||
latitude?: number;
|
||||
|
||||
@ApiPropertyOptional({ description: 'Долгота' })
|
||||
@IsOptional()
|
||||
@IsNumber({}, { message: 'Долгота должна быть числом' })
|
||||
longitude?: number;
|
||||
|
||||
@ApiPropertyOptional({ description: 'Полный адрес одной строкой' })
|
||||
@IsOptional()
|
||||
@IsString({ message: 'Полный адрес должен быть строкой' })
|
||||
fullAddress?: string;
|
||||
}
|
||||
Reference in New Issue
Block a user