# 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: ```bash 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: ```bash 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