-- 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);
