package iace

// HazardPattern is defined in hazard_pattern_types.go

// GetBuiltinHazardPatterns returns ~44 built-in hazard patterns organized
// by domain (mechanical, electrical, thermal, hydraulic/pneumatic,
// noise/vibration, ergonomic, software/control, cyber/network, AI-specific).
func GetBuiltinHazardPatterns() []HazardPattern {
	return []HazardPattern{
		// ====================================================================
		// Mechanical Patterns (HP001-HP010)
		// ====================================================================
		{
			ID: "HP001", NameDE: "Quetschgefahr durch bewegte Teile", NameEN: "Crush risk from moving parts",
			RequiredComponentTags: []string{"moving_part"},
			RequiredEnergyTags:    []string{"kinetic"},
			GeneratedHazardCats:   []string{"mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M001", "M005", "M051", "M054"},
			SuggestedEvidenceIDs:  []string{"E01", "E08", "E20"},
			Priority: 95,
		},
		{
			ID: "HP002", NameDE: "Einzugsgefahr durch rotierende Teile", NameEN: "Entanglement risk from rotating parts",
			RequiredComponentTags: []string{"rotating_part"},
			RequiredEnergyTags:    []string{"rotational"},
			GeneratedHazardCats:   []string{"mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M002", "M051", "M053", "M121"},
			SuggestedEvidenceIDs:  []string{"E01", "E08"},
			Priority: 95,
		},
		{
			ID: "HP003", NameDE: "Schnittgefahr durch Schneidwerkzeuge", NameEN: "Cut risk from cutting tools",
			RequiredComponentTags: []string{"cutting_part"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M003", "M051", "M054", "M131"},
			SuggestedEvidenceIDs:  []string{"E01", "E08"},
			Priority: 90,
		},
		{
			ID: "HP004", NameDE: "Klemmgefahr an Quetsch-/Klemmstellen", NameEN: "Pinch risk at clamping points",
			RequiredComponentTags: []string{"pinch_point"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M001", "M004", "M051", "M121"},
			SuggestedEvidenceIDs:  []string{"E01", "E08"},
			Priority: 85,
		},
		{
			ID: "HP005", NameDE: "Quetschgefahr an Quetschstellen", NameEN: "Crush risk at crush points",
			RequiredComponentTags: []string{"crush_point"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M001", "M005", "M054"},
			SuggestedEvidenceIDs:  []string{"E01", "E08"},
			Priority: 90,
		},
		{
			ID: "HP006", NameDE: "Gefahr durch hohe Kraefte", NameEN: "Risk from high forces",
			RequiredComponentTags: []string{"high_force"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M001", "M005", "M051", "M106"},
			SuggestedEvidenceIDs:  []string{"E01", "E07", "E08"},
			Priority: 90,
		},
		{
			ID: "HP007", NameDE: "Gefahr durch hohe Geschwindigkeit", NameEN: "Risk from high speed",
			RequiredComponentTags: []string{"high_speed"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M002", "M051", "M053", "M054"},
			SuggestedEvidenceIDs:  []string{"E01", "E08"},
			Priority: 85,
		},
		{
			ID: "HP008", NameDE: "Absturzgefahr / Herabfallende Teile", NameEN: "Fall/drop risk",
			RequiredComponentTags: []string{"gravity_risk"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M009", "M121", "M131"},
			SuggestedEvidenceIDs:  []string{"E01", "E20"},
			Priority: 85,
		},
		{
			ID: "HP009", NameDE: "Gefahr durch Spannvorrichtungen", NameEN: "Clamping device risk",
			RequiredComponentTags: []string{"clamping_part"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M004", "M051", "M121"},
			SuggestedEvidenceIDs:  []string{"E01", "E08"},
			Priority: 80,
		},
		{
			ID: "HP010", NameDE: "Gefahr durch gespeicherte mechanische Energie", NameEN: "Stored mechanical energy risk",
			RequiredComponentTags: []string{"stored_energy"},
			RequiredEnergyTags:    []string{"mechanical"},
			GeneratedHazardCats:   []string{"mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M010", "M121", "M123"},
			SuggestedEvidenceIDs:  []string{"E01", "E20"},
			Priority: 80,
		},

		// ====================================================================
		// Electrical Patterns (HP011-HP015)
		// ====================================================================
		{
			ID: "HP011", NameDE: "Stromschlaggefahr durch Hochspannung", NameEN: "Electric shock risk from high voltage",
			RequiredComponentTags: []string{"high_voltage"},
			RequiredEnergyTags:    []string{"electrical_energy"},
			GeneratedHazardCats:   []string{"electrical_hazard"},
			SuggestedMeasureIDs:   []string{"M061", "M062", "M063", "M121"},
			SuggestedEvidenceIDs:  []string{"E01", "E04", "E10"},
			Priority: 95,
		},
		{
			ID: "HP012", NameDE: "Gefahr durch elektrische Komponenten", NameEN: "Risk from electrical components",
			RequiredComponentTags: []string{"electrical_part"},
			RequiredEnergyTags:    []string{"electrical_energy"},
			GeneratedHazardCats:   []string{"electrical_hazard"},
			SuggestedMeasureIDs:   []string{"M061", "M064", "M121"},
			SuggestedEvidenceIDs:  []string{"E01", "E04", "E10"},
			Priority: 85,
		},
		{
			ID: "HP013", NameDE: "Gefahr durch gespeicherte elektrische Energie", NameEN: "Stored electrical energy risk",
			RequiredComponentTags: []string{"stored_energy"},
			RequiredEnergyTags:    []string{"electrical_energy"},
			GeneratedHazardCats:   []string{"electrical_hazard"},
			SuggestedMeasureIDs:   []string{"M062", "M063", "M121", "M123"},
			SuggestedEvidenceIDs:  []string{"E01", "E10"},
			Priority: 85,
		},
		{
			ID: "HP014", NameDE: "Kurzschluss-/Lichtbogengefahr", NameEN: "Short circuit / arc flash risk",
			RequiredComponentTags: []string{"high_voltage", "electrical_part"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"electrical_hazard", "thermal_hazard"},
			SuggestedMeasureIDs:   []string{"M061", "M065", "M131"},
			SuggestedEvidenceIDs:  []string{"E01", "E04", "E10"},
			Priority: 90,
		},
		{
			ID: "HP015", NameDE: "EMV-Stoerungsgefahr", NameEN: "EMC interference risk",
			RequiredComponentTags: []string{"electrical_part"},
			RequiredEnergyTags:    []string{"electromagnetic"},
			GeneratedHazardCats:   []string{"emc_hazard"},
			SuggestedMeasureIDs:   []string{"M066", "M121"},
			SuggestedEvidenceIDs:  []string{"E01", "E10"},
			Priority: 70,
		},

		// ====================================================================
		// Thermal Patterns (HP016-HP018)
		// ====================================================================
		{
			ID: "HP016", NameDE: "Verbrennungsgefahr durch heisse Oberflaechen", NameEN: "Burn risk from hot surfaces",
			RequiredComponentTags: []string{"high_temperature"},
			RequiredEnergyTags:    []string{"thermal"},
			GeneratedHazardCats:   []string{"thermal_hazard"},
			SuggestedMeasureIDs:   []string{"M071", "M121", "M131"},
			SuggestedEvidenceIDs:  []string{"E01", "E20"},
			Priority: 85,
		},
		{
			ID: "HP017", NameDE: "Strahlungsgefahr (Laser/optisch)", NameEN: "Radiation risk (laser/optical)",
			RequiredComponentTags: []string{"radiation_risk"},
			RequiredEnergyTags:    []string{"radiation"},
			GeneratedHazardCats:   []string{"thermal_hazard"},
			SuggestedMeasureIDs:   []string{"M072", "M051", "M131"},
			SuggestedEvidenceIDs:  []string{"E01", "E20"},
			Priority: 85,
		},
		{
			ID: "HP018", NameDE: "Verbrennungsgefahr durch Aktuatoren", NameEN: "Burn risk from actuators",
			RequiredComponentTags: []string{"actuator_part", "high_temperature"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"thermal_hazard"},
			SuggestedMeasureIDs:   []string{"M071", "M121"},
			SuggestedEvidenceIDs:  []string{"E01"},
			Priority: 75,
		},

		// ====================================================================
		// Hydraulic / Pneumatic Patterns (HP019-HP022)
		// ====================================================================
		{
			ID: "HP019", NameDE: "Hydraulikdruck-Gefahr", NameEN: "Hydraulic pressure hazard",
			RequiredComponentTags: []string{"hydraulic_part"},
			RequiredEnergyTags:    []string{"hydraulic_pressure"},
			GeneratedHazardCats:   []string{"pneumatic_hydraulic"},
			SuggestedMeasureIDs:   []string{"M081", "M082", "M121", "M123"},
			SuggestedEvidenceIDs:  []string{"E01", "E05", "E11"},
			Priority: 90,
		},
		{
			ID: "HP020", NameDE: "Pneumatikdruck-Gefahr", NameEN: "Pneumatic pressure hazard",
			RequiredComponentTags: []string{"pneumatic_part"},
			RequiredEnergyTags:    []string{"pneumatic_pressure"},
			GeneratedHazardCats:   []string{"pneumatic_hydraulic"},
			SuggestedMeasureIDs:   []string{"M083", "M084", "M121"},
			SuggestedEvidenceIDs:  []string{"E01", "E06", "E11"},
			Priority: 85,
		},
		{
			ID: "HP021", NameDE: "Gefahr durch gespeicherten Hydraulikdruck", NameEN: "Stored hydraulic pressure risk",
			RequiredComponentTags: []string{"hydraulic_part", "stored_energy"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"pneumatic_hydraulic"},
			SuggestedMeasureIDs:   []string{"M081", "M082", "M123"},
			SuggestedEvidenceIDs:  []string{"E01", "E05", "E11"},
			Priority: 90,
		},
		{
			ID: "HP022", NameDE: "Gefahr durch Druckluftspeicher", NameEN: "Stored pneumatic pressure risk",
			RequiredComponentTags: []string{"pneumatic_part", "stored_energy"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"pneumatic_hydraulic"},
			SuggestedMeasureIDs:   []string{"M083", "M084", "M123"},
			SuggestedEvidenceIDs:  []string{"E01", "E06", "E11"},
			Priority: 85,
		},

		// ====================================================================
		// Noise / Vibration Patterns (HP023-HP025)
		// ====================================================================
		{
			ID: "HP023", NameDE: "Laermgefahr", NameEN: "Noise hazard",
			RequiredComponentTags: []string{"noise_source"},
			RequiredEnergyTags:    []string{"acoustic"},
			GeneratedHazardCats:   []string{"noise_vibration"},
			SuggestedMeasureIDs:   []string{"M091", "M131"},
			SuggestedEvidenceIDs:  []string{"E01", "E12"},
			Priority: 70,
		},
		{
			ID: "HP024", NameDE: "Vibrationsgefahr", NameEN: "Vibration hazard",
			RequiredComponentTags: []string{"vibration_source"},
			RequiredEnergyTags:    []string{"vibration"},
			GeneratedHazardCats:   []string{"noise_vibration"},
			SuggestedMeasureIDs:   []string{"M092", "M131"},
			SuggestedEvidenceIDs:  []string{"E01", "E13"},
			Priority: 65,
		},
		{
			ID: "HP025", NameDE: "Laerm durch rotierende Hochgeschwindigkeitsteile", NameEN: "Noise from high-speed rotating parts",
			RequiredComponentTags: []string{"rotating_part", "high_speed"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"noise_vibration"},
			SuggestedMeasureIDs:   []string{"M091", "M092", "M131"},
			SuggestedEvidenceIDs:  []string{"E01", "E12", "E13"},
			Priority: 70,
		},

		// ====================================================================
		// Ergonomic Patterns (HP026-HP028)
		// ====================================================================
		{
			ID: "HP026", NameDE: "Ergonomische Belastung an Bedienstationen", NameEN: "Ergonomic risk at operator stations",
			RequiredComponentTags: []string{"user_interface"},
			RequiredEnergyTags:    []string{"ergonomic"},
			GeneratedHazardCats:   []string{"ergonomic"},
			SuggestedMeasureIDs:   []string{"M126", "M121"},
			SuggestedEvidenceIDs:  []string{"E01", "E24"},
			Priority: 50,
		},
		{
			ID: "HP027", NameDE: "Ergonomische Belastung bei Wartung in der Hoehe", NameEN: "Ergonomic risk for work at height",
			RequiredComponentTags: []string{"structural_part", "gravity_risk"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"ergonomic", "mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M121", "M131"},
			SuggestedEvidenceIDs:  []string{"E01", "E20"},
			Priority: 60,
		},
		{
			ID: "HP028", NameDE: "Fehlbedienungsgefahr", NameEN: "Mode confusion / misoperation risk",
			RequiredComponentTags: []string{"user_interface", "programmable"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"hmi_error", "mode_confusion"},
			SuggestedMeasureIDs:   []string{"M126", "M127", "M121"},
			SuggestedEvidenceIDs:  []string{"E01", "E14", "E24"},
			Priority: 70,
		},

		// ====================================================================
		// Software / Control Patterns (HP029-HP034)
		// ====================================================================
		{
			ID: "HP029", NameDE: "Software-Fehler in Steuerung", NameEN: "Software fault in controller",
			RequiredComponentTags: []string{"has_software", "programmable"},
			RequiredEnergyTags:    []string{},
			ExcludedComponentTags: []string{"has_ai"},
			GeneratedHazardCats:   []string{"software_fault"},
			SuggestedMeasureIDs:   []string{"M101", "M102", "M103"},
			SuggestedEvidenceIDs:  []string{"E01", "E14"},
			Priority: 85,
		},
		{
			ID: "HP030", NameDE: "Sicherheitsfunktionsversagen", NameEN: "Safety function failure",
			RequiredComponentTags: []string{"safety_device"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"safety_function_failure"},
			SuggestedMeasureIDs:   []string{"M104", "M105", "M051"},
			SuggestedEvidenceIDs:  []string{"E01", "E07", "E08", "E09"},
			Priority: 95,
		},
		{
			ID: "HP031", NameDE: "Konfigurationsfehler", NameEN: "Configuration error",
			RequiredComponentTags: []string{"programmable"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"configuration_error"},
			SuggestedMeasureIDs:   []string{"M145", "M146", "M121"},
			SuggestedEvidenceIDs:  []string{"E01", "E14"},
			Priority: 70,
		},
		{
			ID: "HP032", NameDE: "Fehlende Protokollierung / Audit", NameEN: "Missing logging / audit",
			RequiredComponentTags: []string{"has_software"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"logging_audit_failure"},
			SuggestedMeasureIDs:   []string{"M142", "M149"},
			SuggestedEvidenceIDs:  []string{"E01"},
			Priority: 50,
		},
		{
			ID: "HP033", NameDE: "Update-Fehler / Rollback-Problem", NameEN: "Update failure / rollback problem",
			RequiredComponentTags: []string{"has_software", "programmable"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"update_failure"},
			SuggestedMeasureIDs:   []string{"M138", "M141", "M146"},
			SuggestedEvidenceIDs:  []string{"E01", "E14"},
			Priority: 65,
		},
		{
			ID: "HP034", NameDE: "Verriegelungs-Umgehungsgefahr", NameEN: "Interlock bypass risk",
			RequiredComponentTags: []string{"interlocked"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"safety_function_failure"},
			SuggestedMeasureIDs:   []string{"M051", "M104", "M107"},
			SuggestedEvidenceIDs:  []string{"E01", "E08"},
			Priority: 85,
		},

		// ====================================================================
		// Cyber / Network Patterns (HP035-HP039)
		// ====================================================================
		{
			ID: "HP035", NameDE: "Unbefugter Netzwerkzugriff", NameEN: "Unauthorized network access",
			RequiredComponentTags: []string{"networked"},
			RequiredEnergyTags:    []string{"cyber"},
			GeneratedHazardCats:   []string{"unauthorized_access"},
			SuggestedMeasureIDs:   []string{"M111", "M112", "M113", "M140"},
			SuggestedEvidenceIDs:  []string{"E01", "E16", "E17"},
			Priority: 90,
		},
		{
			ID: "HP036", NameDE: "Kommunikationsausfall", NameEN: "Communication failure",
			RequiredComponentTags: []string{"networked", "it_component"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"communication_failure"},
			SuggestedMeasureIDs:   []string{"M114", "M115"},
			SuggestedEvidenceIDs:  []string{"E01", "E17"},
			Priority: 80,
		},
		{
			ID: "HP037", NameDE: "Firmware-Manipulation", NameEN: "Firmware manipulation",
			RequiredComponentTags: []string{"has_software", "networked"},
			RequiredEnergyTags:    []string{"cyber"},
			GeneratedHazardCats:   []string{"firmware_corruption"},
			SuggestedMeasureIDs:   []string{"M116", "M138", "M146"},
			SuggestedEvidenceIDs:  []string{"E01", "E16", "E18"},
			Priority: 85,
		},
		{
			ID: "HP038", NameDE: "Drahtlos-Angriff (WiFi/Bluetooth)", NameEN: "Wireless attack (WiFi/Bluetooth)",
			RequiredComponentTags: []string{"wireless"},
			RequiredEnergyTags:    []string{"cyber"},
			GeneratedHazardCats:   []string{"unauthorized_access"},
			SuggestedMeasureIDs:   []string{"M111", "M113", "M140"},
			SuggestedEvidenceIDs:  []string{"E01", "E16"},
			Priority: 80,
		},
		{
			ID: "HP039", NameDE: "Supply-Chain-Angriff auf IT-Komponenten", NameEN: "Supply chain attack on IT components",
			RequiredComponentTags: []string{"it_component", "has_software"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"unauthorized_access", "firmware_corruption"},
			SuggestedMeasureIDs:   []string{"M116", "M118"},
			SuggestedEvidenceIDs:  []string{"E01", "E18", "E19"},
			Priority: 75,
		},

		// ====================================================================
		// AI-Specific Patterns (HP040-HP044)
		// ====================================================================
		{
			ID: "HP040", NameDE: "KI-Fehlklassifikation", NameEN: "AI misclassification",
			RequiredComponentTags: []string{"has_ai"},
			RequiredEnergyTags:    []string{"ai_model"},
			GeneratedHazardCats:   []string{"false_classification"},
			SuggestedMeasureIDs:   []string{"M101", "M102"},
			SuggestedEvidenceIDs:  []string{"E01", "E15"},
			Priority: 90,
		},
		{
			ID: "HP041", NameDE: "Model Drift / Concept Drift", NameEN: "Model drift / concept drift",
			RequiredComponentTags: []string{"has_ai"},
			RequiredEnergyTags:    []string{"ai_model"},
			GeneratedHazardCats:   []string{"model_drift"},
			SuggestedMeasureIDs:   []string{"M103"},
			SuggestedEvidenceIDs:  []string{"E01", "E15"},
			Priority: 85,
		},
		{
			ID: "HP042", NameDE: "Data Poisoning / Adversarial Attack", NameEN: "Data poisoning / adversarial attack",
			RequiredComponentTags: []string{"has_ai"},
			RequiredEnergyTags:    []string{"cyber", "ai_model"},
			GeneratedHazardCats:   []string{"data_poisoning"},
			SuggestedMeasureIDs:   []string{"M101", "M116"},
			SuggestedEvidenceIDs:  []string{"E01", "E15", "E16"},
			Priority: 85,
		},
		{
			ID: "HP043", NameDE: "Unbeabsichtigte KI-Diskriminierung", NameEN: "Unintended AI bias",
			RequiredComponentTags: []string{"has_ai"},
			RequiredEnergyTags:    []string{"ai_model"},
			GeneratedHazardCats:   []string{"unintended_bias"},
			SuggestedMeasureIDs:   []string{"M101"},
			SuggestedEvidenceIDs:  []string{"E01", "E15"},
			Priority: 75,
		},
		{
			ID: "HP044", NameDE: "KI-Sensormanipulation", NameEN: "AI sensor spoofing",
			RequiredComponentTags: []string{"has_ai", "sensor_part"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"sensor_spoofing"},
			SuggestedMeasureIDs:   []string{"M101", "M102"},
			SuggestedEvidenceIDs:  []string{"E01", "E15"},
			Priority: 80,
		},

		// ================================================================
	}
}
