diff --git a/core/src/lu/foyer/contracts/ContractHandlers.scala b/core/src/lu/foyer/contracts/ContractHandlers.scala index f703ec9..087c9da 100644 --- a/core/src/lu/foyer/contracts/ContractHandlers.scala +++ b/core/src/lu/foyer/contracts/ContractHandlers.scala @@ -126,7 +126,7 @@ class TerminateHandler() ContractState ]: - val name = "reject" + val name = "terminate" def onCommand(entityId: String, state: ContractState, command: ContractCommand.Terminate) : Task[ContractEvent.Terminated] = diff --git a/core/src/lu/foyer/contracts/ContractState.scala b/core/src/lu/foyer/contracts/ContractState.scala index ae29611..c44b810 100644 --- a/core/src/lu/foyer/contracts/ContractState.scala +++ b/core/src/lu/foyer/contracts/ContractState.scala @@ -28,7 +28,14 @@ object ContractState: extends ContractState derives Schema: def amend(e: ContractEvent.Amended) = - Actif(e.product, holder, e.vehicle, e.formula, e.premium) + PendingAmendment( + product, + holder, + vehicle, + formula, + premium, + PendingChanges(e.product, e.vehicle, e.formula, e.premium) + ) def terminate() = Terminated(product, holder, vehicle, formula, premium) diff --git a/model/src/lu/foyer/contracts/TerminationReasonType.scala b/model/src/lu/foyer/contracts/TerminationReasonType.scala index 33f0c16..32a65d4 100644 --- a/model/src/lu/foyer/contracts/TerminationReasonType.scala +++ b/model/src/lu/foyer/contracts/TerminationReasonType.scala @@ -2,6 +2,9 @@ package lu.foyer package contracts import zio.schema.* +import zio.schema.annotation.caseName enum TerminationReasonType derives Schema: - case Rejected, HolderDeceased, TerminatedByClient + @caseName("rejected") case Rejected + @caseName("holder-deceased") case HolderDeceased + @caseName("terminated-by-client") case TerminatedByClient