All Downloads are FREE. Search and download functionalities are using the official Maven repository.

config.dotwebstack-ref.yaml Maven / Gradle / Ivy

spatial:
  srid:
    28992:
      dimensions: 2
      scale: 4
      bboxColumnSuffix: _bbox
    7415:
      dimensions: 3
      scale: 4
      bboxColumnSuffix: _bbox
      equivalent: 28992
    9067:
      dimensions: 2
      scale: 9
      columnSuffix: _etrs89
    7931:
      dimensions: 3
      scale: 9
      columnSuffix: _etrs89
      equivalent: 9067

subscriptions:
  beerSubscription:
    type: Beer
  brewerySubscription:
    type: Brewery

queries:
  beer:
    type: Beer
    keys:
      - identifier
  beerCollection:
    type: Beer
    list: true
  brewery:
    type: Brewery
    keys:
      - identifier
  breweryCollection:
    type: Brewery
    list: true
  breweryAddressCity:
    type: Brewery
    keys:
      - identifier
      - postalAddress.city
  breweryAddressIdentifier:
    type: Brewery
    keys:
      - identifier
      - postalIdentifier: postalAddress.identifier
  beerBreweryRefKey:
    type: Beer
    keys:
      - identifier: identifier
      - brewery.ref.record_id
objectTypes:
  Beer:
    table: dbeerpedia.beers
    filters:
      name:
        field: name
      taste:
        field: taste
    sortableBy:
      name:
        - field: name
          direction: ASC
    fields:
      identifier:
        type: ID
      name:
        type: String
      abv:
        type: Float
      soldPerYear:
        type: Int
      retired:
        type: Boolean
      brewery:
        type: BeerBrewery
        joinColumns:
          - name: brewery
            referencedField: ref.record_id
      ingredients:
        type: BeerIngredient
        joinTable:
          name: dbeerpedia.beers_ingredients
          joinColumns:
            - name: beers_identifier
              referencedField: identifier
          inverseJoinColumns:
            - name: ingredients_identifier
              referencedField: refs.identifier
      taste:
        type: String
        list: true
        enum:
          type: beer_taste
          values: [ "MEATY", "FRUITY", "SMOKY", "SPICY", "WATERY" ]

  BeerBrewery:
    fields:
      ref:
        type: BreweryRef
      node:
        type: Brewery
        nullable: true

  BreweryRef:
    fields:
      record_id:
        type: Int

  Brewery:
    table: dbeerpedia.breweries
    sortableBy:
      name:
        - field: name
          direction: ASC
      address:
        - field: postalAddress.street
          direction: ASC
        - field: postalAddress.city
          direction: ASC
      historyAge:
        - field: history.age
          direction: ASC
    fields:
      record_id:
        type: Int
      identifier:
        type: String
      name:
        type: String
      status:
        type: String
      geometry:
        type: Geometry
        nullable: true
      postalAddress:
        type: Address
        joinColumns:
          - name: postal_address
            referencedField: identifier
      visitAddress:
        type: Address
        nullable: true
        joinColumns:
          - name: visit_address
            referencedField: identifier
      beers:
        type: Beer
        list: true
        nullable: true
        joinColumns:
          - name: record_id
            referencedField: brewery
      beerAgg:
        aggregationOf: Beer
        joinColumns:
          - name: record_id
            referencedField: brewery
      history:
        type: History
        nullable: true
        presenceColumn: his_age
      relatedTo:
        type: Brewery
        list: true
        joinTable:
          name: dbeerpedia.breweries__related_to
          joinColumns:
            - name: brewery_identifier
              referencedField: identifier
          inverseJoinColumns:
            - name: brewery_related_to_identifier
              referencedField: identifier
    filters:
      name: { }
      status: { }
      geometry: { }
      postalAddress: { }
      visitAddress: { }
      history: { }
      relatedTo: { }
      beers: { }

  BeerIngredient:
    fields:
      refs:
        type: IngredientRef
        list: true
      nodes:
        type: Ingredient
        list: true

  IngredientRef:
    fields:
      identifier:
        type: String

  Ingredient:
    table: dbeerpedia.ingredients
    filters:
      name: { }
    fields:
      identifier:
        type: ID
      name:
        type: String
      weight:
        type: Float

  Address:
    table: dbeerpedia.addresses
    fields:
      identifier:
        type: ID
      street:
        type: String
      city:
        type: String
    filters:
      street: { }
      streetPartial:
        type: partial
        field: street
      city: { }

  History:
    fields:
      age:
        type: Int
        column: his_age
      history:
        type: String
        column: his_history
    filters:
      age: { }

enumerations:
  Taste:
    values: [ MEATY, FRUITY, SMOKY, SPICY, WATERY ]




© 2015 - 2025 Weber Informatics LLC | Privacy Policy