import type { ProcessFlowDiagram } from '../fssc/processFlow.js';

export type HazardType = 'biological' | 'chemical' | 'physical' | 'allergen';

export interface HazardRow {
  processStep: string;
  hazardType: HazardType;
  hazard: string;
  severity: 'low' | 'medium' | 'high';
  likelihood: 'low' | 'medium' | 'high';
  controlType?: 'ccp' | 'oprp' | 'prp';
  controlMeasure?: string;
}

export interface CcpSuggestion {
  id: string;
  processStep: string;
  hazard: string;
  controlType: 'ccp' | 'oprp';
  criticalLimit?: string;
  monitoringMethod: string;
  frequency: string;
  correctiveAction: string;
  monitoringTemplateName?: string;
  minLimit?: number;
  maxLimit?: number;
  unit?: string;
}

export interface HaccpDraftPayload {
  sectionDrafts: Record<string, string>;
  hazardRows: HazardRow[];
  processFlow?: ProcessFlowDiagram;
}

export interface CcpSuggestPayload {
  suggestions: CcpSuggestion[];
  controlMeasuresText: string;
}

export const HAZARD_TYPE_LABELS: Record<HazardType, string> = {
  biological: 'Biological',
  chemical: 'Chemical',
  physical: 'Physical',
  allergen: 'Allergen',
};
