{
  "$id": "https://namespace.lantmateriet.se/distribution/produkter/lagenhet/v1/lagenhet-1.0.0.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Lägenhet Direkt",
  "description": "Schema för Lägenhet Direkt",
  "oneOf": [
    {
      "$ref": "#/$defs/idRequest"
    },
    {
      "$ref": "#/$defs/response"
    }
  ],
  "$defs": {
    "idRequest": {
      "title": "IdRequest",
      "type": "array",
      "description": "Hämta lägenhet med angiven identifierare.",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "minItems": 1
    },

    "response": {
      "oneOf": [
        {
          "$ref": "#/$defs/lagenhetResponse"
        },
        {
          "$ref": "#/$defs/lagenhetsreferensResponse"
        },
        {
          "$ref": "https://namespace.lantmateriet.se/distribution/produkter/fault/v1/fault-1.1.json"
        }
      ]
    },

    "lagenhetsreferensResponse": {
      "title": "Lägenhetsreferens Response",
      "type": "array",
      "description": "Ingen, en eller flera identifierare för lägenhet",
      "items": {
        "type": "string",
        "format": "uuid"
      }
    },
    "lagenhetResponse": {
      "title": "Lägenhet FeatureCollection",
      "description": "Behållare för lägenheter - ingen, en eller flera sökträffar av typen lagenhet",
      "allOf": [
        {
          "$ref": "https://namespace.lantmateriet.se/distribution/produkter/geojson/v1/geojson-1.2.json#/$defs/featureCollection"
        },
        {
          "properties": {
            "features": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/lagenhetFeature"
              }
            }
          }
        }
      ],
      "unevaluatedProperties": false
    },
    "lagenhetFeature": {
      "title": "Lägenhet Feature",
      "type": "object",
      "description": "Innehåller information om en lägenhet",
      "allOf": [
        {
          "$ref": "https://namespace.lantmateriet.se/distribution/produkter/geojson/v1/geojson-1.2.json#/$defs/feature"
        },
        {
          "properties": {
            "id": {
              "type": "string",
              "format": "uuid"
            },
            "geometry": {
              "type": "null"
            },
            "properties": {
              "$ref": "#/$defs/lagenhet"
            }
          },
          "required": [
            "id"
          ]
        }
      ],
      "unevaluatedProperties": false
    },
    "lagenhet": {
      "title": "Lägenhet",
      "type": "object",
      "properties": {
        "objektidentitet": {
          "type": "string",
          "format": "uuid"
        },
        "objektversion": {
          "type": "integer"
        },
        "versionGiltigFran": {
          "type": "string",
          "format": "date-time"
        },
        "lagenhetsnummer": {
          "type": "string"
        },
        "beslutsdatumForLagenhetsnummer": {
          "type": "string",
          "format": "date"
        },
        "underrattelsedatumForLagenhetsnummer": {
          "type": "string",
          "format": "date"
        },
        "antalRum": {
          "type": "integer"
        },
        "bostadsarea": {
          "type": "number"
        },
        "lagenhetskategori": {
          "$ref": "#/$defs/lagenhetskategori"
        },
        "kokstyp": {
          "$ref": "#/$defs/kokstyp"
        },
        "gemensamtKok": {
          "$ref": "#/$defs/gemensamtKok"
        },
        "insamlingssatt": {
          "$ref": "#/$defs/insamlingssatt"
        },
        "objektstatus": {
          "$ref": "#/$defs/objektstatus"
        },
        "fastighetsreferens": {
          "$ref": "#/$defs/fastighetsreferens"
        },
        "adressplatsreferens": {
          "$ref": "#/$defs/adressplatsreferens"
        }
      },
      "required": [
        "objektidentitet",
        "objektversion",
        "bostadsarea",
        "insamlingssatt",
        "objektstatus"
      ]
    },
    "fastighetsreferens": {
      "title": "Fastighetsreferens",
      "type": "object",
      "properties": {
        "objektidentitet": {
          "type": "string",
          "format": "uuid"
        },
        "beteckning": {
          "type": "string"
        }
      },
      "required": [
        "objektidentitet",
        "beteckning"
      ],
      "additionalProperties": false
    },
    "adressplatsreferens": {
      "title": "Adressplatsreferens",
      "type": "object",
      "properties": {
        "objektidentitet": {
          "type": "string",
          "format": "uuid"
        },
        "adress": {
          "type": "string"
        }
      },
      "required": [
        "objektidentitet",
        "adress"
      ],
      "additionalProperties": false
    },
    "lagenhetskategori": {
      "type": "string",
      "enum": [
        "Vanlig bostadslägenhet",
        "Specialbostad för äldre eller funktionshindrade",
        "Studentbostad",
        "Övrig specialbostad",
        "Uppgift saknas"
      ]
    },
    "kokstyp": {
      "type": "string",
      "enum": [
        "Kök",
        "Kokvrå",
        "Kokskåp",
        "Köksutrustning saknas",
        "Uppgift saknas"
      ]
    },
    "gemensamtKok": {
      "type": "string",
      "enum": [
        "Ja",
        "Nej",
        "Uppgift saknas"
      ]
    },
    "insamlingssatt": {
      "type": "string",
      "enum": [
        "On-lineregistrering",
        "Satsvis laddning från fil",
        "Skannad blankett",
        "Annan uppgiftslämning",
        "Uppläggning från handläggningssystem",
        "Webbformulär",
        "Uppläggning från register",
        "Uppgift saknas"
      ]
    },
    "objektstatus": {
      "title": "Objektstatus",
      "type": "string",
      "enum": [
        "Planerad",
        "Gällande",
        "Avregistrerad"
      ]
    }
  }
}