-- Migration v3 : stockage date/heure dans le bon format pour permettre le tri -- Ajoute : -- jour_text text -- fallback quand la cellule "Date" contient du texte libre -- (ex: "A partir du 14/01", "Mercredi / Jeudi", "15/04 - 16/04") -- heure_t time -- heure typée pour tri SQL/JS -- Backfill heure_t depuis la colonne heure existante (formats "9H00", "12h30", "9:00"). -- Idempotent. ALTER TABLE public.patch_planning_import_rows ADD COLUMN IF NOT EXISTS jour_text text, ADD COLUMN IF NOT EXISTS heure_t time; -- Backfill heure_t depuis l'existant (uniquement si pas déjà rempli) UPDATE public.patch_planning_import_rows SET heure_t = CASE -- "9H00", "12h30", "14H00" WHEN heure ~* '^[0-9]{1,2}[Hh][0-9]{2}$' THEN ((regexp_replace(heure, '[Hh]', ':')) || ':00')::time -- "9:00", "14:30" WHEN heure ~ '^[0-9]{1,2}:[0-9]{2}$' THEN (heure || ':00')::time -- "9:00:00" WHEN heure ~ '^[0-9]{1,2}:[0-9]{2}:[0-9]{2}$' THEN heure::time ELSE NULL END WHERE heure IS NOT NULL AND heure_t IS NULL; CREATE INDEX IF NOT EXISTS idx_pp_rows_jour_heure ON public.patch_planning_import_rows(jour, heure_t);