-- Tabela de Contas a Receber
CREATE TABLE IF NOT EXISTS contas_receber (
    id INT AUTO_INCREMENT PRIMARY KEY,
    descricao VARCHAR(255) NOT NULL COMMENT 'Descrição da conta',
    valor DECIMAL(10,2) NOT NULL COMMENT 'Valor da conta',
    data_vencimento DATE NOT NULL COMMENT 'Data de vencimento',
    cliente VARCHAR(255) NOT NULL COMMENT 'Nome do cliente',
    documento VARCHAR(100) NULL COMMENT 'Número do documento (nota fiscal, duplicata, etc)',
    observacoes TEXT NULL COMMENT 'Observações gerais',
    status ENUM('pendente', 'recebido', 'vencido') DEFAULT 'pendente' COMMENT 'Status da conta',
    
    -- Campos de recebimento
    data_recebimento DATE NULL COMMENT 'Data do recebimento',
    valor_recebido DECIMAL(10,2) NULL COMMENT 'Valor efetivamente recebido',
    forma_recebimento VARCHAR(50) NULL COMMENT 'Forma de recebimento (dinheiro, cartão, pix, etc)',
    observacoes_recebimento TEXT NULL COMMENT 'Observações do recebimento',
    
    -- Campos de auditoria
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    
    -- Índices
    INDEX idx_data_vencimento (data_vencimento),
    INDEX idx_status (status),
    INDEX idx_cliente (cliente),
    INDEX idx_documento (documento)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Contas a Receber';