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