"""business 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 / operator)
- keep integrations in handlers

NOTE:
Signals should be triggered via transaction.on_commit to avoid firing when a
transaction rolls back.
"""

from django.dispatch import Signal

# Fired when a PreSalesOrder (and its items) is created via service layer.
# Payload:
# - instance: PreSalesOrder
# - created_by: Django User (may be None)
# - operator: Employee (may be None)
# - items_count: int
pre_sales_order_created = Signal()
