Funcional: Main contract flows - labcabrera/lab-insurance GitHub Wiki
Los tipos de intercambio de datos se harán en JSON. No se mencionan estas transformaciones en las descripciones de los flujos.
-
El gateway recibe un mensaje de tipo
ContractCreation
-
Encola dicha petición en env[queues.contract.creation]
-
Se procesa el mensaje desde el backend.
-
Se valida la información del contrato.
-
Se consulta al servicio de entidades legales / personas (TODO).
-
Se invoca al servicio de creación.
-
Se persiste el contrato vacio (sólo con la referencia al AM) para para obtener el ID que se utilizará para persistir las relaciones.
-
Se invoca al servicio de actividad para persistir la acción entrante (TODO).
-
Se persisten las relaciones con las entidades legales intervinientes.
-
Se persiste la información relativa al pago inicial.
-
Se invoca al servicio de cambio de estados: Contract>>INITIAL
-
Se invoca al servicio de cambio de estados: Order>>INITIAL
-
-
Se encola una notificación de contrato creado (esta disparará las acciones de envío de mail y persistirá las alertas asociadas a cada persona involucrada). Dependiendo del AM podremos querer escenarios de auto-aprobación de tal modo que esta cola estará gestionada por un enrutador desde el AM. Este flujo debería ser responsable de generar la documentación contractual.
-
En este punto (salvo en los casos de auto-aprobación) el contrato quedaría pendiente de aprobación.
-
El gateway recibe un mensaje de tipo
ContractApprobation
-
Se encola esa petición en env[queues.contract.approbation]
-
Se procesa el mensaje desde el backend.
-
Se almacena la acción en el histórico del contrato.
-
Se establece la fecha de valor del contrato.
-
Se invoca al servicio de cambio de estados: Contract>>APPROBED
-
Se genera un mensaje en la cola de generación de portfolios
-
En este punto el contrato quedaría pendiente de la recepción del pago inicial.
-
Se establece la fecha de efecto de la orden de pago
-
Se invoca al servicio de cambio de estados: Contract>>STARTED
-
Se persiste la información del contrato
-
Se transforma el mensaje en el canal a la orden de pago
-
Se invoca al servicio de cambio de estados: Order>>TO_PROCESS
-
Se persiste la información de la órden
-
Se encola la orden en la cola de procesamiento