import {
  IsEnum,
  IsNotEmpty,
  IsOptional,
  IsArray,
  IsInt,
  IsDateString,
  IsString,
} from 'class-validator';
import { InquiryType, CertBody, AuditStage } from '../entities/inquiry.entity';

export class CreateInquiryDto {
  @IsEnum(InquiryType)
  inquiry_type!: InquiryType;

  @IsOptional()
  @IsInt()
  company_id?: number;

  @IsOptional()
  @IsString()
  company_name?: string; // ✅ NEW — batch form sends client name
  
  // 🆕 Scope of work — synced onto companies.scope_of_work on create.
  @IsOptional()
  @IsString()
  scope_of_work?: string;
  
  @IsNotEmpty()
  audit_date!: string;

  @IsNotEmpty()
  auditor_name!: string;

  @IsOptional()
  previous_cert_no?: string;

  @IsOptional()
  notes?: string;

  // ✅ NEW — Certification body (QRS / TQS)
  @IsOptional()
  @IsEnum(CertBody)
  cert_body?: CertBody;

  // ✅ NEW — Audit stage (Stage 1 / Stage 2 / Surveillance / Recertification)
  @IsOptional()
  @IsEnum(AuditStage)
  audit_stage?: AuditStage;

  @IsOptional()
  @IsInt()
  submitted_by_id?: number;

  @IsOptional()
  @IsInt()
  assigned_to_id?: number;

  @IsOptional()
  @IsArray()
  @IsInt({ each: true })
  standards?: number[];

  @IsOptional()
  @IsDateString()
  surveillance_audit_due?: string;

  @IsOptional()
  @IsDateString()
  recertification_due?: string;
}