BEGIN;

-- Range queries por janela (tipo + finalizado_em)
CREATE INDEX IF NOT EXISTS idx_missao_tipo_concluido
    ON missao_logistica (tipo_missao_id, finalizado_em)
    WHERE finalizado_em IS NOT NULL;

-- Joins de participação por usuário e papel
CREATE INDEX IF NOT EXISTS idx_mlu_usuario_papel
    ON missao_logistica_usuarios (usuario_id, papel);

-- Itens executados em janela — base para rankings de separadores
CREATE INDEX IF NOT EXISTS idx_itens_concluido_por_em
    ON missao_logistica_itens (concluido_por, concluido_em)
    WHERE concluido_em IS NOT NULL;

-- Bipagem divergente — base para assertividade e erros de separação
CREATE INDEX IF NOT EXISTS idx_itens_quantidades
    ON missao_logistica_itens (missao_logistica_id)
    WHERE quantidade_bipada <> quantidade_esperada;

COMMIT;
