""" 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()