-- ============================================================
-- ATUALIZAÇÃO DO BANCO – Breno Paiva Advocacia
-- Execute este script APÓS o banco original estar instalado
-- ============================================================

-- -----------------------------------------------------------
-- Tabelas Financeiras
-- -----------------------------------------------------------

CREATE TABLE IF NOT EXISTS `fin_categorias` (
  `id`    int(11) unsigned NOT NULL AUTO_INCREMENT,
  `nome`  varchar(100) NOT NULL,
  `tipo`  enum('receita','despesa','ambos') NOT NULL DEFAULT 'ambos',
  `ativo` tinyint(1) NOT NULL DEFAULT '1',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 AUTO_INCREMENT=1;

INSERT IGNORE INTO `fin_categorias` (`nome`, `tipo`) VALUES
('Honorários Advocatícios', 'receita'),
('Êxito / Sucumbência', 'receita'),
('Consultoria Jurídica', 'receita'),
('Custas Processuais', 'despesa'),
('Diligências', 'despesa'),
('Despesas Administrativas', 'despesa'),
('Impostos e Tributos', 'despesa'),
('Pró-labore', 'despesa'),
('Distribuição de Lucros', 'despesa'),
('Despesa Fixa', 'despesa'),
('Outros', 'ambos');

CREATE TABLE IF NOT EXISTS `fin_lancamentos` (
  `id`               int(11) unsigned NOT NULL AUTO_INCREMENT,
  `tipo`             enum('receber','pagar') NOT NULL,
  `subcategoria`     varchar(50) DEFAULT NULL COMMENT 'prolabore | lucro | despesa_fixa',
  `descricao`        varchar(255) NOT NULL,
  `valor`            decimal(12,2) NOT NULL DEFAULT '0.00',
  `vencimento`       date NOT NULL,
  `data_pagamento`   date DEFAULT NULL,
  `status`           enum('pendente','pago','cancelado') NOT NULL DEFAULT 'pendente',
  `categoria`        varchar(100) DEFAULT NULL,
  `client_id`        int(11) DEFAULT NULL,
  `case_id`          int(11) DEFAULT NULL,
  `responsavel_id`   int(11) DEFAULT NULL,
  `observacao`       text DEFAULT NULL,
  `forma_pagamento`  varchar(100) DEFAULT NULL,
  `numero_documento` varchar(100) DEFAULT NULL,
  `created_by`       int(11) DEFAULT NULL,
  `created_at`       datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at`       datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `idx_tipo_status` (`tipo`,`status`),
  KEY `idx_vencimento`  (`vencimento`),
  KEY `idx_client_id`   (`client_id`),
  KEY `idx_subcategoria`(`subcategoria`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 AUTO_INCREMENT=1;

CREATE TABLE IF NOT EXISTS `fin_recibos` (
  `id`               int(11) unsigned NOT NULL AUTO_INCREMENT,
  `numero`           varchar(25) NOT NULL UNIQUE,
  `lancamento_id`    int(11) DEFAULT NULL,
  `pagador_nome`     varchar(255) NOT NULL,
  `pagador_cpf_cnpj` varchar(20) DEFAULT NULL,
  `pagador_endereco` varchar(255) DEFAULT NULL,
  `recebedor_nome`   varchar(255) NOT NULL,
  `recebedor_oab`    varchar(50) DEFAULT NULL,
  `valor`            decimal(12,2) NOT NULL,
  `valor_extenso`    varchar(255) NOT NULL,
  `referente`        text NOT NULL,
  `case_id`          int(11) DEFAULT NULL,
  `data_emissao`     date NOT NULL,
  `local_emissao`    varchar(100) DEFAULT NULL,
  `created_by`       int(11) DEFAULT NULL,
  `created_at`       datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `idx_lancamento_id` (`lancamento_id`),
  KEY `idx_case_id`       (`case_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 AUTO_INCREMENT=1;

CREATE TABLE IF NOT EXISTS `fin_comissoes` (
  `id`              int(11) unsigned NOT NULL AUTO_INCREMENT,
  `lancamento_id`   int(11) NOT NULL,
  `advogado_id`     int(11) NOT NULL,
  `percentual`      decimal(5,2) NOT NULL DEFAULT '0.00',
  `valor_comissao`  decimal(12,2) NOT NULL DEFAULT '0.00',
  `status`          enum('pendente','pago') NOT NULL DEFAULT 'pendente',
  `data_pagamento`  date DEFAULT NULL,
  `observacao`      text DEFAULT NULL,
  `created_at`      datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `idx_lancamento` (`lancamento_id`),
  KEY `idx_advogado`   (`advogado_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 AUTO_INCREMENT=1;

-- -----------------------------------------------------------
-- Tabelas PJe Comunica – Diário Oficial
-- -----------------------------------------------------------

CREATE TABLE IF NOT EXISTS `pje_advogados` (
  `id`         int(11) unsigned NOT NULL AUTO_INCREMENT,
  `nome`       varchar(255) NOT NULL,
  `oab`        varchar(20) NOT NULL,
  `uf_oab`     char(2) NOT NULL,
  `ativo`      tinyint(1) NOT NULL DEFAULT '1',
  `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_oab_uf` (`oab`,`uf_oab`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 AUTO_INCREMENT=1;

CREATE TABLE IF NOT EXISTS `pje_publicacoes` (
  `id`                    int(11) unsigned NOT NULL AUTO_INCREMENT,
  `advogado_id`           int(11) NOT NULL,
  `comunicacao_id`        varchar(100) DEFAULT NULL,
  `numero_processo`       varchar(60) DEFAULT NULL,
  `data_disponibilizacao` datetime DEFAULT NULL,
  `tipo_comunicacao`      varchar(100) DEFAULT NULL,
  `destinatario`          varchar(255) DEFAULT NULL,
  `orgao_julgador`        varchar(255) DEFAULT NULL,
  `texto`                 longtext DEFAULT NULL,
  `lida`                  tinyint(1) NOT NULL DEFAULT '0',
  `data_leitura`          datetime DEFAULT NULL,
  `created_at`            datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `idx_advogado`   (`advogado_id`),
  KEY `idx_comunicacao`(`comunicacao_id`),
  KEY `idx_data`       (`data_disponibilizacao`),
  KEY `idx_lida`       (`lida`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 AUTO_INCREMENT=1;

-- Fim do script de atualização
