-- ============================================================
-- ADICIONAR CAMPO MODELO NA TABELA VARIÁVEL
-- ============================================================
-- Campo para definir o tipo de modelo da variável: 'meta' ou 'orçamento'
-- Isso permite adaptar a linguagem do dashboard conforme o tipo

ALTER TABLE back.variavel 
ADD COLUMN IF NOT EXISTS modelo VARCHAR(20);

-- Adicionar constraint para garantir valores válidos
ALTER TABLE back.variavel 
DROP CONSTRAINT IF EXISTS ck_variavel_modelo;

ALTER TABLE back.variavel 
ADD CONSTRAINT ck_variavel_modelo CHECK (modelo IN ('meta', 'orcamento'));

-- Comentário
COMMENT ON COLUMN back.variavel.modelo IS 'Modelo de variável: meta ou orcamento. Define a linguagem usada no dashboard.';

-- Atualizar registros existentes para ter um valor padrão (orçamento)
UPDATE back.variavel 
SET modelo = 'orcamento' 
WHERE modelo IS NULL;

-- Index para performance (opcional)
CREATE INDEX IF NOT EXISTS idx_variavel_modelo ON back.variavel(modelo);

-- Verificar estrutura
SELECT 
  column_name, 
  data_type, 
  character_maximum_length,
  is_nullable
FROM information_schema.columns 
WHERE table_schema = 'back' 
  AND table_name = 'variavel'
ORDER BY ordinal_position;
