You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
2.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Datenformat
Mawari speichert alles in einer JSON-Datei:
```
~/Library/Application Support/Mawari/
├── daten.json aktueller Stand, wird nach jeder Änderung (300 ms verzögert) atomar geschrieben
└── Sicherungen/
├── daten-YYYY-MM-DD.json eine Kopie pro Tag beim Start, die letzten 60 bleiben
└── vor-import-<unixzeit>.json Stand vor jedem Import
```
Das Format ist identisch mit `leben-und-dienst.json` aus dem früheren HTML-Tool. Dateien lassen sich in beide Richtungen austauschen (*Ablage › Sicherung speichern / laden*).
## Aufbau
```json
{
"app": "leben-und-dienst-uebersicht",
"version": 1,
"updated": "2026-10-22T11:00:00Z",
"tasks": [
{ "id": "vorsitz", "name": "Vorsitz", "group": "diener", "withPartner": false },
{ "id": "gespraeche", "name": "Gespräche beginnen", "group": "schulung", "withPartner": true },
{ "id": "partner", "name": "Partner", "group": "schulung", "withPartner": false, "isPartner": true }
],
"persons": [
{ "id": "p1a2b3c4d", "name": "Max Muster", "gender": "", "note": "", "tasks": ["gebet", "bibellesung"] }
],
"entries": [
{ "id": "e5f6a7b8c", "date": "2026-10-16", "task": "gespraeche", "person": "p1a2b3c4d", "partner": "p9z8y7x6w", "note": "" }
]
}
```
| Feld | Bedeutung |
|---|---|
| `tasks[].group` | `diener` (Aufgaben für Ernannte) oder `schulung` |
| `tasks[].withPartner` | Eintrag hat ein Partner-Feld |
| `tasks[].isPartner` | Sonderspalte „Partner“: zeigt, wann jemand zuletzt **als Partner** dabei war (wird aus `entries[].partner` berechnet, nicht direkt eingetragen) |
| `persons[].tasks` | Aufgaben, für die die Person freigegeben ist. Nicht freigegeben = „–“ in der Übersicht |
| `entries[].date` | `YYYY-MM-DD`; Datum in der Zukunft wird als „geplant“ angezeigt |
## Toleranz beim Laden
Fehlende Felder werden mit Standardwerten ergänzt. Fehlt `tasks` oder ist die Liste leer, gelten die 15 Standardaufgaben aus `Database.defaultTasks` (`App/Sources/Model.swift`). Pflicht sind nur `persons` und `entries`.
Wird eine Person gelöscht, verschwinden ihre Einträge; wo sie Partner war, wird das Feld geleert.

Powered by TurnKey Linux.