-- =============================================================================
-- Migration: 20260417000002_dev_tables_ordem
-- Adiciona coluna `ordem` em dev_auditoria_items e dev_competitor_features
-- (pra suportar reordenação por drag-and-drop na UI).
-- =============================================================================

-- dev_auditoria_items
ALTER TABLE public.dev_auditoria_items
  ADD COLUMN IF NOT EXISTS ordem INTEGER NOT NULL DEFAULT 0;

CREATE INDEX IF NOT EXISTS idx_dev_auditoria_items_ordem ON public.dev_auditoria_items(ordem);

-- Popular ordem existente (status + id pra evitar colisão)
UPDATE public.dev_auditoria_items SET ordem = sub.rn
FROM (
  SELECT id, ROW_NUMBER() OVER (
    ORDER BY
      CASE status
        WHEN 'aberto' THEN 1
        WHEN 'em_analise' THEN 2
        WHEN 'resolvido' THEN 3
        WHEN 'wontfix' THEN 4
        WHEN 'duplicado' THEN 5
        ELSE 6
      END,
      id
  ) AS rn
  FROM public.dev_auditoria_items
) sub
WHERE public.dev_auditoria_items.id = sub.id;

-- dev_competitor_features
ALTER TABLE public.dev_competitor_features
  ADD COLUMN IF NOT EXISTS ordem INTEGER NOT NULL DEFAULT 0;

CREATE INDEX IF NOT EXISTS idx_dev_competitor_features_ordem
  ON public.dev_competitor_features(competitor_id, ordem);

-- Popular ordem existente (por competitor + categoria + id)
UPDATE public.dev_competitor_features SET ordem = sub.rn
FROM (
  SELECT id, ROW_NUMBER() OVER (
    PARTITION BY competitor_id
    ORDER BY COALESCE(categoria, 'zzz'), id
  ) AS rn
  FROM public.dev_competitor_features
) sub
WHERE public.dev_competitor_features.id = sub.id;
