"""Domain signals emitted by the SME-Hub investment subprocess (SP5).

Every milestone in the investment / funding lifecycle emits a signal that
M&EL receivers translate into tracking-record updates (FRSME-INV017,
FRSME-MEI006). Match-refresh receivers in this module also subscribe to
SP2/SP3/SP4 signals so investor matchmaking stays current.
"""
import django.dispatch

# Investor directory ------------------------------------------------------
smehub_investor_registered = django.dispatch.Signal()
"""kwargs: investor (Investor), self_registered (bool), by_user (CustomUser)"""

smehub_investor_verified = django.dispatch.Signal()
"""kwargs: investor (Investor), by_user (CustomUser)"""

smehub_investor_rejected = django.dispatch.Signal()
"""kwargs: investor (Investor), by_user (CustomUser), reason (str)"""

smehub_investor_deactivated = django.dispatch.Signal()
"""kwargs: investor (Investor), by_user (CustomUser)"""

# Funding calls -----------------------------------------------------------
smehub_funding_call_published = django.dispatch.Signal()
"""kwargs: funding_call (FundingCall), by_user (CustomUser)"""

smehub_funding_call_closed = django.dispatch.Signal()
"""kwargs: funding_call (FundingCall), by_user (CustomUser)"""

# Funding applications ----------------------------------------------------
smehub_funding_application_submitted = django.dispatch.Signal()
"""kwargs: application (FundingApplication)"""

smehub_funding_application_decided = django.dispatch.Signal()
"""kwargs: application (FundingApplication), action (str), by_user (CustomUser)"""

# Funding outcomes (M&EL) -------------------------------------------------
smehub_funding_secured = django.dispatch.Signal()
"""kwargs: entrepreneur, business, amount, source (str — 'application'|'manual')"""

# Investor matches --------------------------------------------------------
smehub_investor_match_refreshed = django.dispatch.Signal()
"""kwargs: entrepreneur (EntrepreneurProfile), trigger (str), count (int)"""

# Investment readiness ----------------------------------------------------
smehub_investment_readiness_evaluated = django.dispatch.Signal()
"""kwargs: entrepreneur, is_ready (bool)"""

# Investor connection requests --------------------------------------------
smehub_investor_request_submitted = django.dispatch.Signal()
"""kwargs: request (InvestorConnectionRequest)"""

smehub_investor_request_accepted = django.dispatch.Signal()
"""kwargs: request (InvestorConnectionRequest), deal_room (DealRoom), by_user"""

smehub_investor_request_declined = django.dispatch.Signal()
"""kwargs: request (InvestorConnectionRequest), by_user, reason (str)"""

# Performance snapshot ----------------------------------------------------
smehub_performance_snapshot_refreshed = django.dispatch.Signal()
"""kwargs: snapshot (SMEPerformanceSnapshot), trigger (str)"""

# Dashboard sharing -------------------------------------------------------
smehub_dashboard_shared = django.dispatch.Signal()
"""kwargs: log (DashboardAccessLog)"""

# Manual funding ----------------------------------------------------------
smehub_manual_funding_recorded = django.dispatch.Signal()
"""kwargs: record (ManualFundingRecord), by_user (CustomUser)"""
