40 lines
1.8 KiB
SQL
40 lines
1.8 KiB
SQL
|
|
-- Adicionar campos à tabela de cartões de crédito
|
|
ALTER TABLE cartoes_credito
|
|
ADD COLUMN IF NOT EXISTS limite_total DECIMAL(10,2),
|
|
ADD COLUMN IF NOT EXISTS dia_vencimento INTEGER DEFAULT 10,
|
|
ADD COLUMN IF NOT EXISTS melhor_dia_compra INTEGER DEFAULT 5,
|
|
ADD COLUMN IF NOT EXISTS bandeira TEXT,
|
|
ADD COLUMN IF NOT EXISTS banco TEXT;
|
|
|
|
-- Criar tabela para faturas dos cartões
|
|
CREATE TABLE IF NOT EXISTS faturas_cartao (
|
|
id UUID NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY,
|
|
cartao_id UUID REFERENCES cartoes_credito(id) ON DELETE CASCADE,
|
|
mes INTEGER NOT NULL,
|
|
ano INTEGER NOT NULL,
|
|
valor_total DECIMAL(10,2) DEFAULT 0,
|
|
data_vencimento DATE,
|
|
status_pagamento TEXT DEFAULT 'pendente' CHECK (status_pagamento IN ('pendente', 'pago', 'vencido')),
|
|
data_pagamento DATE,
|
|
login TEXT,
|
|
created_at TIMESTAMP WITH TIME ZONE DEFAULT now(),
|
|
UNIQUE(cartao_id, mes, ano)
|
|
);
|
|
|
|
-- Atualizar tabela de despesas para incluir parcelas
|
|
ALTER TABLE despesas_cartao
|
|
ADD COLUMN IF NOT EXISTS parcela_atual INTEGER DEFAULT 1,
|
|
ADD COLUMN IF NOT EXISTS total_parcelas INTEGER DEFAULT 1,
|
|
ADD COLUMN IF NOT EXISTS valor_original DECIMAL(10,2),
|
|
ADD COLUMN IF NOT EXISTS despesa_pai_id UUID REFERENCES despesas_cartao(id),
|
|
ADD COLUMN IF NOT EXISTS status_conciliacao TEXT DEFAULT 'pendente' CHECK (status_conciliacao IN ('pendente', 'conciliado', 'divergente')),
|
|
ADD COLUMN IF NOT EXISTS mes_fatura INTEGER,
|
|
ADD COLUMN IF NOT EXISTS ano_fatura INTEGER,
|
|
ADD COLUMN IF NOT EXISTS observacoes TEXT;
|
|
|
|
-- Criar índices para melhor performance
|
|
CREATE INDEX IF NOT EXISTS idx_faturas_cartao_mes_ano ON faturas_cartao(cartao_id, mes, ano);
|
|
CREATE INDEX IF NOT EXISTS idx_despesas_cartao_fatura ON despesas_cartao(cartao_id, mes_fatura, ano_fatura);
|
|
CREATE INDEX IF NOT EXISTS idx_despesas_cartao_pai ON despesas_cartao(despesa_pai_id);
|