{
  "schema": "zeimedo-export-catalog-2",
  "encoding": "UTF-8",
  "archive": "ZIP/DEFLATE",
  "files": {
    "apotheke.json": {
      "shape": "object",
      "fields": [
        "id",
        "name",
        "business_type",
        "address",
        "responsible_name",
        "recording_start",
        "settings",
        "settings_version",
        "onboarding",
        "created_at",
        "group_id",
        "cancellation_at",
        "service_until",
        "download_until"
      ]
    },
    "verantwortliche-zugaenge.json": {
      "shape": "array",
      "fields": [
        "id",
        "username",
        "first_name",
        "last_name"
      ]
    },
    "mitarbeitende.json": {
      "shape": "array",
      "fields": [
        "id",
        "name",
        "number",
        "export_number",
        "job",
        "color",
        "active",
        "created_at"
      ]
    },
    "geraete.json": {
      "shape": "array",
      "fields": [
        "id",
        "name",
        "enrolled_at",
        "last_seen",
        "active",
        "author_id",
        "created_at"
      ]
    },
    "zugriffsrollen.json": {
      "shape": "array",
      "fields": [
        "id",
        "user_id",
        "role",
        "active",
        "can_export",
        "can_view_health",
        "created_at"
      ]
    },
    "arbeitszeitmodelle.json": {
      "shape": "array",
      "fields": [
        "id",
        "employee_id",
        "effective_from",
        "weekly_minutes",
        "annual_vacation_days",
        "work_model",
        "daily_minutes",
        "a_week_minutes",
        "b_week_minutes",
        "cycle_anchor",
        "opening_balance_minutes",
        "opening_vacation_days",
        "author_id",
        "created_at"
      ]
    },
    "anbieterwechsel.json": {
      "shape": "array",
      "fields": [
        "id",
        "actor_id",
        "requested_start",
        "transition_until",
        "status",
        "customer_extended_at",
        "completed_at",
        "retrieval_until",
        "events",
        "created_at"
      ]
    },
    "planzeiten.json": {
      "shape": "array",
      "fields": [
        "id",
        "employee_id",
        "start",
        "end",
        "breaks",
        "emergency",
        "revision",
        "archived",
        "published",
        "author_id",
        "created_at"
      ]
    },
    "planversionen.json": {
      "shape": "array",
      "fields": [
        "id",
        "week",
        "version",
        "payload",
        "author_id",
        "created_at"
      ]
    },
    "abwesenheiten.json": {
      "shape": "array",
      "fields": [
        "id",
        "employee_id",
        "kind",
        "date_from",
        "date_to",
        "full_day",
        "time_start",
        "time_end",
        "status",
        "valuation",
        "credit_minutes",
        "vacation_days",
        "valued_at",
        "author_id",
        "decided_by_id",
        "created_at"
      ]
    },
    "arbeitszeiten.json": {
      "shape": "array",
      "fields": [
        "id",
        "employee_id",
        "start",
        "end",
        "breaks",
        "pauses_confirmed",
        "needs_review",
        "source",
        "emergency",
        "start_event_id",
        "end_event_id",
        "current_revision",
        "created_at"
      ]
    },
    "originalstempel.json": {
      "shape": "array",
      "fields": [
        "id",
        "employee_id",
        "terminal_id",
        "event_type",
        "device_time",
        "received_at",
        "client_instance",
        "local_sequence",
        "payload",
        "offline",
        "requires_review",
        "review_reason",
        "content_hash",
        "created_at"
      ]
    },
    "stundenkonten.json": {
      "shape": "array",
      "fields": [
        "id",
        "employee_id",
        "amount_minutes",
        "effective_date",
        "kind",
        "reason",
        "source_key",
        "reverses_id",
        "author_id",
        "created_at"
      ]
    },
    "protokoll.json": {
      "shape": "array",
      "fields": [
        "id",
        "actor_id",
        "employee_id",
        "action",
        "object_type",
        "object_id",
        "data",
        "previous_hash",
        "content_hash",
        "created_at"
      ]
    },
    "tagesgrundlagen.json": {
      "shape": "array",
      "fields": [
        "id",
        "employee_id",
        "day",
        "net_minutes",
        "reason",
        "author_id",
        "created_at"
      ]
    },
    "wochen-sollgrundlagen.json": {
      "shape": "array",
      "fields": [
        "id",
        "employee_id",
        "week",
        "minutes",
        "reason",
        "author_id",
        "created_at"
      ]
    },
    "stempelklaerungen.json": {
      "shape": "array",
      "fields": [
        "id",
        "employee_id",
        "event_id",
        "entry_id",
        "reason",
        "author_id",
        "created_at"
      ]
    },
    "berichtigungen.json": {
      "shape": "array",
      "fields": [
        "id",
        "employee_id",
        "entry_id",
        "old_values",
        "proposed_values",
        "reason",
        "status",
        "employee_response",
        "responded_at",
        "decided_at",
        "author_id",
        "created_at"
      ]
    },
    "wochenentscheidungen.json": {
      "shape": "array",
      "fields": [
        "id",
        "employee_id",
        "week",
        "snapshot",
        "decision",
        "reason",
        "revision",
        "account_before_minutes",
        "author_id",
        "created_at"
      ]
    },
    "stellungnahmen.json": {
      "shape": "array",
      "fields": [
        "id",
        "employee_id",
        "decision_id",
        "accepted",
        "response",
        "applied",
        "created_at"
      ]
    },
    "einrichtungsversionen.json": {
      "shape": "array",
      "fields": [
        "id",
        "version",
        "effective_from",
        "payload",
        "author_id",
        "created_at"
      ]
    },
    "abrechnung-bestellungen.json": {
      "shape": "array",
      "fields": [
        "id",
        "pharmacy_reference",
        "created_at",
        "actor_id",
        "terms",
        "status",
        "finished_at"
      ],
      "access": "Nur rechtlicher Inhaber"
    },
    "nachweisverzeichnis.json": {
      "shape": "array",
      "fields": [
        "id",
        "version",
        "status",
        "date_from",
        "date_to",
        "kind",
        "includes_health",
        "author_id",
        "previous_id",
        "created_at",
        "payload_sha256",
        "pdf_sha256",
        "csv_sha256"
      ]
    },
    "agb/{id}.json": {
      "shape": "object",
      "access": "Nur rechtlicher Inhaber",
      "fields": [
        "schema",
        "id",
        "group_id",
        "party",
        "template",
        "template_sha256",
        "acceptance"
      ]
    },
    "avv/{id}.json": {
      "shape": "object",
      "access": "Nur rechtlicher Inhaber",
      "fields": [
        "schema",
        "id",
        "group_id",
        "party",
        "template",
        "template_sha256",
        "acceptance",
        "scope"
      ]
    },
    "nachweise/{zeitraum}-{art}-v{version}.json": {
      "shape": "object",
      "description": "Vollständiger unveränderbarer Nachweis-Snapshot, Schema apo-evidence-1 (Arbeitszeit) oder apo-plan-1 (Wochenplan); zugehörige PDF und CSV unter gleichem Dateistamm. Der Inhalt ist pro Version gespeichert."
    }
  },
  "types": {
    "id": "UUID-String; Nutzer-/actor_id numerische Konto-ID. *_id verweist auf id der bezeichneten Datei. null bedeutet kein Bezug/kein Wert.",
    "date": "YYYY-MM-DD (Datum ohne Uhrzeit).",
    "datetime": "ISO 8601 mit Z oder UTC-Offset; Anzeige und Kalendertage Europe/Berlin. Intervalle Beginn inklusive, Ende exklusive. Sommerzeitoffset beachten.",
    "minutes": "Minuten, gegebenenfalls Dezimalzahl als JSON-String; CSV netto_sekunden in Sekunden. Urlaubstage als Dezimalzahl. Keine automatische Lohnfreigabe.",
    "boolean": "JSON true/false; keine leere Zeichenfolge.",
    "json": "Original strukturierte Fachangaben und Versions-Snapshots werden mit ihren ursprünglichen Schlüsseln erhalten. Unbekannte Felder beim Import erhalten."
  },
  "relations": {
    "employee_id": "mitarbeitende.json:id",
    "terminal_id": "geraete.json:id",
    "actor_id / author_id / user_id": "verantwortliche-zugaenge.json:id",
    "entry_id": "arbeitszeiten.json:id",
    "event_id / start_event_id / end_event_id": "originalstempel.json:id",
    "decision_id": "wochenentscheidungen.json:id",
    "reverses_id": "stundenkonten.json:id",
    "group_id": "rechtliche Inhabergruppe im Vertrag; umfasst nur Verträge des berechtigten Inhabers",
    "decided_by_id": "verantwortliche-zugaenge.json:id",
    "previous_id": "nachweisverzeichnis.json:id"
  },
  "nested": {
    "breaks": "Liste von {start, end} als ISO-8601-Zeitpunkt. Tatsächliche Pausenbestätigung separat pauses_confirmed.",
    "valuation": "Anrechnungs-Snapshot der Abwesenheit; days enthält {date, minutes, ...}; null bedeutet ungeklärte Bewertung.",
    "payload / snapshot / old_values / proposed_values": "Unveränderte fachliche Version einschließlich Originalwerten und Korrekturen. Schemaangabe sofern vorhanden beachten; keine Neuberechnung im Export.",
    "settings": "Standortregeln und opening_hours je Wochentagsnummer 0=Montag bis 6=Sonntag, Intervalllisten {start,end} als lokale HH:MM; opening_exceptions datiert; Pausen, Feiertage und Exportpräferenzen.",
    "events (Anbieterwechsel)": "Chronologische Liste mit action, at, actor oder reference sowie jeweiliger Frist.",
    "terms / template / acceptance / party": "Bestell- oder Vertragswortlaut, Versionsnachweis, ausdrückliche Annahme und rechtliche Vertragspartei. Keine Zahlungs- oder Anmeldegeheimnisse."
  },
  "interface": {
    "method": "GET",
    "path": "/apotheken/{pharmacy_id}/export/v2/",
    "authentication": "Persönlicher Verwaltungszugang mit Passwort und zweitem Faktor, aktive Sitzung; Zugriff nur auf zugeordnete Standorte mit Export- und Gesundheitsdatenrecht. Inhaber-Verträge zusätzlich nur für den rechtlichen Inhaber.",
    "response": "application/zip; 302 Anmeldung/zweiter Faktor erforderlich, 404 fehlende Berechtigung oder abgelaufener Abruf. Gleichwertiger Download im Verwaltungsbereich per CSRF-geschütztem POST.",
    "cost": "Keine gesonderte Schnittstellen- oder Exportgebühr.",
    "automation": "Offener HTTPS-Endpunkt mit dokumentierten Standardformaten. Keine Weitergabe von Passwörtern/Sitzungen an fremde Anbieter. Dateien können selbst in Zielsysteme importiert werden; anwendungsbezogene Zuordnungen dort prüfen."
  },
  "excluded": [
    "Anmeldegeheimnisse (Passwörter, PINs, QR-Schlüssel, TOTP, Geräte- und Sitzungstoken)",
    "fremde Mandanten",
    "internes Betriebsmonitoring und Softwarequellcode; diese sind keine exportierbaren Kundendaten"
  ],
  "integrity": "manifest.json enthält SHA-256 aller weiteren Archivdateien; keine Signatur-/Unverändertheitsgarantie für nach Download bearbeitete Dateien."
}