-- =====================================================
-- Migration 001: Tabela de referência de localizações WMS
-- Feature: alocacao-wms
-- Data: 2026-06-08
-- =====================================================
--
-- Catálogo consultado na bipagem (AC3.5/4.4). Apenas leitura pela feature —
-- populada por processo externo (ETL/ERP). Sem gestão de layout de armazém
-- nesta entrega (out of scope).
--
-- Block columns são preenchidas pelo framework via customerControl;
-- declaradas sem DEFAULT (feedback_block_columns).
-- =====================================================

CREATE TABLE wms_localizacoes (
    id          SERIAL PRIMARY KEY,

    -- Código físico bipável (corredor-prateleira-posição)
    codigo      VARCHAR(64) NOT NULL,
    descricao   VARCHAR(255),

    -- 1 = ativo, 0 = inativo (soft-delete pelo processo externo)
    ativo       SMALLINT NOT NULL DEFAULT 1,

    -- Block padrão Galaxia (preenchido pelo framework; sem DEFAULT)
    data_cadastro       TIMESTAMP WITHOUT TIME ZONE DEFAULT NOW(),
    block_filial_id     INTEGER,
    block_usuario_id    INTEGER,
    block_empresa_id    INTEGER,
    block               INTEGER
);

-- Código único por tenant (block = tenant_id)
CREATE UNIQUE INDEX uniq_wms_localizacoes_codigo
    ON wms_localizacoes (codigo, block);

-- Varredura por status ativo dentro do tenant
CREATE INDEX idx_wms_localizacoes_ativo
    ON wms_localizacoes (ativo, block);
