-- Migration: Ajouter la colonne transfer_done_at à la table payslips
-- Date: 2025-11-02
-- Description: Cette colonne permet de tracer la date exacte où un virement a été marqué comme effectué

-- Ajouter la colonne transfer_done_at
ALTER TABLE payslips 
ADD COLUMN IF NOT EXISTS transfer_done_at TIMESTAMPTZ;

-- Commentaire sur la colonne
COMMENT ON COLUMN payslips.transfer_done_at IS 
'Date et heure où le virement a été marqué comme effectué (transfer_done = true). NULL si non encore viré.';

-- Mettre à jour les enregistrements existants où transfer_done = true
-- On utilise updated_at comme valeur par défaut pour les anciens enregistrements
UPDATE payslips 
SET transfer_done_at = updated_at 
WHERE transfer_done = true AND transfer_done_at IS NULL;

-- Index pour optimiser les requêtes sur les virements récents
CREATE INDEX IF NOT EXISTS idx_payslips_transfer_done_at 
ON payslips(transfer_done_at) 
WHERE transfer_done_at IS NOT NULL;

-- Index composite pour les requêtes filtrées par organisation
CREATE INDEX IF NOT EXISTS idx_payslips_org_transfer_done_at 
ON payslips(organization_id, transfer_done_at) 
WHERE transfer_done_at IS NOT NULL;
