-- Migration pour ajouter les colonnes DocuSeal à la table cddu_contracts si elles n'existent pas

-- Ajouter les colonnes pour DocuSeal
ALTER TABLE public.cddu_contracts 
ADD COLUMN IF NOT EXISTS docuseal_template_id TEXT,
ADD COLUMN IF NOT EXISTS docuseal_submission_id TEXT,
ADD COLUMN IF NOT EXISTS signature_status TEXT DEFAULT 'Non initiée',
ADD COLUMN IF NOT EXISTS signature_link TEXT,
ADD COLUMN IF NOT EXISTS updated_at TIMESTAMPTZ DEFAULT now();

-- Créer un index sur docuseal_submission_id pour les recherches
CREATE INDEX IF NOT EXISTS idx_cddu_contracts_docuseal_submission_id 
ON public.cddu_contracts(docuseal_submission_id);

-- Créer un index sur signature_status pour les filtres
CREATE INDEX IF NOT EXISTS idx_cddu_contracts_signature_status 
ON public.cddu_contracts(signature_status);

-- Ajouter un trigger pour mettre à jour updated_at automatiquement
CREATE OR REPLACE FUNCTION update_updated_at_column()
RETURNS TRIGGER AS $$
BEGIN
    NEW.updated_at = now();
    RETURN NEW;
END;
$$ language 'plpgsql';

DROP TRIGGER IF EXISTS update_cddu_contracts_updated_at ON public.cddu_contracts;
CREATE TRIGGER update_cddu_contracts_updated_at
    BEFORE UPDATE ON public.cddu_contracts
    FOR EACH ROW
    EXECUTE FUNCTION update_updated_at_column();