import {
  IsEmail,
  IsNumber,
  IsOptional,
  IsString,
  MaxLength,
  ValidateNested,
} from 'class-validator';

export class CreateTicketRequestLicenseeDataDto {
  @IsEmail()
  @IsOptional()
  email: string;
}

export class CreateTicketRequestDto {
  @IsNumber()
  readonly licenseeId: number;

  @IsString()
  readonly licensee: string;

  @IsOptional()
  @ValidateNested()
  readonly licenseeData: CreateTicketRequestLicenseeDataDto;

  @IsString()
  @MaxLength(200)
  readonly name: string;

  @IsString()
  @MaxLength(50000)
  readonly description: string;

  @IsOptional()
  @IsNumber({}, { each: true })
  readonly attachmentIds: number[];
}
