CREATE TABLE invoices (
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,
invoice_no TEXT NOT NULL,
-- z. B. "2026-0042" — fortlaufend pro Trainer
category TEXT NOT NULL,
-- 'lesson' | 'card' | 'video' | 'bulk'
lines TEXT NOT NULL,
-- JSON: [{ service,
when,
gross_cents }]
total_cents INTEGER NOT NULL,
status TEXT NOT NULL DEFAULT 'open',
-- 'open' | 'paid' | 'cancelled'
issued_at TEXT NOT NULL DEFAULT (datetime('now')),
paid_at TEXT,
archived_at TIMESTAMP NULL
)