import { ApiPropertyOptional } from '@nestjs/swagger';
import { Transform } from 'class-transformer';
import { IsIn, IsInt, IsOptional, Min } from 'class-validator';

export type ProgressReportCommentsExportLanguage = 'en' | 'km';

export class ExportProgressReportCommentsDto {
  @ApiPropertyOptional({
    description:
      'Export only this Ministry. Omit to export every Ministry in the report.',
    example: 10,
  })
  @IsOptional()
  @Transform(({ value }) =>
    value === undefined || value === null || value === ''
      ? undefined
      : Number(value),
  )
  @IsInt()
  @Min(1)
  ministryId?: number;

  @ApiPropertyOptional({
    description: 'Language of the column headers.',
    enum: ['en', 'km'],
    default: 'en',
  })
  @IsOptional()
  @IsIn(['en', 'km'])
  lang?: ProgressReportCommentsExportLanguage;
}
