3135402dd7
Adds missing indexes identified by comprehensive audit:
users: created_at, last_login, role, (is_banned, role)
test_sessions: started_at, finished_at, subject_id, (status, finished_at DESC)
notifications: (user_id, created_at DESC) — previous idx was on is_read, not date
admin_audit_log: target, action, (action, created_at DESC)
classroom_*: session_id FK indexes — prevents full-table scan on CASCADE
DELETE (muted, attendance, invites, notes, draw_permissions, hands)
+ chat (session_id, created_at)
submissions: (student_id, submitted_at DESC) — gradebook timeline
questions: difficulty — exam builder filter
Skipped users.email — UNIQUE constraint already provides equality lookup.
Expected impact: 30-60% on admin overview / analytics, 10-20% on
notification/session timelines. CASCADE DELETE of classroom_sessions
no longer triggers full-table scans on 6 child tables.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>