-- Pripomienky k newslettru cez zdieľaný odkaz -- -- Spustenie na existujúcom projekte: Supabase Dashboard → SQL Editor → vložiť tento súbor → Run. -- (Pre novú inštaláciu je to už súčasťou supabase/schema.sql.) Idempotentné – dá sa spustiť opakovane. -- Odkaz na pripomienky: snímka newslettra v čase vytvorenia / poslednej aktualizácie CREATE TABLE IF NOT EXISTS reviews ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), token TEXT NOT NULL UNIQUE, -- časť odkazu /review/ template_id UUID REFERENCES templates(id) ON DELETE CASCADE, title TEXT NOT NULL DEFAULT '', snapshot JSONB NOT NULL DEFAULT '{}'::jsonb, -- kampaň (moduly) v čase zdieľania created_at TIMESTAMPTZ NOT NULL DEFAULT now(), updated_at TIMESTAMPTZ NOT NULL DEFAULT now() ); CREATE INDEX IF NOT EXISTS idx_reviews_template ON reviews(template_id); -- Pripomienky: komentár (špendlík), text priamo v newslettri, kresba -- Poloha je ukotvená k modulu: x = podiel šírky (0–1), y = px od vrchu modulu CREATE TABLE IF NOT EXISTS review_comments ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), review_id UUID NOT NULL REFERENCES reviews(id) ON DELETE CASCADE, kind TEXT NOT NULL CHECK (kind IN ('comment', 'text', 'drawing')), module_id TEXT NOT NULL, x DOUBLE PRECISION NOT NULL DEFAULT 0, y DOUBLE PRECISION NOT NULL DEFAULT 0, path JSONB, -- kresba: [[x, y], ...] v rovnakých súradniciach text TEXT NOT NULL DEFAULT '', color TEXT NOT NULL DEFAULT '#e2001a', author TEXT NOT NULL DEFAULT '', done BOOLEAN NOT NULL DEFAULT false, created_at TIMESTAMPTZ NOT NULL DEFAULT now() ); CREATE INDEX IF NOT EXISTS idx_review_comments_review ON review_comments(review_id, created_at); -- Interný nástroj: prístup cez anon kľúč (rovnako ako ostatné tabuľky) ALTER TABLE reviews ENABLE ROW LEVEL SECURITY; ALTER TABLE review_comments ENABLE ROW LEVEL SECURITY; DROP POLICY IF EXISTS "Allow public all on reviews" ON reviews; DROP POLICY IF EXISTS "Allow public all on review_comments" ON review_comments; CREATE POLICY "Allow public all on reviews" ON reviews FOR ALL USING (true) WITH CHECK (true); CREATE POLICY "Allow public all on review_comments" ON review_comments FOR ALL USING (true) WITH CHECK (true);