import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; export class CityDto { @ApiProperty() id: string; @ApiProperty() name: string; @ApiProperty() lat: string; @ApiProperty() lng: string; } export class DistrictDto { @ApiProperty() id: string; @ApiProperty() cityId: string; @ApiProperty() name: string; } export class TagDto { @ApiProperty() id: string; @ApiProperty() value: string; } export class MediaItemDto { @ApiProperty() id: string; @ApiProperty() profileId: string; @ApiProperty() path: string; @ApiProperty({ enum: ['photo', 'video', 'audio'] }) type: string; @ApiProperty() sortOrder: number; } export class ProfileResponseDto { @ApiProperty() id: string; @ApiProperty() userId: string; @ApiProperty() name: string; @ApiProperty({ example: '1995-06-15' }) birthDate: string; @ApiProperty({ enum: ['male', 'female'] }) gender: string; @ApiPropertyOptional({ nullable: true }) cityId: string | null; @ApiPropertyOptional({ nullable: true }) districtId: string | null; @ApiPropertyOptional({ nullable: true }) description: string | null; @ApiPropertyOptional({ nullable: true }) nation: string | null; @ApiPropertyOptional({ nullable: true }) height: number | null; @ApiPropertyOptional({ nullable: true }) weight: number | null; @ApiPropertyOptional({ nullable: true }) activeChatId: string | null; @ApiPropertyOptional({ type: CityDto, nullable: true }) city: CityDto | null; @ApiPropertyOptional({ type: DistrictDto, nullable: true }) district: DistrictDto | null; @ApiProperty({ type: [TagDto] }) tags: TagDto[]; @ApiProperty({ type: [MediaItemDto] }) media: MediaItemDto[]; }