Creado | ||
Revisado | ||
Corregido |
|
Step Function states-dev-refinanced-loan
Descripción
Esta máquina de estados gestiona el flujo de refinanciamiento de préstamos y el seguimiento de pagos. Comienza en estado Pending y avanza según las condiciones de aprobación, pago y vencimiento.
Flujo del refinanciamiento:
Inicio:
Un préstamo comienza en Pending.
Puede ser PreApproved si cumple condiciones previas o Rejected si no califica.
Aprobación y ejecución:
Desde PreApproved, el préstamo puede pasar a Approved o ser Rejected.
Un préstamo Approved puede avanzar a diferentes estados según el estado del pago:
PaymentReported: El pago ha sido registrado.
PaymentConfirmed: El pago ha sido validado con éxito.
PaymentUnconfirmed: Hay incertidumbre sobre el pago.
Overdue: El préstamo ha vencido.
Accelerated: Se ha acelerado el vencimiento.
Gestión de pagos:
PaymentReported puede avanzar a PaymentConfirmed o PaymentUnconfirmed.
PaymentUnconfirmed puede confirmarse, reportarse nuevamente o volverse Overdue.
Overdue permite reportar el pago nuevamente.
Finalización:
Los estados finales son Rejected y PaymentConfirmed.
Diagrama de estados
Fragmento de código
stateDiagram-v2
[*] --> Pending
Pending --> PreApproved : "loan-refinanced-pre-approve"
Pending --> Rejected : "loan-refinanced-reject"
PreApproved --> Approved : "loan-refinanced-approve"
PreApproved --> Rejected : "loan-refinanced-reject"
Approved --> PaymentReported : "payment-reported"
Approved --> Overdue : "loan-expires"
Approved --> PaymentConfirmed : "payment-confirmed"
Approved --> PaymentUnconfirmed : "payment-unconfirmed"
Approved --> Accelerated : "loan-refinanced-accelerated"
Accelerated --> Overdue : "auto next day"
PaymentReported --> PaymentConfirmed : "payment-confirmed"
PaymentReported --> PaymentUnconfirmed : "payment-unconfirmed"
PaymentUnconfirmed --> PaymentConfirmed : "payment-confirmed"
PaymentUnconfirmed --> Overdue : "loan-expires"
PaymentUnconfirmed --> PaymentReported : "payment-reported"
Overdue --> PaymentReported : "payment-reported"
Rejected --> [*]
PaymentConfirmed --> [*]
