""" Printing domain signals. We use domain-level signals (instead of model post_save) to: - keep semantics clean (only fire on business "create" flow) - allow passing explicit actor (created_by / sender_label) - keep integration (e.g. WeCom notify) in handlers """ from django.dispatch import Signal # Fired when a PrintingOrder is created via business service. # Payload: # - instance: PrintingOrder # - created_by: Django User (may be None) printing_order_created = Signal() # Fired when a PrintingJob is explicitly marked as production completed # via business service. # Payload: # - instance: PrintingJob # - triggered_by: Django User (may be None) printing_job_production_completed = Signal()