-- +goose Up
-- +goose StatementBegin

-- ─────────────────────────────────────────────────────────────────────────────
-- PEDIDOS: novos campos para o módulo de pedidos
-- ─────────────────────────────────────────────────────────────────────────────

-- Sequence para número OS por tenant (global, único por banco)
CREATE SEQUENCE IF NOT EXISTS pedidos_numero_os_seq START 1;

ALTER TABLE pedidos
    ADD COLUMN IF NOT EXISTS numero_os          INTEGER  NOT NULL DEFAULT nextval('pedidos_numero_os_seq'),
    ADD COLUMN IF NOT EXISTS previsao_entrega   DATE,
    ADD COLUMN IF NOT EXISTS situacao           TEXT     NOT NULL DEFAULT 'em_andamento'
                                                CHECK (situacao IN ('em_andamento', 'em_producao')),
    ADD COLUMN IF NOT EXISTS forma_pagamento    TEXT     NOT NULL DEFAULT '',
    ADD COLUMN IF NOT EXISTS condicao_pagamento TEXT     NOT NULL DEFAULT '',
    ADD COLUMN IF NOT EXISTS parcelas           INTEGER  NOT NULL DEFAULT 1,
    ADD COLUMN IF NOT EXISTS vendedor_id        UUID     REFERENCES users(id) ON DELETE SET NULL,
    ADD COLUMN IF NOT EXISTS vendedor_nome      TEXT     NOT NULL DEFAULT '';

-- Índice único para OS (busca rápida por tenant)
CREATE UNIQUE INDEX IF NOT EXISTS idx_pedidos_numero_os ON pedidos (tenant_id, numero_os);

-- ─────────────────────────────────────────────────────────────────────────────
-- PEDIDO_ITENS: campos para grade, modelo, tecido, cor, serviço
-- ─────────────────────────────────────────────────────────────────────────────
ALTER TABLE pedido_itens
    ADD COLUMN IF NOT EXISTS modelo             TEXT     NOT NULL DEFAULT '',
    ADD COLUMN IF NOT EXISTS tipo_tecido        TEXT     NOT NULL DEFAULT '',
    ADD COLUMN IF NOT EXISTS tipo_servico       TEXT     NOT NULL DEFAULT '',
    ADD COLUMN IF NOT EXISTS cor_modelo         TEXT     NOT NULL DEFAULT '',
    ADD COLUMN IF NOT EXISTS cor_codigo         TEXT     NOT NULL DEFAULT '',
    ADD COLUMN IF NOT EXISTS cor_hex            TEXT     NOT NULL DEFAULT '',
    ADD COLUMN IF NOT EXISTS fabricante         TEXT     NOT NULL DEFAULT '',
    ADD COLUMN IF NOT EXISTS unidade            TEXT     NOT NULL DEFAULT 'un',
    ADD COLUMN IF NOT EXISTS tamanhos           JSONB    NOT NULL DEFAULT '{}',
    ADD COLUMN IF NOT EXISTS imagem_layout_url  TEXT     NOT NULL DEFAULT '';

-- +goose StatementEnd

-- +goose Down
-- +goose StatementBegin
ALTER TABLE pedidos
    DROP COLUMN IF EXISTS numero_os,
    DROP COLUMN IF EXISTS previsao_entrega,
    DROP COLUMN IF EXISTS situacao,
    DROP COLUMN IF EXISTS forma_pagamento,
    DROP COLUMN IF EXISTS condicao_pagamento,
    DROP COLUMN IF EXISTS parcelas,
    DROP COLUMN IF EXISTS vendedor_id,
    DROP COLUMN IF EXISTS vendedor_nome;

DROP SEQUENCE IF EXISTS pedidos_numero_os_seq;

ALTER TABLE pedido_itens
    DROP COLUMN IF EXISTS modelo,
    DROP COLUMN IF EXISTS tipo_tecido,
    DROP COLUMN IF EXISTS tipo_servico,
    DROP COLUMN IF EXISTS cor_modelo,
    DROP COLUMN IF EXISTS cor_codigo,
    DROP COLUMN IF EXISTS cor_hex,
    DROP COLUMN IF EXISTS fabricante,
    DROP COLUMN IF EXISTS unidade,
    DROP COLUMN IF EXISTS tamanhos,
    DROP COLUMN IF EXISTS imagem_layout_url;
-- +goose StatementEnd
