{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://schema.fitko.de/fit-connect/process-definition/vereinsfest/schemas/MessageFlow5_Anzeige_weitergeleitet.schema.json",
  "title": "Anzeige weitergeleitet",
  "description": "Datenschema für MessageFlow #5: Weiterleitung der Anzeige eines vorübergehenden Gaststättenbetriebs (z.B. Vereinsfest) vom Ordnungsamt/Gewerbeamt an eine Fachbehörde (z.B. Lebensmittelüberwachung). Enthält Meta-Daten zur Korrelation und die vollständige Anzeige als Fachdaten-Payload.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "vorgangsId",
    "weiterleitungId",
    "weitergeleitetAm",
    "anzeige"
  ],
  "properties": {
    "vorgangsId": {
      "$ref": "#/$defs/Id",
      "description": "Vorgangs-/Anzeige-ID zur eindeutigen Zuordnung."
    },
    "weiterleitungId": {
      "$ref": "#/$defs/Id",
      "description": "Eindeutige ID der Weiterleitung (Message/Transmission-ID)."
    },
    "weitergeleitetAm": {
      "$ref": "#/$defs/Timestamp",
      "description": "Zeitpunkt der Weiterleitung (ISO-8601 date-time)."
    },
    "aktenzeichen": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "description": "Optionales Aktenzeichen der Behörde."
    },
    "anzeige": {
      "$ref": "https://schema.fitko.de/fit-connect/process-definition/vereinsfest/schemas/MessageFlow1_S05000581V1.1_2025-11-25-1764059338437.schema.json",
      "description": "Die vollständige Anzeige gemäß Fachdatenschema (Gaststättengewerbe Anzeige (OZG))."
    },
    "pruefauftrag": {
      "$ref": "#/$defs/Pruefauftrag"
    },
    "zustaendigeStelle": {
      "$ref": "#/$defs/ZustaendigeStelle"
    },
    "kontakt": {
      "$ref": "#/$defs/Kontakt",
      "description": "Optionaler Kontakt beim Ordnungsamt/Gewerbeamt für Rückfragen."
    },
    "hinweise": {
      "type": "string",
      "maxLength": 4000,
      "description": "Freitext-Hinweise zur Weiterleitung (optional)."
    },
    "bezugAnzeigeSchema": {
      "type": "string",
      "const": "https://schema.fitko.de/fit-connect/process-definition/vereinsfest/schemas/MessageFlow1_S05000581V1.1_2025-11-25-1764059338437.schema.json",
      "description": "Expliziter Verweis auf das verwendete Anzeige-Fachdatenschema ($id)."
    }
  },
  "$defs": {
    "Id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "description": "Eindeutige Kennung (System-/Vorgangs-/Dokument-ID)."
    },
    "Timestamp": {
      "type": "string",
      "format": "date-time",
      "description": "Zeitstempel im ISO-8601-Format (date-time)."
    },
    "Kontakt": {
      "type": "object",
      "title": "Kontakt",
      "description": "Optionaler Kontakt für Rückfragen.",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 200
        },
        "organisation": {
          "type": "string",
          "maxLength": 200
        },
        "email": {
          "type": "string",
          "format": "email",
          "maxLength": 254
        },
        "telefon": {
          "type": "string",
          "maxLength": 50
        },
        "fax": {
          "type": "string",
          "maxLength": 50
        }
      }
    },
    "Adresse": {
      "type": "object",
      "title": "Adresse",
      "description": "Optionale postalische Adresse (vereinfachtes Format).",
      "additionalProperties": false,
      "properties": {
        "strasse": {
          "type": "string",
          "maxLength": 100
        },
        "hausnummer": {
          "type": "string",
          "maxLength": 20
        },
        "plz": {
          "type": "string",
          "maxLength": 12
        },
        "ort": {
          "type": "string",
          "maxLength": 100
        },
        "land": {
          "type": "string",
          "maxLength": 100
        }
      }
    },
    "ZustaendigeStelle": {
      "type": "object",
      "title": "Zuständige Stelle",
      "description": "Optional: Empfänger-/Zuständigkeitsinformationen für die Fachbehörde.",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 200,
          "description": "Bezeichnung der Stelle/Organisation."
        },
        "organisationseinheit": {
          "type": "string",
          "maxLength": 200
        },
        "behoerdenkennung": {
          "type": "string",
          "maxLength": 100,
          "description": "Optional: Behördenkennung/Schlüssel."
        },
        "adresse": {
          "$ref": "#/$defs/Adresse"
        },
        "kontakt": {
          "$ref": "#/$defs/Kontakt"
        }
      }
    },
    "Pruefauftrag": {
      "type": "object",
      "title": "Prüfauftrag",
      "description": "Optionaler Prüfauftrag/Prüfkontext an die Fachbehörde.",
      "additionalProperties": false,
      "properties": {
        "typ": {
          "type": "string",
          "description": "Art der fachlichen Prüfung (optional, frei/erweiterbar).",
          "enum": [
            "lebensmittelueberwachung",
            "hygiene",
            "sicherheit",
            "laermschutz",
            "sonstiges"
          ]
        },
        "beschreibung": {
          "type": "string",
          "maxLength": 2000,
          "description": "Beschreibung des Prüfauftrags."
        },
        "prioritaet": {
          "type": "string",
          "enum": [
            "normal",
            "hoch"
          ],
          "default": "normal"
        },
        "fristBis": {
          "description": "Optional: gewünschte Rückmeldefrist (Datum oder date-time).",
          "anyOf": [
            {
              "type": "string",
              "format": "date"
            },
            {
              "type": "string",
              "format": "date-time"
            }
          ]
        }
      }
    }
  },
  "examples": [
    {
      "vorgangsId": "VORGANG-2026-000123",
      "weiterleitungId": "WL-2026-000045",
      "weitergeleitetAm": "2026-02-16T09:30:00+01:00",
      "aktenzeichen": "32-1234/2026",
      "pruefauftrag": {
        "typ": "lebensmittelueberwachung",
        "beschreibung": "Bitte fachliche Prüfung hinsichtlich lebensmittelrechtlicher Anforderungen.",
        "prioritaet": "normal"
      },
      "bezugAnzeigeSchema": "https://schema.fitko.de/fit-connect/process-definition/vereinsfest/schemas/MessageFlow1_S05000581V1.1_2025-11-25-1764059338437.schema.json",
      "anzeige": {
        "G05004778V1.1": {
          "F05007812V1.1": "1",
          "F05007815V1.1": "1",
          "F05007820V1.0": false
        },
        "G05004783V2.1": {
          "G05005017V1.2": {
            "G05005018V1.1": {
              "F05002424V1.0": "170",
              "F05002911V1.0": "01"
            },
            "G05004916V5.1": [],
            "G05004917V4.1": []
          },
          "G05005019V1.1": {
            "G05000765V11.2": {
              "F05015922V2.0": "000",
              "F60000243V1.2": "Musterstraße",
              "F60000244V1.2": "1",
              "F60000246V1.1": "10115",
              "F60000247V2.2": "Berlin"
            },
            "G05000987V3.5": {
              "F60000242V1.1": "verein@example.org"
            }
          },
          "G05005027V1.0": {
            "F05008150V1.0": "2026-05-01",
            "G05005028V1.0": {
              "F05008151V1.0": "001",
              "G05005029V1.0": {
                "G05004560V1.1": {
                  "F05007571V1.1": 1000,
                  "F05007572V1.1": 2200
                },
                "G05004562V1.1": {
                  "F05007571V1.1": 1000,
                  "F05007572V1.1": 2200
                },
                "G05004563V1.1": {
                  "F05007571V1.1": 1000,
                  "F05007572V1.1": 2200
                },
                "G05004564V1.1": {
                  "F05007571V1.1": 1000,
                  "F05007572V1.1": 2200
                },
                "G05004565V1.1": {
                  "F05007571V1.1": 1000,
                  "F05007572V1.1": 2200
                },
                "G05004566V1.1": {
                  "F05007571V1.1": 1000,
                  "F05007572V1.1": 2200
                },
                "G05004567V1.1": {
                  "F05007571V1.1": 1000,
                  "F05007572V1.1": 2200
                }
              }
            }
          },
          "G05004833V1.1": {
            "F05007839V1.0": "Vereinsfest am Dorfplatz",
            "F05007865V1.0": true
          }
        },
        "G05004784V1.1": {
          "F05002038V1.0": "doc-ref-ausweis",
          "G05000807V2.0": {
            "F05001761V2.0": "001",
            "G05000837V2.0": []
          },
          "F05004204V1.0": "doc-ref-gewerbezentralregister",
          "F05007345V1.0": [],
          "F05002485V2.0": []
        }
      }
    }
  ]
}