CREATE TABLE bookings (
id INTEGER PRIMARY KEY AUTOINCREMENT,
trainer_id INTEGER NOT NULL REFERENCES trainers(id) ON DELETE CASCADE,
student_id INTEGER NOT NULL REFERENCES students(id) ON DELETE CASCADE,
service_key TEXT NOT NULL,
-- 'einzel50',
'platz',
'zehnerkarte',
etc.
starts_at TEXT NOT NULL,
-- ISO-8601 datetime
duration_min INTEGER NOT NULL,
card_id INTEGER REFERENCES cards(id),
-- NULL = ohne Karte abgerechnet
invoice_id INTEGER REFERENCES invoices(id),
video_analysis TEXT,
-- JSON: { status,
swingCount,
requestedAt,
... }
notes TEXT,
-- Trainer-Notiz aus Nachbereitung
status TEXT NOT NULL DEFAULT 'confirmed',
-- 'confirmed' | 'cancelled' | 'completed'
created_at TEXT NOT NULL DEFAULT (datetime('now')),
protocol TEXT,
protocol_approved_at TEXT
)