import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
import { IsIn, IsNotEmpty, IsOptional, IsString } from 'class-validator';

export class MarkNotificationReadDto {}

export class RegisterPushTokenDto {
  @ApiProperty({ description: 'FCM-токен устройства' })
  @IsString({ message: 'FCM-токен должен быть строкой' })
  @IsNotEmpty({ message: 'Укажите FCM-токен' })
  token!: string;

  @ApiPropertyOptional({ description: 'Платформа устройства', enum: ['WEB', 'ANDROID', 'IOS'], default: 'WEB' })
  @IsOptional()
  @IsIn(['WEB', 'ANDROID', 'IOS'], { message: 'Платформа должна быть WEB, ANDROID или IOS' })
  platform?: 'WEB' | 'ANDROID' | 'IOS';

  @ApiPropertyOptional({ description: 'Метка устройства для отладки' })
  @IsOptional()
  @IsString({ message: 'Метка устройства должна быть строкой' })
  deviceLabel?: string;
}

export class UnregisterPushTokenDto {
  @ApiProperty({ description: 'FCM-токен устройства' })
  @IsString({ message: 'FCM-токен должен быть строкой' })
  @IsNotEmpty({ message: 'Укажите FCM-токен' })
  token!: string;
}
