-- +goose Up
-- +goose StatementBegin

-- Novos campos em produtos
ALTER TABLE produtos
  ADD COLUMN IF NOT EXISTS tipo_peca   TEXT NOT NULL DEFAULT '',
  ADD COLUMN IF NOT EXISTS genero      TEXT NOT NULL DEFAULT '',
  ADD COLUMN IF NOT EXISTS fornecedor  TEXT NOT NULL DEFAULT '',
  ADD COLUMN IF NOT EXISTS cor_id      UUID REFERENCES estoque_categorias(id) ON DELETE SET NULL;

-- Novos campos em estoque_categorias
ALTER TABLE estoque_categorias
  ADD COLUMN IF NOT EXISTS fabricante  TEXT NOT NULL DEFAULT '';

-- Novos campos em movimentos_estoque (fornecedor para rastreio de NF/compra)
ALTER TABLE movimentos_estoque
  ADD COLUMN IF NOT EXISTS fornecedor  TEXT NOT NULL DEFAULT '';

-- +goose StatementEnd

-- +goose Down
-- +goose StatementBegin
ALTER TABLE produtos              DROP COLUMN IF EXISTS tipo_peca, DROP COLUMN IF EXISTS genero, DROP COLUMN IF EXISTS fornecedor, DROP COLUMN IF EXISTS cor_id;
ALTER TABLE estoque_categorias    DROP COLUMN IF EXISTS fabricante;
ALTER TABLE movimentos_estoque    DROP COLUMN IF EXISTS fornecedor;
-- +goose StatementEnd

-- +goose StatementBegin
-- Flexibilizar o CHECK de tipo para suportar 'produto' (categorias livres de produto/uniforme)
ALTER TABLE estoque_categorias DROP CONSTRAINT IF EXISTS estoque_categorias_tipo_check;
ALTER TABLE estoque_categorias
  ADD CONSTRAINT estoque_categorias_tipo_check
  CHECK (tipo IN ('materia_prima','insumo','cor','fabricante','tecido','tipo_servico','modelo_peca','acabamento','produto'));
-- +goose StatementEnd
