24 lines
1.4 KiB
SQL
24 lines
1.4 KiB
SQL
|
|
-- +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;
|