packages feed

keiro-dsl-0.6.0.0: test/conformance-nominal-scalars/Generated/NominalScalars/NominalProjections.hs

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}

-- @generated by keiro-dsl; do not edit. Regenerated from the .keiro spec.
module Generated.NominalScalars.NominalProjections where

import Data.Text (Text)
import Data.Time (UTCTime)
import Keiki.Core (FieldProjection (..), FieldWitness, fieldWitness)
import Keiro.Codec.Nominal (nominalToRepresentation)
import qualified NominalConformance.Bindings as Bindings
import NominalConformance.Domain
import Numeric.Natural (Natural)

data AccountNumberNominalProjection
instance FieldProjection AccountNumberNominalProjection where
    type FieldName AccountNumberNominalProjection = "AccountNumber"
    type FieldOwner AccountNumberNominalProjection = AccountNumber
    type FieldResult AccountNumberNominalProjection = Text
    fieldShapeId _ = "nominal.AccountNumber.v1"
    projectFieldValue _ = nominalToRepresentation Bindings.accountNumberBinding

accountNumberWitness :: FieldWitness AccountNumberNominalProjection
accountNumberWitness = fieldWitness @AccountNumberNominalProjection

data RiskScoreNominalProjection
instance FieldProjection RiskScoreNominalProjection where
    type FieldName RiskScoreNominalProjection = "RiskScore"
    type FieldOwner RiskScoreNominalProjection = RiskScore
    type FieldResult RiskScoreNominalProjection = Int
    fieldShapeId _ = "nominal.RiskScore.v1"
    projectFieldValue _ = nominalToRepresentation Bindings.riskScoreBinding

riskScoreWitness :: FieldWitness RiskScoreNominalProjection
riskScoreWitness = fieldWitness @RiskScoreNominalProjection

data SequenceNumberNominalProjection
instance FieldProjection SequenceNumberNominalProjection where
    type FieldName SequenceNumberNominalProjection = "SequenceNumber"
    type FieldOwner SequenceNumberNominalProjection = SequenceNumber
    type FieldResult SequenceNumberNominalProjection = Natural
    fieldShapeId _ = "nominal.SequenceNumber.v1"
    projectFieldValue _ = nominalToRepresentation Bindings.sequenceNumberBinding

sequenceNumberWitness :: FieldWitness SequenceNumberNominalProjection
sequenceNumberWitness = fieldWitness @SequenceNumberNominalProjection

data FeatureFlagNominalProjection
instance FieldProjection FeatureFlagNominalProjection where
    type FieldName FeatureFlagNominalProjection = "FeatureFlag"
    type FieldOwner FeatureFlagNominalProjection = FeatureFlag
    type FieldResult FeatureFlagNominalProjection = Bool
    fieldShapeId _ = "nominal.FeatureFlag.v1"
    projectFieldValue _ = nominalToRepresentation Bindings.featureFlagBinding

featureFlagWitness :: FieldWitness FeatureFlagNominalProjection
featureFlagWitness = fieldWitness @FeatureFlagNominalProjection

data ObservedAtNominalProjection
instance FieldProjection ObservedAtNominalProjection where
    type FieldName ObservedAtNominalProjection = "ObservedAt"
    type FieldOwner ObservedAtNominalProjection = ObservedAt
    type FieldResult ObservedAtNominalProjection = UTCTime
    fieldShapeId _ = "nominal.ObservedAt.v1"
    projectFieldValue _ = nominalToRepresentation Bindings.observedAtBinding

observedAtWitness :: FieldWitness ObservedAtNominalProjection
observedAtWitness = fieldWitness @ObservedAtNominalProjection