Files
dating-app-backend/src/modules/chat/dto/close-chat.dto.ts
Oscar cd98f04987 feat(database-schema): добавляет ссылку на активный чат в схему профиля пользователя
 feat(likes.service): обновляет логику создания лайков с учетом активного чата

 feat(likes.module): импортирует модуль Gateways для работы с чатами

 feat(feed.service): добавляет условие для фильтрации профилей без активного чата

 feat(storage.service): устанавливает политику доступа к бакету S3 для получения объектов

 feat(likes-response.dto): добавляет поле чата в ответ на лайк

 feat(media.controller): добавляет описание для загрузки медиафайлов

 feat(chat.service): добавляет возможность закрытия чата с отчетом или сообщением

 feat(chat.controller): обновляет метод закрытия чата для обработки отчетов

 feat(app.module): добавляет модуль Dev для разработки в не продакшн среде
2026-06-09 15:39:38 +03:00

32 lines
951 B
TypeScript

import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
import { IsEnum, IsOptional, IsString, MaxLength } from 'class-validator';
export enum CloseChatType {
Cancel = 'cancel',
Report = 'report',
}
export class CloseChatDto {
@ApiProperty({ enum: CloseChatType, description: 'cancel — отменить матч, report — пожаловаться' })
@IsEnum(CloseChatType)
type: CloseChatType;
@ApiPropertyOptional({ description: 'Сообщение собеседнику при отмене матча' })
@IsOptional()
@IsString()
@MaxLength(500)
cancelMessage?: string;
@ApiPropertyOptional({ description: 'Причина жалобы (preset)' })
@IsOptional()
@IsString()
@MaxLength(200)
reportReason?: string;
@ApiPropertyOptional({ description: 'Дополнительное описание жалобы' })
@IsOptional()
@IsString()
@MaxLength(500)
reportDescription?: string;
}