packages feed

keiro-dsl-0.10.0.0: test/conformance-import-planning/Generated/ImportPlanningCollisions/NominalProjections.hs

{-# LANGUAGE TypeFamilies #-}
-- @generated by keiro-dsl 0.9.0.0 (language keiro-dsl 4) from context import-planning-collisions nominal scalar projection facade; do not edit.
module Generated.ImportPlanningCollisions.NominalProjections where

import Data.Text (Text)
import Keiki.Core (ExactFieldProjection (..), FieldProjection (..), FieldWitness, exactFieldWitness, fieldWitness)
import Keiro.Codec.Nominal (nominalFromRepresentation, nominalToRepresentation)
import ImportPlanning.Bindings qualified as Bindings
import ImportPlanning.Consumer.Domain (CollisionLedgerCommand)
import ImportPlanning.Consumer.Invoice.Types qualified as InvoiceTypes
import ImportPlanning.Consumer.Order.Types qualified as OrderTypes

data InvoiceStatusNominalProjection

instance FieldProjection InvoiceStatusNominalProjection where
  type FieldName InvoiceStatusNominalProjection = "InvoiceStatus"
  type FieldOwner InvoiceStatusNominalProjection = InvoiceTypes.Status
  type FieldResult InvoiceStatusNominalProjection = Text
  fieldShapeId _ = "import-planning.InvoiceStatus.v1"
  projectFieldValue _ = nominalToRepresentation Bindings.invoiceStatusBinding

invoiceStatusWitness :: FieldWitness InvoiceStatusNominalProjection
invoiceStatusWitness = fieldWitness @InvoiceStatusNominalProjection

data LocalCollisionNominalProjection

instance FieldProjection LocalCollisionNominalProjection where
  type FieldName LocalCollisionNominalProjection = "LocalCollision"
  type FieldOwner LocalCollisionNominalProjection = CollisionLedgerCommand
  type FieldResult LocalCollisionNominalProjection = Text
  fieldShapeId _ = "import-planning.LocalCollision.v1"
  projectFieldValue _ = nominalToRepresentation Bindings.localCollisionBinding

localCollisionWitness :: FieldWitness LocalCollisionNominalProjection
localCollisionWitness = fieldWitness @LocalCollisionNominalProjection

data OrderStatusNominalProjection

instance FieldProjection OrderStatusNominalProjection where
  type FieldName OrderStatusNominalProjection = "OrderStatus"
  type FieldOwner OrderStatusNominalProjection = OrderTypes.Status
  type FieldResult OrderStatusNominalProjection = Text
  fieldShapeId _ = "import-planning.OrderStatus.v1"
  projectFieldValue _ = nominalToRepresentation Bindings.orderStatusBinding

orderStatusWitness :: FieldWitness OrderStatusNominalProjection
orderStatusWitness = fieldWitness @OrderStatusNominalProjection