foyer-dsi-assure-2035/core/src/lu/foyer/clients/ClientEvent.scala
Paul-Henri Froidmont 91584c18d5
Add commands engine
2025-02-28 05:40:32 +01:00

32 lines
988 B
Scala

package lu.foyer
package clients
import zio.schema.*
import java.time.LocalDate
import zio.schema.annotation.discriminatorName
@discriminatorName("eventType")
enum ClientEvent derives Schema:
case Created(
lastName: ClientLastName,
firstName: ClientFirstName,
birthDate: ClientBirthDate,
drivingLicenseDate: Option[ClientDrivingLicenseDate],
phoneNumber: Option[PhoneNumberInput],
email: Option[Email],
address: Option[Address])
case Updated(
lastName: Option[ClientLastName],
firstName: Option[ClientFirstName],
birthDate: Option[ClientBirthDate],
drivingLicenseDate: Option[ClientDrivingLicenseDate],
phoneNumber: Option[PhoneNumberInput],
email: Option[Email],
address: Option[Address])
case Disabled(reason: ClientDisabledReason)
object ClientEvent:
given Schema[ClientEvent.Created] = DeriveSchema.gen
given Schema[ClientEvent.Updated] = DeriveSchema.gen
given Schema[ClientEvent.Disabled] = DeriveSchema.gen