package lu.foyer package clients import zio.schema.* import java.time.LocalDate enum ClientCommand derives Schema: case Create( lastName: ClientLastName, firstName: ClientFirstName, birthDate: ClientBirthDate, drivingLicenseDate: Option[ClientDrivingLicenseDate], phoneNumber: Option[PhoneNumberInput], email: Option[Email], address: Option[Address]) case Update( lastName: Option[ClientLastName], firstName: Option[ClientFirstName], birthDate: Option[ClientBirthDate], drivingLicenseDate: Option[ClientDrivingLicenseDate], phoneNumber: Option[PhoneNumberInput], email: Option[Email], address: Option[Address]) case Disable(reason: ClientDisabledReason) object ClientCommand: given Schema[ClientCommand.Create] = DeriveSchema.gen given Schema[ClientCommand.Update] = DeriveSchema.gen given Schema[ClientCommand.Disable] = DeriveSchema.gen