packages feed

okf-core-0.8.0.0: test/fixtures/profiles/nested-references-and-uniqueness.dhall

let Profile = ../../../dhall/Profile.dhall

let FieldRule = ../../../dhall/defaults/FieldRule.dhall

let NestedFieldRule = ../../../dhall/defaults/NestedFieldRule.dhall

let HandleReferenceRule = ../../../dhall/defaults/HandleReferenceRule.dhall

let TypeRule = ../../../dhall/defaults/TypeRule.dhall

let Cardinality = ../../../dhall/Cardinality.dhall

let FieldFormat = ../../../dhall/FieldFormat.dhall

let field = ../../../dhall/mk/FieldRule.dhall

let dependencyRules =
      { required =
        [ NestedFieldRule::{
          , field = "ref"
          , cardinality = Cardinality.Scalar
          , reference = Some HandleReferenceRule::{
            , localPrefix = "IR"
            , externalUriSchemes = [ "mori" ]
            , allowLocal = False
            , externalUriPattern = Some
                "mori://[^/]+/[^/]+/okf/improvement-requests/concepts/IR-[1-9][0-9]*"
            }
          }
        ]
      , recommended = [] : List NestedFieldRule.Type
      , optional = [] : List NestedFieldRule.Type
      }

let acceptanceCriteriaRules =
      { required =
        [ NestedFieldRule::{
          , field = "id"
          , cardinality = Cardinality.Scalar
          , format = Some (FieldFormat.DocumentHandle "AC")
          }
        , NestedFieldRule::{ field = "text", cardinality = Cardinality.Scalar }
        ]
      , recommended = [] : List NestedFieldRule.Type
      , optional = [] : List NestedFieldRule.Type
      }

in    { name = "nested-references-and-uniqueness"
      , description = Some
          "Exercises external-only nested Mori references and list-local acceptance criterion IDs."
      , okfVersion = "0.2"
      , frontmatter =
        { required =
          [ field.plain "type"
          , field.documentHandle "requestId" "IR"
          , field.recordList "dependencies" dependencyRules
          ,     field.recordList "acceptanceCriteria" acceptanceCriteriaRules
            //  { uniqueBy = Some "id" }
          ]
        , recommended = [] : List FieldRule.Type
        , optional = [] : List FieldRule.Type
        }
      , allowUnknownTypes = False
      , allowUnknownFields = True
      , idField = Some "requestId"
      , requireBundleVersion = None Text
      , types = [ TypeRule::{ type = "Improvement Request", idPrefix = Some "IR" } ]
      }
    : Profile