// Package calendar ist ein eigenständiges Modul, kein Kernbestandteil: // CalDAV für Termine und Aufgaben. Es importiert nichts aus files, sharing // oder admin – nur auth und acl, wie jeder andere Bereich auch. Ist es // abgeschaltet, gibt es keine Route und keinen Menüpunkt; die Tabellen // bleiben dann einfach ungenutzt liegen. Siehe kalender-plan.md. package calendar import ( "time" "github.com/google/uuid" ) // Calendar ist eine Sammlung von Terminen/Aufgaben – das, was ein Client als // einen Kalender in seiner Liste zeigt. type Calendar struct { ID uuid.UUID `json:"id"` OwnerID uuid.UUID `json:"owner_id"` Name string `json:"name"` Color string `json:"color"` Description string `json:"description"` SupportsTodo bool `json:"supports_todo"` CTag int64 `json:"ctag"` CreatedAt time.Time `json:"created_at"` } // Object ist ein einzelner Termin oder eine Aufgabe. Data ist die // vollständige .ics-Datei, unverändert wie vom Client geschickt – siehe // kalender-plan.md, Abschnitt "Felder". type Object struct { ID uuid.UUID `json:"id"` CalendarID uuid.UUID `json:"calendar_id"` UID string `json:"uid"` Component string `json:"component"` // "VEVENT" | "VTODO" Data string `json:"-"` ETag string `json:"etag"` DTStart *time.Time `json:"dtstart,omitempty"` DTEnd *time.Time `json:"dtend,omitempty"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` }