webmoney/IMPLEMENTACAO_ORCAMENTOS_SUBCATEGORIA.md
marco 54cccdd095 refactor: migração para desenvolvimento direto no servidor
- Removido README.md padrão do Laravel (backend)
- Removidos scripts de deploy (não mais necessários)
- Atualizado copilot-instructions.md para novo fluxo
- Adicionada documentação de auditoria do servidor
- Sincronizado código de produção com repositório

Novo workflow:
- Trabalhamos diretamente em /root/webmoney (symlink para /var/www/webmoney)
- Mudanças PHP são instantâneas
- Mudanças React requerem 'npm run build'
- Commit após validação funcional
2025-12-19 11:45:32 +01:00

3.2 KiB
Executable File

Implementação de Orçamentos por Subcategoria

O que foi feito:

1. Backend - Database

  • Migration criada: 2025_12_16_211102_add_subcategory_to_budgets_table.php
    • Adiciona coluna subcategory_id
    • Atualiza unique constraint para incluir subcategoria

2. Backend - Model

  • Budget.php atualizado:
    • Adicionado subcategory_id ao fillable
    • Nova relação subcategory()
    • Lógica de getSpentAmountAttribute() atualizada para considerar subcategorias

3. Backend - Controller

  • BudgetController.php atualizado:
    • index(): carrega relação subcategory
    • store(): valida e cria orçamentos com subcategoria
    • show(): filtra transações por subcategoria quando aplicável
    • destroy(): deleta considerando subcategoria

4. Frontend

  • Budgets.jsx atualizado:
    • Formulário com seleção de subcategoria (opcional)
    • Exibição de subcategoria nos cards
    • Se categoria tem subcategorias, mostra opção "Toda a categoria" + lista de subcategorias

5. Traduções

  • Adicionado em PT-BR, ES, EN:
    • budgets.subcategory: "Subcategoria"
    • budgets.allCategory: "Toda a categoria" / "All category" / "Toda la categoría"

🚀 Como fazer Deploy:

Backend:

cd /workspaces/webmoney

# 1. Enviar arquivos
sshpass -p 'Master9354' scp -o StrictHostKeyChecking=no \
  backend/database/migrations/2025_12_16_211102_add_subcategory_to_budgets_table.php \
  root@213.165.93.60:/var/www/webmoney/backend/database/migrations/

sshpass -p 'Master9354' scp -o StrictHostKeyChecking=no \
  backend/app/Models/Budget.php \
  root@213.165.93.60:/var/www/webmoney/backend/app/Models/

sshpass -p 'Master9354' scp -o StrictHostKeyChecking=no \
  backend/app/Http/Controllers/Api/BudgetController.php \
  root@213.165.93.60:/var/www/webmoney/backend/app/Http/Controllers/Api/

# 2. Executar migration
sshpass -p 'Master9354' ssh -o StrictHostKeyChecking=no root@213.165.93.60 \
  "cd /var/www/webmoney/backend && php artisan migrate --force"

# 3. Limpar cache
sshpass -p 'Master9354' ssh -o StrictHostKeyChecking=no root@213.165.93.60 \
  "cd /var/www/webmoney/backend && php artisan config:clear && php artisan cache:clear"

Frontend:

cd /workspaces/webmoney/frontend && ./deploy.sh

📝 Como usar:

  1. Criar orçamento para categoria inteira (comportamento existente):

    • Selecionar categoria
    • NÃO selecionar subcategoria (ou selecionar "Toda a categoria")
    • Valor do orçamento
  2. Criar orçamento para subcategoria específica (NOVO):

    • Selecionar categoria
    • Selecionar a subcategoria desejada
    • Valor do orçamento

Exemplo:

  • Categoria: "Alimentação" - Orçamento R$ 1000 (todas as subcategorias)
  • Ou
  • Categoria: "Alimentação" → Subcategoria: "Restaurante" - Orçamento R$ 300 (apenas restaurante)

🔍 Características:

  • Orçamento por categoria inclui automaticamente todas as subcategorias
  • Orçamento por subcategoria é específico e não inclui outras subcategorias
  • Pode ter orçamento geral E orçamentos específicos por subcategoria
  • Propagação automática para 12 meses futuros funciona com subcategorias
  • Unique constraint garante 1 orçamento por categoria/subcategoria/mês