-- +goose Up -- Фаза 7: личные шаблоны серверов (AGENT.md 7.3). -- -- Шаблон — приватная сущность пользователя: он виден и используется только -- владельцем (owner_id), поэтому у таблицы нет guild_id и связанных с ним -- прав. structure_json хранит структуру в том же виде, что внутренний -- guildTemplate: роли с цветом и правами, категории и комнаты. source_guild_id -- — сервер, с которого структура снята; при удалении сервера ссылка -- обнуляется, а сам шаблон остаётся рабочим. Вместе с пользователем его -- шаблоны удаляются каскадом. CREATE TABLE guild_templates ( id INTEGER PRIMARY KEY, owner_id INTEGER NOT NULL REFERENCES users (id) ON DELETE CASCADE, name TEXT NOT NULL, description TEXT NOT NULL DEFAULT '', structure_json TEXT NOT NULL, source_guild_id INTEGER REFERENCES guilds (id) ON DELETE SET NULL, created_at TEXT NOT NULL ); CREATE INDEX guild_templates_owner_idx ON guild_templates (owner_id, id DESC); -- +goose Down DROP TABLE guild_templates;