keiro-dsl-0.10.0.0: test/conformance-v2/Generated/HospitalCapacity/Nominals/Internal.hs
-- @generated by keiro-dsl 0.9.0.0 (language keiro-dsl 4) from context hospital-capacity generated nominal ID internals; do not edit.
module Generated.HospitalCapacity.Nominals.Internal
( CommandId
, parseCommandId
, mkCommandId
, commandIdText
, unsafeCommandIdFromLegacyText
, HospitalId
, parseHospitalId
, mkHospitalId
, hospitalIdText
, unsafeHospitalIdFromLegacyText
, TransferReservationId
, parseTransferReservationId
, mkTransferReservationId
, transferReservationIdText
, unsafeTransferReservationIdFromLegacyText
) where
import Data.Aeson (FromJSON (..), ToJSON (..), withText)
import Data.Text (Text)
import Data.Text qualified as T
import GHC.Generics (Generic)
import Keiro.Codec.IdDomain (typeIdV7Domain, validateIdDomainText)
newtype CommandId = CommandId Text
deriving stock (Generic, Eq, Ord, Show)
instance ToJSON CommandId where
toJSON = toJSON . commandIdText
instance FromJSON CommandId where
parseJSON = withText "CommandId" (either (fail . T.unpack) pure . parseCommandId)
parseCommandId :: Text -> Either Text CommandId
parseCommandId input = case validateIdDomainText (typeIdV7Domain "cmd") input of
Left reason -> Left (T.pack (show reason))
Right () -> Right (CommandId input)
mkCommandId :: Text -> Either Text CommandId
mkCommandId = parseCommandId
commandIdText :: CommandId -> Text
commandIdText (CommandId value) = value
unsafeCommandIdFromLegacyText :: Text -> CommandId
unsafeCommandIdFromLegacyText = CommandId
newtype HospitalId = HospitalId Text
deriving stock (Generic, Eq, Ord, Show)
instance ToJSON HospitalId where
toJSON = toJSON . hospitalIdText
instance FromJSON HospitalId where
parseJSON = withText "HospitalId" (either (fail . T.unpack) pure . parseHospitalId)
parseHospitalId :: Text -> Either Text HospitalId
parseHospitalId input = case validateIdDomainText (typeIdV7Domain "hosp") input of
Left reason -> Left (T.pack (show reason))
Right () -> Right (HospitalId input)
mkHospitalId :: Text -> Either Text HospitalId
mkHospitalId = parseHospitalId
hospitalIdText :: HospitalId -> Text
hospitalIdText (HospitalId value) = value
unsafeHospitalIdFromLegacyText :: Text -> HospitalId
unsafeHospitalIdFromLegacyText = HospitalId
newtype TransferReservationId = TransferReservationId Text
deriving stock (Generic, Eq, Ord, Show)
instance ToJSON TransferReservationId where
toJSON = toJSON . transferReservationIdText
instance FromJSON TransferReservationId where
parseJSON = withText "TransferReservationId" (either (fail . T.unpack) pure . parseTransferReservationId)
parseTransferReservationId :: Text -> Either Text TransferReservationId
parseTransferReservationId input = case validateIdDomainText (typeIdV7Domain "rsv") input of
Left reason -> Left (T.pack (show reason))
Right () -> Right (TransferReservationId input)
mkTransferReservationId :: Text -> Either Text TransferReservationId
mkTransferReservationId = parseTransferReservationId
transferReservationIdText :: TransferReservationId -> Text
transferReservationIdText (TransferReservationId value) = value
unsafeTransferReservationIdFromLegacyText :: Text -> TransferReservationId
unsafeTransferReservationIdFromLegacyText = TransferReservationId