import {
  IsOptional,
  IsArray,
  IsString,
  IsEnum,
  IsNumber,
} from 'class-validator';
import {
  AuditMode,
  AuditStatus,
  AuditPhase,
} from '../entities/company-audit.entity';
import { Type } from 'class-transformer';

export class UpdateCompanyAuditDto {
  @IsNumber()
  @IsOptional()
  companyId?: number;

  @IsNumber()
  @IsOptional()
  auditTypeId?: number;

  @IsEnum(AuditMode)
  @IsOptional()
  auditMode?: AuditMode;

  @IsString()
  @IsOptional()
  validityPeriod?: string;

  @IsString()
  @IsOptional()
  remarks?: string;

  // Single standard
  @IsNumber()
  @IsOptional()
  standardId?: number;

  // Multiple standards
  @IsArray()
  @IsNumber({}, { each: true })
  @IsOptional()
  @Type(() => Number)
  standardIds?: number[];

  @IsEnum(AuditStatus)
  @IsOptional()
  status?: AuditStatus;

  @IsEnum(AuditPhase)
  @IsOptional()
  currentStage?: AuditPhase;
}
