export interface InspectionReport {
  id: string;
  code: string; // e.g., KD-SS-2024-530
  siteName: string; // e.g., 강남 아파트 단지
  item: string; // e.g., 실리카 스크린
  routeCount: number;
  totalRoutes: number;
  quarter: string; // e.g. 2025년 3분기
  year: number; // 필터용
  quarterNum: number; // 필터용 (1, 2, 3, 4)
}

export interface RouteItem {
  id: string;
  code: string; // e.g., KD-SS-240924-19
  date: string; // 2024-09-24
  client: string; // 거래처(발주처)
  site: string; // 강남 아파트 A동
  locationCount: number;
  subItems: UnitInspection[];
}

export interface UnitInspection {
  id: string;
  name: string; // e.g., KD-SS-240924-19-01
  location: string; // e.g., 101동 501호
  isCompleted: boolean; // 확인 완료 여부
}

export interface Document {
  id: string;
  type: 'import' | 'order' | 'log' | 'report' | 'confirmation' | 'shipping' | 'product' | 'quality';
  title: string; // e.g., 수입검사 성적서
  date?: string;
  count: number; // e.g., 3건의 서류
  items?: DocumentItem[];
  fileId?: number;     // files.id (품질관리서 파일)
  fileName?: string;   // 파일명
  fileSize?: number;   // 파일 크기 (bytes)
}

export interface DocumentItem {
  id: string;
  title: string;
  date: string;
  code?: string;
  // 중간검사 성적서 및 작업일지 서브타입 (report, log 타입에서 사용)
  subType?: 'screen' | 'bending' | 'slat' | 'jointbar';
  // 작업일지/중간검사에서 실제 WorkOrder 데이터 로딩용
  workOrderId?: number;
}

// ===== 기준/매뉴얼 심사 심사 타입 =====

// 점검표 하위 항목
export interface ChecklistSubItem {
  id: string;
  name: string;
  isCompleted: boolean;
}

// 점검표 카테고리
export interface ChecklistCategory {
  id: string;
  title: string;
  subItems: ChecklistSubItem[];
}

// 기준 문서
export interface StandardDocument {
  id: string;
  title: string;
  version: string;
  date: string;
  fileName?: string;
  fileUrl?: string;
}

// 1일차 점검 항목 상세 정보
export interface Day1CheckItem {
  id: string;
  categoryId: string;
  subItemId: string;
  title: string;
  description: string;
  buttonLabel: string;
  standardDocuments: StandardDocument[];
}

// 1일차 진행 상태
export interface Day1Progress {
  completed: number;
  total: number;
}

// 2일차 진행 상태 (기존 로트추적)
export interface Day2Progress {
  completed: number;
  total: number;
}

// 업로드된 템플릿 문서
export interface TemplateDocument {
  id: number;
  fieldKey: string;
  displayName: string;
  fileSize: number;
  mimeType: string;
  uploadedBy?: string | null;
  createdAt?: string | null;
}

// ===== 점검표 템플릿 관리 타입 =====

// 점검표 템플릿 (API 응답)
export interface ChecklistTemplate {
  id: number;
  name: string;
  type: string;
  categories: ChecklistCategory[];
  options: Record<string, unknown> | null;
  fileCounts: Record<string, number>;
  updatedAt: string | null;
  updatedBy: string | null;
}
