package iace

// GetWarewashingPatterns returns hazard patterns for commercial warewashing
// machines (gewerbliche Geschirrspuelmaschinen / Untertisch-, Hauben-, Korb-
// und Bandspuelmaschinen). These capture the machine-specific hazards a
// Fachmann immediately expects but that the generic library did not cover:
// hot-water/steam scalding on door opening, hot surfaces, hot ware, corrosive
// detergent/rinse-aid contact, door pinch and wet-floor slipping.
//
// Every pattern is gated by the capability tag "dom_warewashing" (emitted only
// by warewashing narrative keywords in keyword_dictionary.go), so none of these
// leak into unrelated machine classes.
//
// HP range: HP2200-HP2206. ISO 12100 Annex B section identifiers only (facts);
// product standard EN 60335-2-58 (commercial dishwashing machines).
func GetWarewashingPatterns() []HazardPattern {
	return []HazardPattern{
		{
			ID: "HP2200", NameDE: "Verbruehung durch Heisswasser/Dampf beim Oeffnen der Tuer", NameEN: "Scalding by hot water/steam when opening the door",
			RequiredComponentTags: []string{"dom_warewashing", "steam_emission"},
			GeneratedHazardCats:   []string{"thermal_hazard"},
			SuggestedMeasureIDs:   []string{"M2200", "M2201", "M2202", "M2208"},
			Priority:              94,
			ApplicableLifecycles: []string{"normal_operation", "cleaning"},
			ScenarioDE:  "Beim Oeffnen der Tuer waehrend oder unmittelbar nach dem Spuelgang tritt ein Schwall aus heissem Wasser und Wrasen (Dampf) aus der Spuelkammer aus und trifft Gesicht, Haende und Arme des Bedieners.",
			TriggerDE:   "Tuer wird vor Programmende oder bei noch vorhandenem Restdampf geoeffnet; Tuerverriegelung fehlt oder ist ueberbrueckt; Nachspueltemperatur ca. 85 Grad C.",
			HarmDE:      "Verbruehung 1.-2. Grades an Gesicht, Haenden und Unterarmen; Augenreizung durch heissen Dampf.",
			AffectedDE:  "Bedienpersonal (Spuelkraft)",
			ZoneDE:      "Tuer- und Beschickungsoeffnung der Spuelkammer",
			ISO12100Section: "6.2.4",
			DefaultSeverity: 3, DefaultExposure: 4,
		},
		{
			ID: "HP2201", NameDE: "Verbrennung an heissen Oberflaechen (Boiler/Tank/Spuelkammer)", NameEN: "Burn on hot surfaces (boiler/tank/wash chamber)",
			RequiredComponentTags: []string{"dom_warewashing", "high_temperature"},
			GeneratedHazardCats:   []string{"thermal_hazard"},
			SuggestedMeasureIDs:   []string{"M2202", "M055", "M2208"},
			Priority:              90,
			ApplicableLifecycles: []string{"cleaning", "maintenance"},
			ScenarioDE:  "Beruehrung heisser Oberflaechen von Boiler, Tankheizkoerper oder Spuelkammerwaenden bei Reinigung, Entkalkung oder Wartung fuehrt zu Kontaktverbrennungen.",
			TriggerDE:   "Reinigung/Entkalkung ohne Abkuehlzeit; Eingriff in die Spuelkammer bei betriebswarmem Geraet.",
			HarmDE:      "Kontaktverbrennung an Haenden und Unterarmen.",
			AffectedDE:  "Reinigungspersonal, Wartungspersonal",
			ZoneDE:      "Boiler, Tankheizkoerper, Spuelkammerwaende",
			ISO12100Section: "6.2.4",
			DefaultSeverity: 2, DefaultExposure: 3,
		},
		{
			ID: "HP2202", NameDE: "Verbrennung an heissem Spuelgut beim Entladen", NameEN: "Burn on hot ware when unloading",
			RequiredComponentTags: []string{"dom_warewashing", "hot_water"},
			GeneratedHazardCats:   []string{"thermal_hazard"},
			SuggestedMeasureIDs:   []string{"M2202", "M055", "M2208"},
			Priority:              86,
			ApplicableLifecycles: []string{"normal_operation"},
			ScenarioDE:  "Geschirr, Glaeser und Bestecke sind nach dem Spuelgang durch die Heisswasser-Nachspuelung sehr heiss; beim Entladen kommt es zu Verbrennungen.",
			TriggerDE:   "Sofortiges Entnehmen des Spuelguts nach Programmende ohne Abkuehl-/Trocknungszeit.",
			HarmDE:      "Verbrennung an Haenden/Fingern beim Greifen heisser Teile.",
			AffectedDE:  "Bedienpersonal (Spuelkraft)",
			ZoneDE:      "Spuelkammer, Entnahmebereich/Korb",
			ISO12100Section: "6.2.4",
			DefaultSeverity: 2, DefaultExposure: 3,
		},
		{
			ID: "HP2203", NameDE: "Chemische Veraetzung (Haut/Augen) durch Reiniger-/Klarspueler-Konzentrat", NameEN: "Chemical burn (skin/eyes) from detergent/rinse-aid concentrate",
			RequiredComponentTags: []string{"dom_warewashing", "corrosive_chemical"},
			GeneratedHazardCats:   []string{"chemical_risk"},
			SuggestedMeasureIDs:   []string{"M2203", "M2204", "M2208"},
			Priority:              92,
			ApplicableLifecycles: []string{"normal_operation", "maintenance"},
			ScenarioDE:  "Direkter Kontakt mit dem aetzenden (alkalischen) Reiniger- bzw. Klarspueler-Konzentrat beim Nachfuellen, Sauglanzenwechsel oder bei Leckage fuehrt zu Veraetzungen von Haut und Augen.",
			TriggerDE:   "Gebinde-/Sauglanzenwechsel ohne Schutzausruestung; Umfuellen von Konzentrat; undichte Dosierleitung.",
			HarmDE:      "Veraetzung von Haut und Augen (alkalische Verletzung), bleibende Augenschaeden moeglich.",
			AffectedDE:  "Bedienpersonal, Reinigungspersonal beim Chemikalien-Handling",
			ZoneDE:      "Dosiergeraet, Reiniger-/Klarspueler-Gebinde, Sauglanzen",
			ISO12100Section: "6.2.4",
			DefaultSeverity: 3, DefaultExposure: 3,
			ClarificationQuestionsDE: []string{
				"Liegt fuer alle eingesetzten Reiniger/Klarspueler/Entkalker ein aktuelles Sicherheitsdatenblatt (SDB) am Geraet vor?",
				"Ist ein geschlossenes Dosiersystem mit Sauglanzen vorhanden, sodass kein Umfuellen noetig ist?",
			},
		},
		{
			ID: "HP2204", NameDE: "Reizung/Veraetzung der Atemwege durch Reinigungs-Aerosole/Daempfe", NameEN: "Respiratory irritation from cleaning aerosols/vapours",
			RequiredComponentTags: []string{"dom_warewashing", "corrosive_chemical"},
			GeneratedHazardCats:   []string{"chemical_risk"},
			SuggestedMeasureIDs:   []string{"M2205", "M2203", "M2204"},
			Priority:              82,
			ApplicableLifecycles: []string{"normal_operation", "maintenance"},
			ScenarioDE:  "Aerosole und Daempfe der Reinigungschemie (insbesondere beim Oeffnen kurz nach dem Spuelgang oder bei der Entkalkung mit Saeure) gelangen in die Atemzone und reizen Atemwege und Schleimhaeute.",
			TriggerDE:   "Oeffnen bei laufender/heisser Chemie; Entkalkung mit Saeure; unzureichende Lueftung des Aufstellbereichs.",
			HarmDE:      "Reizung von Atemwegen, Augen und Schleimhaeuten; bei Saeure-/Laugen-Vermischung gefaehrliche Gase.",
			AffectedDE:  "Bedienpersonal, Reinigungspersonal",
			ZoneDE:      "Atemzone vor der Spuelkammer, Aufstellbereich",
			ISO12100Section: "6.2.4",
			DefaultSeverity: 2, DefaultExposure: 2,
			ClarificationQuestionsDE: []string{
				"Ist der Aufstellbereich ausreichend be-/entlueftet (Kuechenlueftung)?",
				"Wird in der BA vor dem Vermischen von Reiniger und Entkalker/Saeure gewarnt?",
			},
		},
		{
			ID: "HP2205", NameDE: "Quetschen der Finger an der Tuer/Haube", NameEN: "Finger crushing at the door/hood",
			RequiredComponentTags: []string{"dom_warewashing", "access_door"},
			GeneratedHazardCats:   []string{"mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M2206", "M003", "M2208"},
			Priority:              78,
			ApplicableLifecycles: []string{"normal_operation"},
			ScenarioDE:  "Beim Schliessen der Tuer bzw. Absenken der Haube werden Finger zwischen Tuer/Haube und Gehaeuse gequetscht.",
			TriggerDE:   "Greifen in den Schliessbereich beim Schliessen; hohe Schliesskraft der Haube; scharfe Kanten.",
			HarmDE:      "Quetschung und Prellung der Finger.",
			AffectedDE:  "Bedienpersonal (Spuelkraft)",
			ZoneDE:      "Tuer-/Haubenkante, Schliessbereich",
			ISO12100Section: "6.2.3",
			DefaultSeverity: 1, DefaultExposure: 3,
		},
		{
			ID: "HP2206", NameDE: "Ausrutschen auf nassem Boden (Wasseraustritt/Leckage)", NameEN: "Slipping on wet floor (water leakage)",
			RequiredComponentTags: []string{"dom_warewashing"},
			GeneratedHazardCats:   []string{"mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M2207", "M538", "M2208"},
			Priority:              76,
			ApplicableLifecycles: []string{"normal_operation", "cleaning", "maintenance"},
			ScenarioDE:  "Aus der Spuelmaschine austretendes Wasser (Beschickung, Tuer oeffnen, Leckage, Tankwasserwechsel) macht den Boden im Aufstellbereich rutschig; der Bediener rutscht aus.",
			TriggerDE:   "Wasseraustritt beim Oeffnen/Beschicken; undichter Ablauf; fehlender Bodenablauf.",
			HarmDE:      "Sturz mit Prellungen, Knochenbruechen oder Kopfaufprall.",
			AffectedDE:  "Bedienpersonal, Reinigungspersonal",
			ZoneDE:      "Aufstell- und Bedienbereich der Spuelmaschine",
			ISO12100Section: "6.3.5.6",
			DefaultSeverity: 2, DefaultExposure: 3,
		},
		{
			ID: "HP2207", NameDE: "Rueckfluss / Kontamination des Trinkwassers", NameEN: "Backflow / potable-water contamination",
			RequiredComponentTags: []string{"dom_warewashing", "backflow_risk"},
			GeneratedHazardCats:   []string{"material_environmental"},
			SuggestedMeasureIDs:   []string{"M2209"},
			Priority:              84,
			ApplicableLifecycles: []string{"normal_operation"},
			ScenarioDE:  "Verschmutztes Spuel- oder Chemiewasser wird ueber den Frischwasseranschluss in das Trinkwassernetz zurueckgesaugt und kontaminiert es (Ruecksaugen bei Unterdruck im Netz).",
			TriggerDE:   "Fehlender oder defekter Rueckflussverhinderer/Systemtrenner; Unterdruck im Trinkwassernetz; kein freier Auslauf.",
			HarmDE:      "Gesundheitsgefaehrdung Dritter durch kontaminiertes Trinkwasser (Chemie, Keime).",
			AffectedDE:  "Verbraucher am selben Trinkwassernetz, Betreiber",
			ZoneDE:      "Frischwasseranschluss, Wasserzulauf",
			ISO12100Section: "6.2.4",
			DefaultSeverity: 3, DefaultExposure: 2,
		},
		{
			ID: "HP2208", NameDE: "Schnittverletzung an scharfen Kanten/Sieben", NameEN: "Cut injury on sharp edges/screens",
			RequiredComponentTags: []string{"dom_warewashing", "sharp_edge"},
			GeneratedHazardCats:   []string{"mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M003"},
			Priority:              74,
			ApplicableLifecycles: []string{"cleaning", "maintenance"},
			ScenarioDE:  "Schneiden an scharfen Blechkanten, Sieben oder dem Ablaufpumpen-Laufrad beim Reinigen oder Eingreifen in die Spuelkammer.",
			TriggerDE:   "Entnehmen/Reinigen der Siebe; Eingreifen an scharfen Kanten ohne Schutzhandschuhe.",
			HarmDE:      "Schnittwunden an Haenden und Fingern.",
			AffectedDE:  "Reinigungspersonal, Bedienpersonal",
			ZoneDE:      "Zugaengliche Kanten, Siebe, Spuelkammer, Ablaufpumpe",
			ISO12100Section: "6.2.2.1",
			DefaultSeverity: 1, DefaultExposure: 3,
		},
		{
			ID: "HP2209", NameDE: "Unerwarteter Wiederanlauf bei Wartung/Reinigung", NameEN: "Unexpected restart during maintenance/cleaning",
			RequiredComponentTags: []string{"dom_warewashing", "programmable"},
			RequiredLifecycles:    []string{"maintenance", "cleaning", "fault_clearing"},
			GeneratedHazardCats:   []string{"safety_function_failure"},
			SuggestedMeasureIDs:   []string{"M042"},
			Priority:              80,
			ApplicableLifecycles: []string{"maintenance", "cleaning"},
			ScenarioDE:  "Waehrend Wartung oder Reinigung laeuft die Maschine durch fehlende Freischaltung (LOTO) oder automatischen Wiederanlauf unerwartet an (Pumpe, Spuelgang).",
			TriggerDE:   "Kein Freischalten/Sichern gegen Wiedereinschalten; automatischer Wiederanlauf nach Netzunterbrechung.",
			HarmDE:      "Verbruehung, Quetschen oder elektrischer Schlag durch unerwartet anlaufende Maschine.",
			AffectedDE:  "Wartungspersonal, Reinigungspersonal",
			ZoneDE:      "Gesamte Maschine, Pumpe, Antriebe",
			ISO12100Section: "6.2.11.4",
			DefaultSeverity: 3, DefaultExposure: 2,
		},
	}
}
