11from sentry .deletions .base import BaseRelation , ModelDeletionTask , ModelRelation
22from sentry .incidents .models .alert_rule import AlertRule
3+ from sentry .workflow_engine .models .alertrule_detector import AlertRuleDetector
4+
5+
6+ class AlertRuleDetectorDeletionTask (ModelDeletionTask [AlertRuleDetector ]):
7+ manager_name = "objects_for_deletion"
38
49
510class AlertRuleDeletionTask (ModelDeletionTask [AlertRule ]):
@@ -10,7 +15,15 @@ class AlertRuleDeletionTask(ModelDeletionTask[AlertRule]):
1015 def get_child_relations (self , instance : AlertRule ) -> list [BaseRelation ]:
1116 from sentry .incidents .models .alert_rule import AlertRuleTrigger
1217 from sentry .incidents .models .incident import Incident
13- from sentry .workflow_engine .models import AlertRuleDetector , AlertRuleWorkflow
18+ from sentry .workflow_engine .models import AlertRuleWorkflow
1419
15- model_list = (AlertRuleTrigger , Incident , AlertRuleDetector , AlertRuleWorkflow )
16- return [ModelRelation (m , {"alert_rule_id" : instance .id }) for m in model_list ]
20+ return [
21+ ModelRelation (AlertRuleTrigger , {"alert_rule_id" : instance .id }),
22+ ModelRelation (Incident , {"alert_rule_id" : instance .id }),
23+ ModelRelation (
24+ AlertRuleDetector ,
25+ {"alert_rule_id" : instance .id },
26+ task = AlertRuleDetectorDeletionTask ,
27+ ),
28+ ModelRelation (AlertRuleWorkflow , {"alert_rule_id" : instance .id }),
29+ ]
0 commit comments