Query
CREATE TABLE audit_log (
id INTEGER PRIMARY KEY AUTOINCREMENT,
ts TEXT NOT NULL DEFAULT (datetime('now')),
actor_kind TEXT,
-- 'trainer' | 'student' | 'system'
actor_id INTEGER,
action TEXT NOT NULL,
-- 'booking_created',
'card_purchased',
etc.
entity_type TEXT,
entity_id INTEGER,
meta TEXT -- JSON-Stringified
)