Files

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