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