Dans l'éditeur SQL de Supabase (SQL Editor → New query), exécutez ce script :
-- Table des messages Ziwall
CREATE TABLE IF NOT EXISTS messages (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
content TEXT NOT NULL CHECK (char_length(content) BETWEEN 4 AND 365),
position_x BIGINT NOT NULL,
longitude DOUBLE PRECISION NOT NULL,
latitude DOUBLE PRECISION,
language VARCHAR(5) DEFAULT 'fr',
font_style JSONB NOT NULL,
created_at TIMESTAMPTZ DEFAULT now(),
fingerprint VARCHAR(64)
);
-- Index spatial pour les requêtes de zone
CREATE INDEX IF NOT EXISTS idx_msg_zone
ON messages (position_x, created_at DESC);
-- Politique RLS : lecture publique, écriture publique
ALTER TABLE messages ENABLE ROW LEVEL SECURITY;
CREATE POLICY "public_read" ON messages FOR SELECT USING (true);
CREATE POLICY "public_write" ON messages FOR INSERT WITH CHECK (true);
-- Activer Realtime sur la table
ALTER PUBLICATION supabase_realtime ADD TABLE messages;