package iace

// GetISO12100GapPatterns returns hazard patterns for sources/effects from
// ISO 12100 Annex B (Tabelle B.1) that were missing in the previous IACE
// library: Vakuum, elastische Elemente (Federn), raue/rutschige Oberflaeche,
// Hochdruckinjektion und Ersticken. All entries reference the relevant
// ISO 12100 section identifier (no norm text reproduced — only the section
// number, which is a fact, not a copyrighted work).
//
// HP range: HP1900-HP1909.
func GetISO12100GapPatterns() []HazardPattern {
	return []HazardPattern{
		{
			ID: "HP1900", NameDE: "Verletzung durch Vakuum (Vakuumgreifer / Saug-Anlage)", NameEN: "Vacuum injury (suction/vacuum equipment)",
			RequiredComponentTags: []string{"clamping_part"},
			RequiredEnergyTags:    []string{"pneumatic_pressure"},
			GeneratedHazardCats:   []string{"mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M061", "M002", "M141"},
			Priority: 90,
			ApplicableLifecycles: []string{"normal_operation", "setup", "maintenance"},
			ScenarioDE:  "Vakuum-Werkzeug (Greifer, Saugplatte) erzeugt im Versagensfall Sog auf menschliches Gewebe (Hand, Haut). Auch nach Abschalten kann Restvakuum gefaehrlich sein.",
			TriggerDE:   "Hand am Sauger waehrend Aktivierung, Anlauf des Vakuums ohne Sicht­kontakt, fehlende Vakuum-Schnellentlueftung.",
			HarmDE:      "Quetschende Saugverletzung an Haut/Hand, Haematom, im Extremfall Avulsion oberflaechlichen Gewebes.",
			AffectedDE:  "Bedienpersonal, Wartungspersonal",
			ZoneDE:      "Vakuumgreifer, Saugnaepfe, Sauganlagen-Auslass",
			ISO12100Section: "6.3.5.5",
			DefaultSeverity: 3, DefaultExposure: 2,
		},
		{
			ID: "HP1901", NameDE: "Freisetzung gespeicherter Federenergie (elastische Elemente)", NameEN: "Release of stored spring energy (elastic elements)",
			RequiredComponentTags: []string{"stored_energy"},
			GeneratedHazardCats:   []string{"mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M046", "M047", "M061", "M141"},
			Priority: 92,
			ApplicableLifecycles: []string{"maintenance", "fault_clearing", "changeover"},
			ScenarioDE:  "Vorgespannte Federn, Gasdruckfedern oder elastische Elemente entladen ihre Energie unerwartet bei Demontage oder Loesen einer Arretierung.",
			TriggerDE:   "Loesen einer Schraube/Arretierung ohne vorherige Entlastung; Materialermuedung der Feder; Verschleiss der Halterung.",
			HarmDE:      "Schlag oder Wegschleudern durch entladende Feder; Augen-, Prell- und Schnittverletzungen.",
			AffectedDE:  "Wartungspersonal, Einrichter",
			ZoneDE:      "Federmechanismen, Gasdruckfedern, vorgespannte Riemen",
			ISO12100Section: "6.2.10",
			DefaultSeverity: 3, DefaultExposure: 2,
		},
		{
			ID: "HP1902", NameDE: "Ausrutschen/Stolpern auf rauer oder rutschiger Oberflaeche", NameEN: "Slipping/tripping on rough or slippery surface",
			RequiredComponentTags: []string{"structural_part"},
			GeneratedHazardCats:   []string{"mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M141", "M538"},
			Priority: 80,
			ApplicableLifecycles: []string{"normal_operation", "setup", "cleaning", "maintenance"},
			ScenarioDE:  "Bediener rutscht aus oder stolpert auf einer Oberflaeche im Anlagenbereich (rutschig durch KSS, Oel oder Wasser; uneben durch Kabel, Schwellen, raue Bodenstrukturen).",
			TriggerDE:   "Fluessigkeits-Leckage, unregelmaessige Bodengeometrie, lose Verlegung von Kabeln/Schlaeuchen.",
			HarmDE:      "Prellungen, Knochenbrueche, Kopfverletzungen bei Sturz; Aufprall an Anlagenkanten.",
			AffectedDE:  "Bedienpersonal, Reinigungspersonal, Wartungspersonal",
			ZoneDE:      "Verkehrswege im Maschinenbereich, Anlagenboden, Wartungspodeste",
			ISO12100Section: "6.3.5.6",
			DefaultSeverity: 3, DefaultExposure: 4,
		},
		{
			ID: "HP1903", NameDE: "Hochdruckinjektion durch austretendes Medium", NameEN: "High-pressure injection injury",
			RequiredComponentTags: []string{"high_pressure"},
			GeneratedHazardCats:   []string{"pneumatic_hydraulic"},
			SuggestedMeasureIDs:   []string{"M483", "M484", "M141"},
			Priority: 96,
			ApplicableLifecycles: []string{"normal_operation", "maintenance", "fault_clearing"},
			ScenarioDE:  "Unter Druck stehendes Medium (Hydraulikoel, KSS, Druckluft, Wasserstrahl) tritt aus undichten Verschraubungen oder geplatzten Leitungen aus und dringt unmerklich in menschliches Gewebe ein.",
			TriggerDE:   "Pinhole-Leckage in Druckleitung; Annaehern der Hand zum Lokalisieren der Leckage; bestes Risiko bei Druecken > 7 bar / 100 psi.",
			HarmDE:      "Hochdruckinjektionsverletzung — initial wie kleiner Stich, fuehrt aber innerhalb von Stunden zu Gewebenekrose. Sofortige chirurgische Behandlung erforderlich.",
			AffectedDE:  "Wartungspersonal, Einrichter, Reinigungspersonal",
			ZoneDE:      "Druckleitungen, Verschraubungen, Schlauchverbindungen, Hochdruckduesen",
			ISO12100Section: "6.3.5.4",
			ClarificationQuestionsDE: []string{
				"Sind alle Hochdruckleitungen druckdicht nach EN ISO 4413/4414 ausgelegt und periodisch geprueft?",
				"Wird das Wartungspersonal explizit zur Hochdruckinjektionsgefahr unterwiesen (kein Lokalisieren der Leckage mit der Hand)?",
			},
			DefaultSeverity: 5, DefaultExposure: 2,
		},
		{
			ID: "HP1904", NameDE: "Ersticken durch Quetschung des Brustkorbs / Einschluss", NameEN: "Asphyxiation by chest compression or entrapment",
			RequiredComponentTags: []string{"moving_part", "guard"},
			GeneratedHazardCats:   []string{"mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M061", "M489", "M488", "M141"},
			Priority: 96,
			ApplicableLifecycles: []string{"normal_operation", "maintenance", "fault_clearing"},
			ScenarioDE:  "Person wird zwischen bewegtem und feststehendem Anlagenteil so eingeklemmt, dass der Brustkorb komprimiert wird (kompressive Asphyxie). Oder Person wird in einem geschlossenen Maschinen­bereich eingeschlossen und kann nicht mehr atmen.",
			TriggerDE:   "Roboterarm presst Person gegen Wand; Schutztuer schliesst auf Person; Person rutscht in engen Maschinenraum ohne Selbstrettungsmoeglichkeit.",
			HarmDE:      "Kompressive Asphyxie (Atemstillstand durch Brustkorbkompression), Todesfolge innerhalb weniger Minuten.",
			AffectedDE:  "Wartungspersonal, Reinigungspersonal",
			ZoneDE:      "Schwenkbereich Roboterarm, geschlossene Bearbeitungsraeume, schmale Wartungsoeffnungen",
			ISO12100Section: "6.3.5.2",
			DefaultSeverity: 5, DefaultExposure: 1,
		},
	}
}
