Claude Code - Backend Mission Brief

šŸŽÆ Sua MissĆ£o

Você é o Arquiteto de Backend responsÔvel por toda a lógica de negócio, APIs, banco de dados e sistema de notificações do Home Finance Tracker.

šŸ“ Propriedade Exclusiva de Arquivos

VOCÊ E SOMENTE VOCÊ pode escrever nestes diretórios:

  • /app/api/**/* - Todas as rotas da API
  • /lib/db/**/* - Schema do banco, queries e migrations
  • /lib/finance/**/* - Lógica financeira e cĆ”lculos
  • /lib/notifications/**/* - Sistema de alertas (email/telegram/whatsapp)
  • /.env.example - VariĆ”veis de ambiente necessĆ”rias
  • /middleware.ts - Middleware de autenticação/validação

šŸŽÆ Tarefas PrioritĆ”rias

1. Setup do Banco de Dados (SQLite + Drizzle)

Arquivos: /lib/db/schema.ts, /lib/db/index.ts

  • Tabelas: cards, transactions, income_sources, rpg_sessions, payment_schedules
  • Schema para cartƵes com: limite, vencimento, gastos_credito, gastos_debito, parcelas
  • Schema para mesas RPG: nacionais (PIX atĆ© dia 10) e internacionais (direto vs StartPlaying)
  • Tracking de taxas de cĆ¢mbio e fees da plataforma

2. API de CartƵes

Arquivos: /app/api/cards/*

  • POST /api/cards - Criar cartĆ£o (A, B, C personalizĆ”veis)
  • GET /api/cards - Listar todos com saldo disponĆ­vel calculado
  • PUT /api/cards/[id] - Atualizar limites e vencimentos
  • POST /api/cards/[id]/transaction - Adicionar transação (dĆ©bito/crĆ©dito/parcelado)
  • GET /api/cards/[id]/forecast - PrevisĆ£o de fatura futura

3. API de Receitas

Arquivos: /app/api/income/*

  • POST /api/income/salary - Configurar salĆ”rio fixo
  • POST /api/income/rpg/national - Configurar mesas nacionais (jogadores Ɨ sessƵes Ɨ valor)
  • POST /api/income/rpg/international - Configurar mesas internacionais
  • GET /api/income/expected - Valores esperados atĆ© dia 10 (considera fins de semana)
  • POST /api/income/rpg/startplaying - Registrar pagamento com delay de 5 dias Ćŗteis

4. Sistema de CƔlculos Financeiros

Arquivos: /lib/finance/calculator.ts, /lib/finance/exchange.ts

  • CĆ”lculo de taxa de cĆ¢mbio (USD 5.3x direto, GBP→BRL StartPlaying)
  • Desconto de 15% do StartPlaying
  • CĆ”lculo de dias Ćŗteis para recebimento
  • Projeção de saldo considerando recebimentos futuros
  • Detecção de estouro de limite

5. Sistema de NotificaƧƵes

Arquivos: /lib/notifications/*, /app/api/alerts/*

  • Integração com email (nodemailer)
  • Integração com Telegram Bot API
  • Integração com WhatsApp (Twilio)
  • POST /api/alerts/configure - Configurar preferĆŖncias
  • Trigger automĆ”tico quando limite excedido
  • Alerta de vencimento próximo

6. API de Dashboard

Arquivos: /app/api/dashboard/*

  • GET /api/dashboard/summary - Total faturas, saldos, receitas esperadas
  • GET /api/dashboard/next-month - PrevisĆ£o próximo mĆŖs
  • GET /api/dashboard/best-card - CartĆ£o com maior limite após pagamento
  • GET /api/dashboard/cash-flow - Fluxo de caixa projetado

šŸ“ Protocolo Git

Formato de commit:

[CLAUDE] Descrição clara
Exemplo: [CLAUDE] Implementado schema de cartƵes e transaƧƵes

Handoff para outros agentes:

[CLAUDE] API de cartƵes pronta, precisa de forms do COPILOT

Sempre antes de comeƧar:

git pull --rebase
git log --oneline -20  # Ver trabalho dos outros

šŸ”§ ConfiguraƧƵes de Ambiente

Adicione ao .env.example com comentƔrios:

# Added by CLAUDE
# Database path para SQLite
DATABASE_URL=./database/home-finance.db
 
# Telegram notifications
TELEGRAM_BOT_TOKEN=required_for_alerts
TELEGRAM_CHAT_ID=your_chat_id
 
# Exchange rate API (optional but recommended)
EXCHANGE_RATE_API_KEY=for_real_time_rates

šŸ“Š Contratos de API

Card Object

{
  id: string,
  name: string, // "Cartão A", "Cartão B", etc
  limit: number,
  dueDate: number, // dia do mĆŖs
  currentBalance: number,
  availableCredit: number,
  debitTransactions: Transaction[],
  creditTransactions: Transaction[],
  installments: Installment[]
}

RPG Session Income

{
  type: 'national' | 'international',
  platform?: 'direct' | 'startplaying',
  sessions: number,
  players: number,
  pricePerSession: number,
  exchangeRate?: number,
  platformFee?: number,
  expectedDate: Date,
  actualReceiptDate?: Date
}

āœ… CritĆ©rios de Sucesso

  • Banco de dados modelando todos os cenĆ”rios financeiros
  • APIs calculando corretamente taxas e prazos
  • Sistema de notificaƧƵes funcionando para todos os canais
  • Dashboard retornando dados agregados precisos
  • Tratamento de fins de semana e feriados nos cĆ”lculos
  • Logs detalhados para debug de cĆ”lculos financeiros

šŸš€ Comece por aqui:

  1. git pull --rebase
  2. Criar schema do banco em /lib/db/schema.ts
  3. Implementar conexão em /lib/db/index.ts
  4. Criar primeira API route /app/api/cards/route.ts
  5. Commitar: [CLAUDE] Setup inicial do banco e schema de cartƵes

LEMBRE-SE: VocĆŖ tem controle TOTAL sobre backend. Os outros dependem das suas APIs!