## New Features - Email notifications for overdue and upcoming payments - User preferences page for notification settings - Daily scheduler to send alerts at user-configured time - Smart analysis: payable items, transfer suggestions between accounts ## Backend - Migration for user_preferences table - SendDuePaymentsAlert Artisan command - DuePaymentsAlert Mailable with HTML/text templates - UserPreferenceController with test-notification endpoint - Scheduler config for notify:due-payments command ## Frontend - Preferences.jsx page with notification toggle - API service for preferences - Route and menu link for settings - Translations (PT-BR, EN, ES) ## Server - Cron configured for Laravel scheduler Version: 1.44.5
3.2 KiB
3.2 KiB
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
- Adiciona coluna
2. Backend - Model
- ✅
Budget.phpatualizado:- Adicionado
subcategory_idao fillable - Nova relação
subcategory() - Lógica de
getSpentAmountAttribute()atualizada para considerar subcategorias
- Adicionado
3. Backend - Controller
- ✅
BudgetController.phpatualizado:index(): carrega relaçãosubcategorystore(): valida e cria orçamentos com subcategoriashow(): filtra transações por subcategoria quando aplicáveldestroy(): deleta considerando subcategoria
4. Frontend
- ✅
Budgets.jsxatualizado:- 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:
-
Criar orçamento para categoria inteira (comportamento existente):
- Selecionar categoria
- NÃO selecionar subcategoria (ou selecionar "Toda a categoria")
- Valor do orçamento
-
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