package iace

// GetCNCHazardPatternsExt returns the second batch of CNC/metalworking
// hazard patterns: machine-specific mechanical, ergonomic/noise,
// software/control, and maintenance. IDs: HP1420-HP1434.
func GetCNCHazardPatternsExt() []HazardPattern {
	cncTypes := []string{"cnc", "lathe", "milling", "grinding", "drilling", "machining_centre"}
	return []HazardPattern{
		// ── Machine-specific mechanical (HP1420-HP1424) ─────────────
		{
			ID: "HP1420", NameDE: "Quetschung an Maschinentuer (CNC)", NameEN: "Crushing at machine door (CNC)",
			RequiredComponentTags: []string{"moving_part"},
			GeneratedHazardCats:   []string{"mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M067", "M069"},
			SuggestedEvidenceIDs:  []string{"E01", "E08"},
			Priority: 78, MachineTypes: cncTypes,
			ScenarioDE: "Bediener wird an kraftbetaetigter CNC-Maschinentuer eingequetscht",
			TriggerDE:  "Tuer schliesst automatisch waehrend Bediener im Tuerbereich steht",
			HarmDE:     "Quetschung an Oberschenkel, Rumpf oder Arm",
			AffectedDE: "Bedienpersonal", ZoneDE: "Maschinentuer-Schliesskante",
			DefaultSeverity: 3, DefaultExposure: 4,
		},
		{
			ID: "HP1421", NameDE: "Erfassen durch rotierende Welle (Drehmaschine)", NameEN: "Entanglement by rotating spindle (lathe)",
			RequiredComponentTags: []string{"rotating_part"},
			GeneratedHazardCats:   []string{"mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M061", "M240", "M067"},
			SuggestedEvidenceIDs:  []string{"E01", "E08"},
			Priority: 92, MachineTypes: []string{"lathe"},
			OperationalStates: []string{"automatic_operation", "manual_operation"},
			HumanRoles:        []string{"operator"},
			ScenarioDE: "Kleidung, Haare oder Handschuhe werden von rotierender Hauptspindel erfasst und aufgewickelt",
			TriggerDE:  "Fehlende Einhausung der Spindel, Arbeiten mit Handschuhen an Drehmaschine",
			HarmDE:     "Skalpierung, Abriss von Koerperteilen, Strangulation",
			AffectedDE: "Bedienpersonal", ZoneDE: "Spindelbereich, Drehmitte",
			DefaultSeverity: 5, DefaultExposure: 3,
		},
		{
			ID: "HP1422", NameDE: "Einzugsgefahr an Vorschubwalzen", NameEN: "Drawing-in hazard at feed rollers",
			RequiredComponentTags: []string{"rotating_part"},
			GeneratedHazardCats:   []string{"mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M239", "M061"},
			SuggestedEvidenceIDs:  []string{"E01", "E08"},
			Priority: 85, MachineTypes: cncTypes,
			ScenarioDE: "Finger oder Hand werden zwischen Vorschubwalzen und Werkstueck eingezogen",
			TriggerDE:  "Manuelles Zufuehren von Material ohne Schutzeinrichtung am Walzenspalt",
			HarmDE:     "Quetschung, Amputation von Fingern",
			AffectedDE: "Bedienpersonal", ZoneDE: "Materialzufuehrung, Walzenspalt",
			DefaultSeverity: 4, DefaultExposure: 3,
		},
		{
			ID: "HP1423", NameDE: "Absturz schwerer Maschinenteile", NameEN: "Heavy machine part falling during maintenance",
			RequiredComponentTags: []string{"moving_part"},
			GeneratedHazardCats:   []string{"mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M245", "M210"},
			SuggestedEvidenceIDs:  []string{"E01"},
			Priority: 80, MachineTypes: cncTypes,
			OperationalStates: []string{"maintenance"},
			HumanRoles:        []string{"maintenance_tech"},
			ScenarioDE: "Schwere Maschinenteile (Spindelstock, Revolverkopf) fallen unkontrolliert herab",
			TriggerDE:  "Fehlende Abstuetzmittel oder Hebezeuge bei Wartung schwerer Baugruppen",
			HarmDE:     "Quetschung von Hand oder Fuss, Knochenbrueche",
			AffectedDE: "Wartungspersonal", ZoneDE: "Maschineninneres, Wartungszugang",
			DefaultSeverity: 4, DefaultExposure: 2,
		},
		{
			ID: "HP1424", NameDE: "Hydraulik-Leckage an Spannvorrichtung", NameEN: "Hydraulic leak at clamping device",
			RequiredComponentTags: []string{"workpiece_holder", "hydraulic_part"},
			GeneratedHazardCats:   []string{"pneumatic_hydraulic", "mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M099", "M411"},
			SuggestedEvidenceIDs:  []string{"E01", "E38"},
			Priority: 78, MachineTypes: cncTypes,
			ScenarioDE: "Hydraulikleckage an Spannvorrichtung fuehrt zu Spannkraftverlust waehrend Bearbeitung",
			TriggerDE:  "Verschleiss der Hydraulikdichtungen, Schlauchbruch am Spannzylinder",
			HarmDE:     "Werkstueck wird herausgeschleudert, Hydraulikoel-Hautinjektion",
			AffectedDE: "Bedienpersonal", ZoneDE: "Spannvorrichtung, Hydraulikanschluss",
			DefaultSeverity: 4, DefaultExposure: 2,
		},

		// ── Ergonomic / Noise (HP1425-HP1429) ───────────────────────
		{
			ID: "HP1425", NameDE: "Laermexposition an Werkzeugmaschinen", NameEN: "Noise exposure at machine tools",
			RequiredComponentTags: []string{"cutting_tool"},
			RequiredEnergyTags:    []string{"kinetic_rotational"},
			GeneratedHazardCats:   []string{"noise_source"},
			SuggestedMeasureIDs:   []string{"M347", "M349", "M059"},
			SuggestedEvidenceIDs:  []string{"E01", "E12", "E29"},
			Priority: 65, MachineTypes: cncTypes,
			ScenarioDE: "Laerm durch Zerspanungsprozess, Spindel und Kuehlmittelpumpe uebersteigt Grenzwerte",
			TriggerDE:  "Betrieb mehrerer Maschinen in Halle ohne schalldaemmende Einhausung",
			HarmDE:     "Laermschwerhoerigkeit bei Dauerexposition",
			AffectedDE: "Bedienpersonal", ZoneDE: "Maschinenhalle",
			DefaultSeverity: 2, DefaultExposure: 5,
		},
		{
			ID: "HP1426", NameDE: "Hand-Arm-Vibration bei Handschleifarbeit", NameEN: "Hand-arm vibration from manual grinding",
			RequiredComponentTags: []string{"grinding_wheel"},
			GeneratedHazardCats:   []string{"vibration_source"},
			SuggestedMeasureIDs:   []string{"M351", "M038"},
			SuggestedEvidenceIDs:  []string{"E01", "E42"},
			Priority: 60, MachineTypes: []string{"grinding"},
			HumanRoles: []string{"operator"},
			ScenarioDE: "Bediener ist bei laengerem Handschleifen Hand-Arm-Vibrationen ausgesetzt",
			TriggerDE:  "Dauerhafte Nutzung von Winkelschleifern oder Handschleifmaschinen",
			HarmDE:     "Weissfinger-Krankheit, Durchblutungsstoerungen, Nervenschaeden",
			AffectedDE: "Bedienpersonal", ZoneDE: "Handwerkzeugbereich",
			DefaultSeverity: 2, DefaultExposure: 4,
		},
		{
			ID: "HP1427", NameDE: "Ergonomische Belastung bei Werkstueckhandling", NameEN: "Ergonomic strain from workpiece handling",
			RequiredComponentTags: []string{"workpiece_holder"},
			GeneratedHazardCats:   []string{"ergonomic"},
			SuggestedMeasureIDs:   []string{"M354", "M031"},
			SuggestedEvidenceIDs:  []string{"E01", "E30"},
			Priority: 55, MachineTypes: cncTypes,
			HumanRoles: []string{"operator"},
			ScenarioDE: "Bediener hebt und positioniert schwere Werkstuecke manuell in Spannvorrichtung",
			TriggerDE:  "Wiederholtes manuelles Handling von Werkstuecken ueber 10 kg ohne Hebevorrichtung",
			HarmDE:     "Rueckenschmerzen, Bandscheibenschaeden, Muskel-Skelett-Erkrankungen",
			AffectedDE: "Bedienpersonal", ZoneDE: "Belade-/Entladebereich",
			DefaultSeverity: 2, DefaultExposure: 5,
		},
		{
			ID: "HP1428", NameDE: "Stolpergefahr durch Kabel und Schlaeuche", NameEN: "Trip hazard from cables and hoses",
			RequiredComponentTags: []string{"cutting_tool"},
			GeneratedHazardCats:   []string{"mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M009", "M144"},
			SuggestedEvidenceIDs:  []string{"E01"},
			Priority: 50, MachineTypes: cncTypes,
			ScenarioDE: "KSS-Schlaeuche, Druckluftleitungen oder Elektrokabel liegen im Verkehrsweg",
			TriggerDE:  "Provisorische Verlegung von Versorgungsleitungen ohne Kabelbruecke",
			HarmDE:     "Sturz mit Prellungen oder Knochenbruechen",
			AffectedDE: "Bedienpersonal, Passanten", ZoneDE: "Maschinenumgebung, Verkehrswege",
			DefaultSeverity: 2, DefaultExposure: 4,
		},
		{
			ID: "HP1429", NameDE: "Thermische Belastung durch heisse Spaene und Werkstuecke", NameEN: "Thermal stress from hot chips and workpieces",
			RequiredComponentTags: []string{"cutting_tool"},
			GeneratedHazardCats:   []string{"high_temperature"},
			SuggestedMeasureIDs:   []string{"M095", "M171"},
			SuggestedEvidenceIDs:  []string{"E01"},
			Priority: 60, MachineTypes: cncTypes,
			HumanRoles: []string{"operator"},
			ScenarioDE: "Bediener beruehrt heisse Spaene oder Werkstuecke nach der Bearbeitung",
			TriggerDE:  "Entnahme des Werkstuecks ohne Wartezeit oder Schutzhandschuhe",
			HarmDE:     "Verbrennung an Haenden",
			AffectedDE: "Bedienpersonal", ZoneDE: "Bearbeitungsraum, Entnahmebereich",
			DefaultSeverity: 2, DefaultExposure: 4,
		},

		// ── Software/Control CNC-specific (HP1430-HP1431) ───────────
		{
			ID: "HP1430", NameDE: "Sicherheitsfunktion Schutztuer-Verriegelung versagt", NameEN: "Safety door interlock failure",
			RequiredComponentTags: []string{"programmable", "safety_device"},
			GeneratedHazardCats:   []string{"safety_function_failure"},
			SuggestedMeasureIDs:   []string{"M067", "M069", "M112"},
			SuggestedEvidenceIDs:  []string{"E01", "E08", "E07"},
			Priority: 92, MachineTypes: cncTypes,
			ScenarioDE: "Schutztuersicherheitsschalter versagt und Maschine laeuft bei geoeffneter Tuer weiter",
			TriggerDE:  "Defekter Sicherheitsschalter, Manipulation des Schalters, Kabelbruch",
			HarmDE:     "Zugang zum laufenden Bearbeitungsprozess mit Quetsch-/Schnittgefahr",
			AffectedDE: "Bedienpersonal", ZoneDE: "Maschinentuer, Bearbeitungsraum",
			DefaultSeverity: 4, DefaultExposure: 3,
		},
		{
			ID: "HP1431", NameDE: "Spindelueberdrehzahl bei Steuerungsfehler", NameEN: "Spindle overspeed due to control error",
			RequiredComponentTags: []string{"rotating_part", "programmable"},
			GeneratedHazardCats:   []string{"mechanical_hazard", "safety_function_failure"},
			SuggestedMeasureIDs:   []string{"M115", "M413", "M043"},
			SuggestedEvidenceIDs:  []string{"E01", "E07"},
			Priority: 88, MachineTypes: cncTypes,
			ScenarioDE: "Spindel dreht ueber zulaessige Drehzahl hinaus und erzeugt unkontrollierte Fliehkraefte",
			TriggerDE:  "Steuerungsfehler, falscher Drehzahl-Override, Ausfall des Drehzahlueberwachung",
			HarmDE:     "Werkzeug- oder Werkstueckbruch mit Splitterflug, Lagerschaden",
			AffectedDE: "Bedienpersonal", ZoneDE: "Spindelbereich",
			DefaultSeverity: 4, DefaultExposure: 2,
		},

		// ── Maintenance CNC-specific (HP1432-HP1434) ────────────────
		{
			ID: "HP1432", NameDE: "KSS-Systemreinigung ohne Schutzausruestung", NameEN: "MWF system cleaning without PPE",
			RequiredComponentTags: []string{"cutting_tool"},
			GeneratedHazardCats:   []string{"chemical_risk"},
			SuggestedMeasureIDs:   []string{"M407", "M408", "M171"},
			SuggestedEvidenceIDs:  []string{"E01", "E51"},
			Priority: 70, MachineTypes: cncTypes,
			OperationalStates: []string{"maintenance"},
			HumanRoles:        []string{"maintenance_tech"},
			ScenarioDE: "Wartungspersonal reinigt KSS-System ohne Schutzhandschuhe und Schutzbrille",
			TriggerDE:  "Fehlende Unterweisung oder unzureichende PSA-Bereitstellung bei KSS-Wartung",
			HarmDE:     "Hautreizung durch Systemreiniger, Augenveraetzung",
			AffectedDE: "Wartungspersonal", ZoneDE: "KSS-Tank, Leitungssystem",
			DefaultSeverity: 2, DefaultExposure: 3,
		},
		{
			ID: "HP1433", NameDE: "Unkontrollierte Achsbewegung nach Probelauf", NameEN: "Uncontrolled axis movement during test run after maintenance",
			RequiredComponentTags: []string{"moving_part", "programmable"},
			GeneratedHazardCats:   []string{"mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M212", "M050", "M042"},
			SuggestedEvidenceIDs:  []string{"E01"},
			Priority: 85, MachineTypes: cncTypes,
			OperationalStates: []string{"manual_operation", "teach_mode"},
			HumanRoles:        []string{"maintenance_tech", "programmer"},
			StateTransitions:  []string{"maintenance→manual_operation"},
			ScenarioDE: "oder Reparatur verfahren Achsen unkontrolliert beim ersten Testlauf",
			TriggerDE:  "Falsche Parameter nach Wartung, fehlende Referenzfahrt, Endschalter nicht justiert",
			HarmDE:     "Quetschung, Kollision Werkzeug/Werkstueck",
			AffectedDE: "Wartungspersonal, Einrichter", ZoneDE: "Verfahrbereich, Bearbeitungsraum",
			DefaultSeverity: 4, DefaultExposure: 2,
		},
		{
			ID: "HP1434", NameDE: "Restkuehlmittel tropft auf elektrische Komponenten", NameEN: "Residual coolant dripping on electrical components",
			RequiredComponentTags: []string{"cutting_tool"},
			RequiredEnergyTags:    []string{"electrical_energy"},
			GeneratedHazardCats:   []string{"electrical_hazard"},
			SuggestedMeasureIDs:   []string{"M087", "M274"},
			SuggestedEvidenceIDs:  []string{"E01", "E10"},
			Priority: 70, MachineTypes: cncTypes,
			OperationalStates: []string{"maintenance"},
			HumanRoles:        []string{"maintenance_tech"},
			ScenarioDE: "Restkuehlmittel tropft auf Schaltschrank oder Steuerungskomponenten",
			TriggerDE:  "Fehlende Auffangwanne oder Abdeckung bei Wartung an KSS-fuehrenden Bauteilen",
			HarmDE:     "Kurzschluss, Stromschlag bei Beruehrung nasser Teile",
			AffectedDE: "Wartungspersonal", ZoneDE: "Schaltschrank, Steuerungsbereich",
			DefaultSeverity: 3, DefaultExposure: 2,
		},
	}
}
