-- 055_user_custom_role.sql -- Phase C, Stage C-2 — присвоение кастомной роли пользователю. -- users.role в канон-схеме имеет CHECK (admin/teacher/student/free_student) и -- безопасно пересобрать users нельзя (FK многих таблиц, миграции в транзакции). -- Поэтому кастомную роль храним отдельной колонкой: users.role = функциональная -- БАЗА (встроенная роль для веток контроллеров и резолва прав), users.custom_role -- = имя кастомной роли (для гейтов через effectiveRoles + метка + C-3 пер-ролевые права). -- NULL = обычная встроенная роль. ALTER TABLE users ADD COLUMN custom_role TEXT;