import { IsNotEmpty, IsEnum, IsArray } from 'class-validator';
import { ApiProperty } from '@nestjs/swagger';
import { NotifTitleEnum } from '../interfaces/notification.interface';
import { NotifChannelEnum } from '../interfaces/notification.interface';

export class CreatePreferenceDto {
  @ApiProperty({
    description: 'Notification title/type (e.g., order.created, review.created)',
    enum: NotifTitleEnum,
    example: NotifTitleEnum.ORDER_CREATED,
  })
  @IsEnum(NotifTitleEnum)
  @IsNotEmpty()
  title!: NotifTitleEnum;

  @ApiProperty({
    description: 'Notification type (SMS, PUSH, BOTH, or NONE)',
    enum: NotifChannelEnum,
    example: NotifChannelEnum.SMS,
  })
  @IsArray()
  @IsEnum(NotifChannelEnum, { each: true })
  channels!: NotifChannelEnum[];
}
