import { IsString, IsInt, IsNotEmpty, MaxLength, Min, Max } from 'class-validator';
import { ApiProperty } from '@nestjs/swagger';

export class UploadAttachmentDto {
  @ApiProperty({ example: 'AWS-Zertifikat.pdf' })
  @IsString()
  @IsNotEmpty({ message: 'Dateiname ist erforderlich' })
  @MaxLength(255)
  filename!: string;

  @ApiProperty({ example: 'application/pdf' })
  @IsString()
  @IsNotEmpty()
  @MaxLength(100)
  mimetype!: string;

  @ApiProperty({ example: 524288, description: 'Dateigröße in Bytes' })
  @IsInt()
  @Min(1, { message: 'Datei darf nicht leer sein' })
  @Max(10485760, { message: 'Datei darf maximal 10MB groß sein' })
  size!: number;

  @ApiProperty({ description: 'Base64-kodierte Dateidaten' })
  @IsString()
  @IsNotEmpty()
  @MaxLength(14000000, { message: 'Base64-Daten dürfen maximal ~10MB betragen' })
  data!: string;
}
