// ─── 모니터링 설정 타입 정의 ─────────────────────────────────

export type MonitoringTheme = "dark" | "blue" | "light";
export type ProductionLayout = "grid" | "list" | "split";
export type RefreshInterval = 10 | 30 | 60 | 300;

// ─── 생산모니터링 ────────────────────────────────────────────

export interface ProductionDisplayFields {
  workInstructionNo: boolean; // 작업지시번호
  itemName: boolean; // 품목명
  spec: boolean; // 규격
  customerName: boolean; // 거래처
  worker: boolean; // 작업자/작업조
  dueDate: boolean; // 납기일
  equipment: boolean; // 사용설비
  processProgress: boolean; // 공정 진행현황
  progressBar: boolean; // 진행률 바
  priority: boolean; // 우선순위 표시
  salesOrderNo: boolean; // 수주번호
  quantityInfo: boolean; // 지시수량/완료수량
}

export interface ProductionMonitoringSettings {
  theme: MonitoringTheme;
  layout: ProductionLayout;
  refreshInterval: RefreshInterval;
  autoRefresh: boolean;
  soundEnabled: boolean;
  displayFields: ProductionDisplayFields;
}

// ─── 설비모니터링 ────────────────────────────────────────────

export interface EquipmentDisplayFields {
  equipmentName: boolean; // 설비명
  equipmentType: boolean; // 설비유형
  equipmentLocation: boolean; // 설비위치
  operationStatus: boolean; // 가동상태
  utilizationBar: boolean; // 가동률 바
  dailyOperationTime: boolean; // 금일 가동시간
  dailyProductionQty: boolean; // 금일 생산수량
  worker: boolean; // 작업자
  currentWorkInstruction: boolean; // 현재 작업지시
  sensorData: boolean; // 센서 데이터 (온도/압력/RPM)
  cumulativeOperationTime: boolean; // 누적 가동시간
  nextInspectionDate: boolean; // 다음 점검 예정일
}

export interface EquipmentMonitoringSettings {
  theme: MonitoringTheme;
  refreshInterval: RefreshInterval;
  autoRefresh: boolean;
  alarmEnabled: boolean;
  displayFields: EquipmentDisplayFields;
}

// ─── 품질점검현황 ────────────────────────────────────────────

export interface QualityInspectionTypes {
  incoming: boolean; // 입고검사
  process: boolean; // 공정검사
  shipping: boolean; // 출하검사
}

export interface QualityTableColumns {
  inspectionNo: boolean; // 검사번호
  inspectionType: boolean; // 검사유형
  itemName: boolean; // 품목명
  spec: boolean; // 규격
  inspectionQty: boolean; // 검사수량
  passFailQty: boolean; // 합격/불합격 수량
  defectRate: boolean; // 불량률
  resultBar: boolean; // 검사결과 바
  judgment: boolean; // 판정
  inspector: boolean; // 검사자
  inspectedAt: boolean; // 검사일시
  inspectionCriteria: boolean; // 검사기준
}

export interface QualityMonitoringSettings {
  theme: MonitoringTheme;
  refreshInterval: RefreshInterval;
  autoRefresh: boolean;
  alarmEnabled: boolean;
  inspectionTypes: QualityInspectionTypes;
  tableColumns: QualityTableColumns;
}

// ─── 전체 설정 ───────────────────────────────────────────────

export interface AllMonitoringSettings {
  production: ProductionMonitoringSettings;
  equipment: EquipmentMonitoringSettings;
  quality: QualityMonitoringSettings;
}

// ─── 타입 매핑 ───────────────────────────────────────────────

export type MonitoringSettingsMap = {
  production: ProductionMonitoringSettings;
  equipment: EquipmentMonitoringSettings;
  quality: QualityMonitoringSettings;
};
