-- Migration: Rendre period_month nullable pour le mode manual
-- Date: 2025-11-28
-- Description: En mode manual, period_month n'est pas requis car les paies peuvent être de différents mois

-- Rendre la colonne period_month nullable
ALTER TABLE salary_transfers 
ALTER COLUMN period_month DROP NOT NULL;

-- Ajouter un commentaire pour documenter
COMMENT ON COLUMN salary_transfers.period_month IS 
'Mois de la période (YYYY-MM-DD). NULL en mode manual, requis en mode period.';

-- Ajouter une contrainte de validation pour s'assurer de la cohérence
-- En mode period: period_month doit être renseigné
-- En mode manual: period_month doit être NULL
ALTER TABLE salary_transfers
ADD CONSTRAINT check_period_month_by_mode 
CHECK (
  (selection_mode = 'period' AND period_month IS NOT NULL) OR
  (selection_mode = 'manual' AND period_month IS NULL)
);
