whisper-money/app/Http/Controllers/Api
Víctor Falcón 5572a2d75a Move income/expense-side classification onto the Transaction model
The same in-memory rule for which side of a cashflow split a transaction
belongs to (income category or uncategorized inflow; expense category or
uncategorized outflow; transfers/savings/investments on neither) was
re-implemented in TransactionAnalysisController (isIncomeSide/isExpenseSide)
and inline in CashflowAnalyticsController::sumTransactions.

Expose it once as Transaction::isIncomeSide()/isExpenseSide() and have both
controllers consume it, so the two analytics surfaces cannot drift on how a
refund, reversal or uncategorized transaction is bucketed. Behaviour-preserving.
2026-07-04 20:48:18 +02:00
..
Concerns fix(analysis): respect category types like the cashflow screen (#612) 2026-06-29 21:04:18 +02:00
AccountController.php refactor(api): standardize serialization via model $hidden (#492) 2026-06-05 13:57:34 +02:00
CashflowAnalyticsController.php Move income/expense-side classification onto the Transaction model 2026-07-04 20:48:18 +02:00
CategoryMonthlyBreakdownController.php fix(analysis): respect category types like the cashflow screen (#612) 2026-06-29 21:04:18 +02:00
DashboardAnalyticsController.php feat: expand parent categories inline in breakdowns (#486) 2026-06-04 11:19:21 +02:00
ImportDataController.php refactor(api): standardize serialization via model $hidden (#492) 2026-06-05 13:57:34 +02:00
SavedFilterController.php feat(analysis): project-aware transaction analysis (#513) 2026-06-09 15:32:07 +02:00
TransactionAnalysisController.php Move income/expense-side classification onto the Transaction model 2026-07-04 20:48:18 +02:00
TransactionController.php fix: address remaining security audit findings (round 2) (#628) 2026-07-03 15:04:03 +00:00