packages feed

keiro-dsl-0.15.0.0: test/fixtures/import-planning-collisions.keiro

language keiro-dsl 4
context import-planning-collisions

mapped nominal OrderStatus : Text {
  haskell package=keiro-dsl module=ImportPlanning.Consumer.Order.Types type=Status
  binding = "ImportPlanning.Bindings.orderStatusBinding"
  binding-version = "1"
  canonical-type = "import-planning.OrderStatus.v1"
  fixtures = "ImportPlanning.Bindings.orderStatusFixtures"
}

mapped nominal InvoiceStatus : Text {
  haskell package=keiro-dsl module=ImportPlanning.Consumer.Invoice.Types type=Status
  binding = "ImportPlanning.Bindings.invoiceStatusBinding"
  binding-version = "1"
  canonical-type = "import-planning.InvoiceStatus.v1"
  fixtures = "ImportPlanning.Bindings.invoiceStatusFixtures"
}

mapped nominal LocalCollision : Text {
  haskell package=keiro-dsl module=ImportPlanning.Consumer.Domain type=CollisionLedgerCommand
  binding = "ImportPlanning.Bindings.localCollisionBinding"
  binding-version = "1"
  canonical-type = "import-planning.LocalCollision.v1"
  fixtures = "ImportPlanning.Bindings.localCollisionFixtures"
}

mapped structural record Details {
  haskell package=keiro-dsl module=ImportPlanning.Consumer.Shared.Types type=Details
  binding = "ImportPlanning.Bindings.detailsBinding"
  binding-version = "1"
  canonical-type = "import-planning.Details.v1"
  fixtures = "ImportPlanning.Bindings.detailsFixtures"
  wire object constructor=Details unknown-fields=reject {
    label as "label" : Text required
  }
}

aggregate CollisionLedger
  regs
  states Empty Recorded!

  command Record {
    orderStatus:OrderStatus invoiceStatus:InvoiceStatus
    localCollision:LocalCollision details:Details
  }
  event RecordedValues = fields(Record)

  Empty -- Record -->
    emit RecordedValues
    goto Recorded

  wire kind=ctorName fields=camelCase schemaVersion=1