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

30 lines
913 B
Scala

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