-- ============================================================
-- Financeiro Aviure — Fase 2a da normalização do banco
-- ============================================================
-- Este arquivo é só de REFERÊNCIA — as alterações abaixo já são
-- feitas automaticamente pelo migrate-fase2.js.
--
-- Nada aqui apaga ou altera as chaves do `kv_store`. Elas continuam
-- lá intactas como backup, e o app publicado continua funcionando
-- normalmente lendo delas (essa fase ainda é só de leitura/preparação
-- — o app só passa a ler/escrever nessas tabelas na Fase 2b).
-- ============================================================

-- Amplia a tabela `clientes` (criada na Fase 1, a partir dos nomes usados
-- em lançamentos) com os campos que só existiam na lista separada de
-- "Clientes" do CRM. Depois da migração, os dois viram uma coisa só,
-- casados por nome.
ALTER TABLE clientes ADD COLUMN IF NOT EXISTS empresa VARCHAR(255) NULL;
ALTER TABLE clientes ADD COLUMN IF NOT EXISTS email VARCHAR(255) NULL;
ALTER TABLE clientes ADD COLUMN IF NOT EXISTS telefone VARCHAR(50) NULL;
ALTER TABLE clientes ADD COLUMN IF NOT EXISTS cpf_cnpj VARCHAR(30) NULL;

CREATE TABLE IF NOT EXISTS fornecedores (
  id INT AUTO_INCREMENT PRIMARY KEY,
  nome VARCHAR(255) NOT NULL,
  tipo VARCHAR(100) NULL,          -- Terceirizados, Ferramentas, Funcionários, Sócios, Tráfego pago
  email VARCHAR(255) NULL,
  telefone VARCHAR(50) NULL,
  cpf_cnpj VARCHAR(30) NULL,
  criado_em DATETIME DEFAULT CURRENT_TIMESTAMP,
  UNIQUE KEY uniq_nome (nome)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS contratos (
  id VARCHAR(64) PRIMARY KEY,      -- mantém o id que já existia no JSON
  cliente_id INT NULL,
  nome_cliente VARCHAR(255) NULL,  -- guarda o texto original também, caso o cliente não bata com nenhum cadastro
  data_inicio DATE NULL,
  data_fim DATE NULL,
  notas TEXT NULL,
  arquivo_nome VARCHAR(255) NULL,
  arquivo_tipo VARCHAR(100) NULL,
  arquivo_dados LONGTEXT NULL,     -- base64 do PDF/imagem/Word anexado
  criado_em DATETIME DEFAULT CURRENT_TIMESTAMP,
  KEY idx_cliente (cliente_id),
  CONSTRAINT fk_contrato_cliente FOREIGN KEY (cliente_id) REFERENCES clientes(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS leads (
  id VARCHAR(64) PRIMARY KEY,
  nome VARCHAR(255) NOT NULL,
  contato VARCHAR(255) NULL,
  tipo_projeto VARCHAR(150) NULL,
  tipo_contrato VARCHAR(50) NULL,  -- Mensal/Pontual/Parcelado
  valor DECIMAL(12,2) NULL,
  origem VARCHAR(100) NULL,
  responsavel VARCHAR(50) NULL,    -- Ana/Gabriel
  status ENUM('Novo lead','Em contato','Proposta enviada','Negociação','Fechado','Perdido') NOT NULL DEFAULT 'Novo lead',
  motivo_perda VARCHAR(150) NULL,
  notas TEXT NULL,
  data_entrada DATE NULL,
  data_fechamento DATE NULL,
  comissao_valor DECIMAL(12,2) NULL,
  comissao_fornecedor_id INT NULL,
  comissao_criada TINYINT(1) NOT NULL DEFAULT 0,
  orcamento_arquivo_nome VARCHAR(255) NULL,
  orcamento_arquivo_tipo VARCHAR(100) NULL,
  orcamento_arquivo_dados LONGTEXT NULL,
  criado_em DATETIME DEFAULT CURRENT_TIMESTAMP,
  KEY idx_status (status),
  KEY idx_responsavel (responsavel),
  CONSTRAINT fk_lead_comissao_fornecedor FOREIGN KEY (comissao_fornecedor_id) REFERENCES fornecedores(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS modelos_contrato (
  id VARCHAR(64) PRIMARY KEY,
  nome VARCHAR(255) NOT NULL,
  arquivo_nome VARCHAR(255) NULL,
  arquivo_tipo VARCHAR(100) NULL,
  arquivo_dados LONGTEXT NULL,     -- base64 do .docx modelo
  criado_em DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
