17 lines
928 B
Python
17 lines
928 B
Python
from __future__ import annotations
|
|
|
|
from .decision import OpportunityDecision
|
|
from .types import ACTION_CONFIRM_PAYMENT, ACTION_SEND_INVOICE, ACTION_WAIT_PRODUCTION
|
|
|
|
|
|
def decision_coherence_flags(decision: OpportunityDecision) -> list[str]:
|
|
"""Small safety net used by future audits/tests."""
|
|
flags: list[str] = []
|
|
if decision.next_action.code == ACTION_CONFIRM_PAYMENT and decision.financial_state == "payment_confirmed":
|
|
flags.append("payment_confirmed_but_action_is_confirm_payment")
|
|
if decision.next_action.code == ACTION_SEND_INVOICE and decision.financial_state == "payment_confirmed" and decision.physical_state == "in_production":
|
|
flags.append("invoice_send_action_while_production_should_be_wait")
|
|
if decision.next_action.code == ACTION_WAIT_PRODUCTION and decision.physical_state != "in_production":
|
|
flags.append("wait_production_without_production_state")
|
|
return flags
|