Creado | ||
Revisado | ||
Actualizado |
Step Function states-dev-base-loan
Descripción
Esta máquina de estados gestiona el ciclo de vida de un préstamo desde su estado Pending hasta su liquidación o refinanciamiento. Incluye opciones para aprobación, pagos, vencimientos y extensiones.
Flujo del préstamo:
Inicio:
Un préstamo comienza en Pending y puede pasar a Approved si cumple las condiciones necesarias.
Ejecución y seguimiento:
Un préstamo Approved puede moverse a distintos estados según su actividad:
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.
Refinanced: Se ha aprobado un refinanciamiento.
PreApprovedExtension: Se considera una extensión antes del vencimiento.
Accelerated: Se ha acelerado el vencimiento.
Extensión del préstamo:
Si está en PreApprovedExtension, el préstamo puede ser Extended si la extensión es aprobada o Overdue si se rechaza.
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 o preaprobar un refinanciamiento.
Refinanciamiento:
Desde Overdue, puede pasar a PreApprovedRefinance.
Si el refinanciamiento es aprobado, el préstamo se mueve a Refinanced. Si se rechaza, permanece en Overdue.
Finalización:
Un préstamo finaliza en PaymentConfirmed, Extended o Refinanced.
Diagrama de estados
Fragmento de código
stateDiagram-v2
[*] --> Pending
Pending --> Approved : "pending"
Approved --> PaymentReported : "payment-reported"
Approved --> Overdue : "loan-expires"
Approved --> Refinanced : "loan-refinanced-approve"
Approved --> PaymentConfirmed : "payment-confirmed"
Approved --> PaymentUnconfirmed : "payment-unconfirmed"
Approved --> PreApprovedExtension : "pre-approve-extension"
Approved --> Accelerated : "overdue-accelerated"
Accelerated --> Overdue : "auto next-day"
PreApprovedExtension --> Extended : "approve-extension"
PreApprovedExtension --> Overdue : "reject-extension"
PaymentReported --> PaymentConfirmed : "payment-confirmed"
PaymentReported --> PaymentUnconfirmed : "payment-unconfirmed"
PaymentUnconfirmed --> PaymentConfirmed : "payment-confirmed"
PaymentUnconfirmed --> Overdue : "loan-expires"
PaymentUnconfirmed --> PaymentReported : "payment-reported"
Overdue --> PaymentReported : "payment-reported"
Overdue --> PreApprovedRefinance : "pre-approve-refinance"
PreApprovedRefinance --> Refinanced : "loan-refinanced-approve"
PreApprovedRefinance --> Overdue : "loan-refinanced-reject"
PaymentConfirmed --> [*]
Extended --> [*]
Refinanced --> [*]
