-- ---------------------------------------------------------------------------
-- O irmao no PostgreSQL de `scripts/migracao-produtos-estoque-indice-data.sql` (07/11/2026, a
-- fatia 114, ESQUEMA-QUE-SO-ACRESCENTA; o D630), para a COPIA LOCAL de pe -- o indice como o
-- `scripts/gerar-ddl-postgres.php` o emite, com o inquilino na frente. Os bancos da suite, o do
-- contrato e a producao nascem do `postgres/schema.sql`.
--
--   docker exec -i franquiabv-postgres-1 sh -c 'psql -U "$POSTGRES_USER" -d franquiabv_dev -v ON_ERROR_STOP=1' \
--     < postgres/migracao-produtos-estoque-indice-data.sql
--
-- `CONCURRENTLY`: as escritas no estoque seguem enquanto o indice nasce. Por isso FORA DE
-- TRANSACAO (o PostgreSQL recusa o `CONCURRENTLY` dentro de uma). Se ele cair no meio, fica um
-- indice INVALIDO com o nome, e o `IF NOT EXISTS` o pularia: a conferencia no fim mostra o
-- `indisvalid`, e o falso pede `DROP INDEX CONCURRENTLY` antes de rodar de novo.
--
-- IDEMPOTENTE. PARA DESFAZER: `DROP INDEX CONCURRENTLY produtos_estoque_idx_produtos_estoque_data_criacao;`
-- ---------------------------------------------------------------------------

CREATE INDEX CONCURRENTLY IF NOT EXISTS produtos_estoque_IDX_PRODUTOS_ESTOQUE_data_criacao
    ON produtos_estoque (inquilino_id, data_criacao);

SELECT c.relname AS indice, i.indisvalid AS valido, pg_get_indexdef(i.indexrelid) AS definicao
  FROM pg_index i
  JOIN pg_class c ON c.oid = i.indexrelid
 WHERE c.relname = 'produtos_estoque_idx_produtos_estoque_data_criacao';
