{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://schema.fitko.de/fit-connect/process-definition/vereinsfest/schemas/MessageFlow10_Stellungnahme_Entscheidung_Fachbehoerde_Untersagung.schema.json",
  "title": "MessageFlow 10: Stellungnahme / Entscheidung Fachbehörde (Untersagung)",
  "description": "Datenschema für die Übermittlung einer fachbehördlichen Stellungnahme/Entscheidung im negativen Pfad (Untersagung) von der Fachbehörde an das Ordnungsamt/Gewerbeamt (MessageFlow 10 im BPMN-Prozess).",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "vorgangsId",
    "bezugWeiterleitungId",
    "stellungnahmeId",
    "erstelltAm",
    "entscheidung",
    "begruendung",
    "untersagungsgruende"
  ],
  "properties": {
    "vorgangsId": {
      "$ref": "#/$defs/Id",
      "description": "Eindeutige Vorgangs-ID zur Zuordnung im Gesamtprozess."
    },
    "bezugWeiterleitungId": {
      "$ref": "#/$defs/Id",
      "description": "Referenz auf die weiterleitungId aus MessageFlow 5 (Anzeige weitergeleitet)."
    },
    "stellungnahmeId": {
      "$ref": "#/$defs/Id",
      "description": "Eindeutige ID der fachbehördlichen Stellungnahme/Entscheidung."
    },
    "erstelltAm": {
      "$ref": "#/$defs/Timestamp",
      "description": "Erstellungszeitpunkt der Stellungnahme/Entscheidung (ISO-8601 date-time)."
    },
    "aktenzeichen": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Optionales Aktenzeichen/Referenz der Behörde."
    },
    "entscheidung": {
      "$ref": "#/$defs/Entscheidung",
      "description": "Fachliche Entscheidung der Fachbehörde (negativer Pfad)."
    },
    "begruendung": {
      "type": "string",
      "minLength": 1,
      "maxLength": 10000,
      "description": "Begründung der Untersagung (zusammenfassend)."
    },
    "untersagungsgruende": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Untersagungsgrund"
      },
      "minItems": 1,
      "description": "Einzelne Gründe/Beanstandungen, die zur Untersagung führen."
    },
    "wirksamAb": {
      "description": "Optional: Zeitpunkt/Datum, ab dem die Untersagung gelten soll (Datum oder date-time).",
      "anyOf": [
        {
          "$ref": "#/$defs/Date"
        },
        {
          "$ref": "#/$defs/Timestamp"
        }
      ]
    },
    "anlagen": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Dokument"
      },
      "minItems": 0,
      "description": "Optionale Anlagen/Dokumente (z.B. Prüfbericht, Stellungnahme, Rechtsgrundlagen-Auszug)."
    },
    "bearbeitendeStelle": {
      "$ref": "#/$defs/BearbeitendeStelle",
      "description": "Optionale Metadaten zur bearbeitenden Fachbehörde/Stelle."
    },
    "kontakt": {
      "$ref": "#/$defs/Kontakt",
      "description": "Optionaler Kontakt für Rückfragen."
    },
    "hinweise": {
      "type": "string",
      "maxLength": 5000,
      "description": "Optionale Hinweise zur weiteren Bearbeitung (z.B. Vollzug, Kommunikation, weitere Nachweise)."
    },
    "bezugAnzeigeSchema": {
      "type": "object",
      "title": "Bezug Anzeige-Fachschema (optional)",
      "description": "Optionaler Verweis auf das zugrundeliegende Fachdatenschema der Anzeige.",
      "additionalProperties": false,
      "properties": {
        "schemaId": {
          "type": "string",
          "const": "https://schema.fitko.de/fit-connect/process-definition/vereinsfest/schemas/MessageFlow1_S05000581V1.1_2025-11-25-1764059338437.schema.json",
          "description": "Schema-$id der Anzeige (S05000581V1.1)."
        },
        "version": {
          "type": "string",
          "maxLength": 50,
          "description": "Optionale Version/Release-Angabe, falls abweichend vom schemaId erfasst."
        }
      },
      "required": [
        "schemaId"
      ]
    }
  },
  "$defs": {
    "Id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "description": "Eindeutige Kennung (System-/Vorgangs-/Dokument-ID)."
    },
    "Timestamp": {
      "type": "string",
      "format": "date-time",
      "description": "Zeitpunkt im ISO-8601-Format (date-time)."
    },
    "Date": {
      "type": "string",
      "format": "date",
      "description": "Datum im ISO-8601-Format (YYYY-MM-DD)."
    },
    "Entscheidung": {
      "type": "object",
      "title": "Entscheidung (Fachbehörde)",
      "description": "Fachbehördliche Entscheidung im negativen Pfad (Untersagung).",
      "additionalProperties": false,
      "properties": {
        "code": {
          "type": "string",
          "description": "Normierter Entscheidungscode.",
          "const": "untersagung"
        },
        "label": {
          "type": "string",
          "maxLength": 200,
          "description": "Optionales Kurzlabel/Anzeige-Text zur Entscheidung."
        }
      },
      "required": [
        "code"
      ]
    },
    "Untersagungsgrund": {
      "type": "object",
      "title": "Untersagungsgrund",
      "description": "Ein einzelner Grund/Aspekt, der die Untersagung trägt.",
      "additionalProperties": false,
      "properties": {
        "grundId": {
          "$ref": "#/$defs/Id",
          "description": "Optionale ID des Grundes (falls systemseitig vorhanden)."
        },
        "text": {
          "type": "string",
          "minLength": 1,
          "maxLength": 4000,
          "description": "Beschreibung des Untersagungsgrundes."
        },
        "bezug": {
          "type": "string",
          "maxLength": 500,
          "description": "Optional: Bezug (z.B. Ort/Bereich, Dokument, Feldpfad, Tätigkeit)."
        },
        "rechtsgrundlage": {
          "type": "string",
          "maxLength": 500,
          "description": "Optional: Rechtsgrundlage/Normverweis zum Untersagungsgrund."
        }
      },
      "required": [
        "text"
      ]
    },
    "Dokument": {
      "type": "object",
      "title": "Dokument/Anlage",
      "description": "Optionales Dokument zur Stellungnahme/Entscheidung (keine Binärdaten).",
      "additionalProperties": false,
      "properties": {
        "dokumentId": {
          "$ref": "#/$defs/Id",
          "description": "Optionale Dokument-ID."
        },
        "kategorie": {
          "type": "string",
          "description": "Kategorie/Typ des Dokuments.",
          "enum": [
            "stellungnahme",
            "pruefbericht",
            "gutachten",
            "rechtsgrundlage",
            "anlage",
            "sonstiges"
          ]
        },
        "titel": {
          "type": "string",
          "maxLength": 200,
          "description": "Optionaler Titel."
        },
        "dateiname": {
          "type": "string",
          "maxLength": 255,
          "description": "Optionaler Dateiname."
        },
        "mimeType": {
          "type": "string",
          "maxLength": 100,
          "description": "Optionaler MIME-Type (z.B. application/pdf)."
        },
        "dateiRef": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500,
          "description": "Referenz/ID auf die Datei im Austausch-/Dokumenten-System."
        },
        "hashSha256": {
          "type": "string",
          "pattern": "^[A-Fa-f0-9]{64}$",
          "description": "Optionaler SHA-256 Hash der Datei (hex)."
        }
      },
      "required": [
        "kategorie",
        "dateiRef"
      ]
    },
    "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
        }
      }
    },
    "BearbeitendeStelle": {
      "type": "object",
      "title": "Bearbeitende Stelle (optional)",
      "description": "Optionale Metadaten zur bearbeitenden Fachbehörde/Stelle.",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 200,
          "description": "Name der Stelle/Einheit."
        },
        "organisationseinheit": {
          "type": "string",
          "maxLength": 200,
          "description": "Organisationseinheit/Fachdienst."
        },
        "behoerdenkennung": {
          "type": "string",
          "maxLength": 100,
          "description": "Optionale Kennung (z.B. Behördenkennzeichen)."
        }
      }
    }
  },
  "examples": [
    {
      "vorgangsId": "VORG-2026-000123",
      "bezugWeiterleitungId": "WEITERL-2026-000045",
      "stellungnahmeId": "STELL-2026-000079",
      "erstelltAm": "2026-02-17T10:20:00Z",
      "aktenzeichen": "OA-ABT-12-2026-4711",
      "entscheidung": {
        "code": "untersagung",
        "label": "Untersagung"
      },
      "begruendung": "Aus lebensmittelrechtlicher Sicht bestehen erhebliche Bedenken, die eine Untersagung des vorübergehenden Gaststättenbetriebs erforderlich machen.",
      "untersagungsgruende": [
        {
          "text": "Nachweis einer geeigneten Kühlmöglichkeit für leicht verderbliche Lebensmittel fehlt.",
          "bezug": "Lagerung/Kühlung",
          "rechtsgrundlage": "LMHV"
        },
        {
          "text": "Hygienekonzept ist unvollständig (Reinigungs-/Desinfektionsplan fehlt).",
          "bezug": "Hygienekonzept"
        }
      ],
      "wirksamAb": "2026-06-01",
      "anlagen": [
        {
          "kategorie": "pruefbericht",
          "titel": "Fachliche Stellungnahme Lebensmittelüberwachung",
          "dateiname": "stellungnahme.pdf",
          "mimeType": "application/pdf",
          "dateiRef": "DOK-4812"
        }
      ],
      "bearbeitendeStelle": {
        "name": "Lebensmittelüberwachung",
        "organisationseinheit": "Fachdienst"
      },
      "kontakt": {
        "email": "lebensmittelueberwachung@example.de",
        "telefon": "+49 123 456789"
      },
      "bezugAnzeigeSchema": {
        "schemaId": "https://schema.fitko.de/fit-connect/process-definition/vereinsfest/schemas/MessageFlow1_S05000581V1.1_2025-11-25-1764059338437.schema.json"
      }
    }
  ]
}