package iace

// Demonstration patterns showing how the SecondaryHarms field carries
// downstream-consequence information through the IACE engine.
//
// Two real-world scenarios are encoded:
//
//   HP2000  — Glass-shard injection in carbonated-beverage bottling
//             (the "Cola splitter" example from the IACE strategy
//             discussion). Primary harm is the operator hit by flying
//             shards; the secondary chain is product-liability towards
//             supermarket end-customers.
//
//   HP2001  — Cross-contamination in pharma fill-finish lines.
//             Primary harm is operator exposure; secondary chain is
//             patient harm + recall under §74a AMG.
//
// These two patterns are sufficient as a contract test for the
// SecondaryHarms field. Library coverage of more scenarios is a
// follow-up task once the persistence layer (DB migration) lands.

func GetSecondaryHarmDemoPatterns() []HazardPattern {
	return []HazardPattern{
		{
			ID:                    "HP2000",
			NameDE:                "Glasbruch in Karbonisierungs-Abfueller (Hochdruck)",
			NameEN:                "Glass shatter in carbonated bottling line",
			RequiredComponentTags: []string{"crush_point", "high_pressure"},
			RequiredEnergyTags:    []string{"pneumatic_pressure"},
			GeneratedHazardCats:   []string{"mechanical_hazard"},
			Priority:              90,
			MachineTypes:          []string{"bottling", "food_processing", "packaging"},
			ScenarioDE: "Glasflasche platzt unter CO2-Druck waehrend der Abfuellung. " +
				"Splitter erreichen den Bediener und koennen ferner in nachfolgende " +
				"Flaschen eingetragen werden.",
			TriggerDE:        "Materialfehler, ueberhoehter Innendruck, Foerderstoss",
			HarmDE:           "Schnittverletzung Auge/Hand des Bedieners",
			AffectedDE:       "Abfueller, Mitarbeiter Linie",
			ZoneDE:           "Karussell, Schutzkapsel, Foerderband-Auslauf",
			DefaultSeverity:  4,
			DefaultExposure:  3,
			ISO12100Section:  "6.4.5.5 Schleudernde Teile",
			SecondaryHarms: []SecondaryHarm{
				{
					Type: SecondaryHarmConsumerSafety,
					Description: "Restsplitter in der Folgeflasche erreichen ueber den Handel " +
						"den Endkunden. Verletzungsrisiko Mund/Speiseroehre.",
					LegalBasis: "ProdHaftG §1, VO (EU) Nr. 178/2002 Art. 14",
					SuggestedMitigations: []string{
						"Spueltunnel nach Abfuellung",
						"Inline-Kamera mit Glasbrucherkennung",
						"Sperrzone fuer 2 Folgeflaschen bei Bruchereignis",
						"Glasbruchsensor an Karussell mit Linie-Stopp",
					},
					Owner: "product_safety",
				},
				{
					Type: SecondaryHarmFoodSafety,
					Description: "Rueckruf- und Meldepflicht bei Inverkehrbringen unsicherer " +
						"Lebensmittel; Rueckverfolgbarkeit Chargen-genau erforderlich.",
					LegalBasis: "VO (EU) 178/2002 Art. 18, 19; LFGB §40",
					SuggestedMitigations: []string{
						"Chargen-Tracking bis Endhaendler",
						"Schnellwarnsystem RASFF aktiviert halten",
						"Rueckruf-SOP getestet",
					},
					Owner: "qm",
				},
				{
					Type: SecondaryHarmReputation,
					Description: "Pressemitteilung und Aktienkurs-Reaktion bei Verbraucher-" +
						"verletzungen / behoerdlichem Rueckruf.",
					LegalBasis: "ISO 31000 Unternehmensrisiko",
					SuggestedMitigations: []string{
						"Krisenkommunikations-Plan",
						"PR-Bereitschaft 24/7",
					},
					Owner: "enterprise_risk",
				},
			},
		},
		{
			ID:                    "HP2001",
			NameDE:                "Kreuzkontamination Pharma Fill-Finish",
			NameEN:                "Cross-contamination pharma fill-finish",
			RequiredComponentTags: []string{"chemical_risk"},
			RequiredEnergyTags:    []string{"pneumatic_pressure"},
			GeneratedHazardCats:   []string{"chemical_hazard"},
			Priority:              92,
			MachineTypes:          []string{"pharmaceutical", "food_processing"},
			ScenarioDE: "Wirkstoff-Rueckstand aus Vorcharge im Linienzwischenraum kontaminiert " +
				"die Folgecharge.",
			TriggerDE:        "Mangelhaftes CIP, Spuelvolumen unterhalb Validierung",
			HarmDE:           "Bedienerexposition bei Probennahme",
			AffectedDE:       "Anlagenbediener, Probenehmer",
			ZoneDE:           "Abfuelllinie zwischen Vorlage und Filler",
			DefaultSeverity:  4,
			DefaultExposure:  2,
			ISO12100Section:  "6.4.4 Chemische und biologische Gefaehrdungen",
			SecondaryHarms: []SecondaryHarm{
				{
					Type: SecondaryHarmConsumerSafety,
					Description: "Patient erhaelt Arzneimittel mit unzulaessiger Beimischung; " +
						"Wirkungsbeeintraechtigung oder unerwuenschte Wirkung moeglich.",
					LegalBasis: "AMG §5 (Verkehrsfaehigkeit), §74a (Stufenplan)",
					SuggestedMitigations: []string{
						"CIP-Validierung mit TOC- und Conductivity-Limits",
						"Dedizierte Linien fuer Hochpotente Wirkstoffe",
						"Stufenplan-Meldung bei Verdacht",
					},
					Owner: "qm",
				},
				{
					Type: SecondaryHarmProductLiability,
					Description: "Haftung des Inverkehrbringers nach AMG §84 (Gefaehrdungshaftung " +
						"bei Arzneimittelschaeden, verschuldensunabhaengig).",
					LegalBasis: "AMG §84",
					SuggestedMitigations: []string{
						"Deckung Produkthaftpflicht ueber gesetzliches Minimum",
						"Chargen-Rueckhaltemuster 12 Monate ueber MHD hinaus",
					},
					Owner: "legal",
				},
			},
		},
	}
}
