feat: pripomienky cez zdielany odkaz; predvolena poloha stitkov a pouzit na vsetky
Pripomienky: - odkaz /review/<token> so snimkou newslettra: nic sa neda upravit, da sa komentovat (spendlik), pisat text do newslettra a kreslit; meno autora sa pamata - pripomienky su ukotvene k modulu a ulozene k odkazu - vidi ich kazdy s odkazom - v editore: tlacidlo Pripomienky (pocet otvorenych), vytvorenie a kopirovanie odkazu, aktualizacia nahladu v odkaze, zoznam pripomienok, Hotovo a mazanie; pripomienky sa zobrazuju aj priamo na platne a daju sa tam oznacit ako hotove - supabase/migrations/002_reviews.sql (tabulky reviews, review_comments) - pismo Poppins v layoute (nahlad vernejsi e-mailu) Stitky predajni: - predvolena poloha -15 vodorovne / +5 zvisle od praveho horneho rohu pozadia cenovky - tlacidlo Polohu stitkov pouzit na vsetky produkty Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
b0a050bd12
commit
cfacf2474b
13 files changed
+1162
-10
No files matched your search
@@ -0,0 +1,42 @@
|
||||
-- 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/<token>
|
||||
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);
|
||||
Reference in new issue
Block a user