75 lines
2.2 KiB
SQL
75 lines
2.2 KiB
SQL
-- Table pour stocker les signatures créées par l'admin
|
|
-- (différent de user_signatures qui est 1 signature par utilisateur)
|
|
CREATE TABLE IF NOT EXISTS signatures (
|
|
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
|
|
created_by UUID REFERENCES auth.users(id) ON DELETE CASCADE,
|
|
|
|
-- Infos personnelles
|
|
first_name TEXT NOT NULL,
|
|
last_name TEXT,
|
|
job_title TEXT,
|
|
company TEXT DEFAULT 'Navier Instruments',
|
|
|
|
-- Contact
|
|
email TEXT,
|
|
phone TEXT,
|
|
mobile TEXT,
|
|
website TEXT DEFAULT 'www.navier-instruments.com',
|
|
address TEXT,
|
|
|
|
-- Images
|
|
photo_url TEXT,
|
|
logo_url TEXT DEFAULT '/preview.webp',
|
|
|
|
-- Réseaux sociaux
|
|
linkedin TEXT,
|
|
twitter TEXT,
|
|
facebook TEXT,
|
|
instagram TEXT,
|
|
|
|
-- Style
|
|
primary_color TEXT DEFAULT '#F5A623',
|
|
secondary_color TEXT DEFAULT '#1a1a2e',
|
|
accent_color TEXT DEFAULT '#F5A623',
|
|
photo_shape TEXT DEFAULT 'hexagon',
|
|
style_template TEXT DEFAULT 'geometric',
|
|
|
|
-- Bannière
|
|
banner_url TEXT,
|
|
banner_link TEXT,
|
|
|
|
-- Métadonnées
|
|
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
|
|
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
|
|
);
|
|
|
|
-- Index
|
|
CREATE INDEX IF NOT EXISTS idx_signatures_created_by ON signatures(created_by);
|
|
CREATE INDEX IF NOT EXISTS idx_signatures_name ON signatures(first_name, last_name);
|
|
|
|
-- Trigger pour updated_at
|
|
DROP TRIGGER IF EXISTS signatures_updated_at ON signatures;
|
|
CREATE TRIGGER signatures_updated_at
|
|
BEFORE UPDATE ON signatures
|
|
FOR EACH ROW
|
|
EXECUTE FUNCTION update_updated_at();
|
|
|
|
-- RLS
|
|
ALTER TABLE signatures ENABLE ROW LEVEL SECURITY;
|
|
|
|
-- Tout utilisateur authentifié peut créer des signatures
|
|
CREATE POLICY "Users peuvent creer signatures" ON signatures
|
|
FOR INSERT WITH CHECK (auth.uid() = created_by);
|
|
|
|
-- Users peuvent voir leurs propres signatures
|
|
CREATE POLICY "Users peuvent voir leurs signatures" ON signatures
|
|
FOR SELECT USING (auth.uid() = created_by);
|
|
|
|
-- Users peuvent modifier leurs propres signatures
|
|
CREATE POLICY "Users peuvent modifier leurs signatures" ON signatures
|
|
FOR UPDATE USING (auth.uid() = created_by);
|
|
|
|
-- Users peuvent supprimer leurs propres signatures
|
|
CREATE POLICY "Users peuvent supprimer leurs signatures" ON signatures
|
|
FOR DELETE USING (auth.uid() = created_by);
|