import { IsArray, IsEnum, IsOptional, IsString, MaxLength } from 'class-validator';
import type { FindingStatus } from '../entities/audit-report-clause.entity';

export class UpsertClauseDto {
  @IsOptional() @IsEnum(['C', 'NC', 'OFI', 'NA'])
  status?: FindingStatus | null;

  @IsOptional() @IsString() @MaxLength(20000)
  evidence_text?: string | null;

  /** File names / document references the auditor reviewed for this clause. */
  @IsOptional() @IsArray() @IsString({ each: true })
  docs_reviewed?: string[];
}

export class BulkClausesDto {
  @IsArray()
  /** Each item: { id: <audit_report_clauses.id>, status?, evidence_text?, docs_reviewed? } */
  items: (UpsertClauseDto & { id: number })[];
}
