-- Серверный журнал ошибок API (просмотр админом в Настройках) -- Без RLS: вставки выполняет только серверный middleware (best-effort, в т.ч. до/без auth), -- чтение — только через admin-роут с явным фильтром organization_id. CREATE TABLE IF NOT EXISTS error_logs ( id SERIAL PRIMARY KEY, organization_id INTEGER REFERENCES organizations(id) ON DELETE CASCADE, user_id INTEGER, method VARCHAR(10) NOT NULL, path TEXT NOT NULL, status_code INTEGER NOT NULL, message TEXT, created_at TIMESTAMP NOT NULL DEFAULT NOW() ); CREATE INDEX IF NOT EXISTS error_logs_org_created_idx ON error_logs(organization_id, created_at); CREATE INDEX IF NOT EXISTS error_logs_status_idx ON error_logs(status_code);