Phase 4: Income API and page
- Add FrequencyCalculator static utility (all 9 frequency multipliers) - Add IncomesController: list, create, update, delete, reorder - Add Income DTOs with computed Monthly/Annually fields - Add shared TypeScript types (IncomeDto, OutgoDto, BudgetDto, ShareDto, SummaryDto) - Add API client with Bearer token injection via setTokenProvider - Add FrequencySelect, MoneyDisplay, BudgetNav shared components - Add Income page: sortable table with inline editing, add/delete rows, drag-to-reorder via dnd-kit - Wire TokenWirer in App.tsx to keep API client in sync with auth state Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
using Budget.Api.Models;
|
||||
|
||||
namespace Budget.Api.DTOs;
|
||||
|
||||
public record IncomeDto(
|
||||
Guid Id,
|
||||
Guid BudgetId,
|
||||
string Name,
|
||||
Frequency Frequency,
|
||||
decimal Amount,
|
||||
decimal Monthly,
|
||||
decimal Annually,
|
||||
int SortOrder);
|
||||
|
||||
public record CreateIncomeRequest(string Name, Frequency Frequency, decimal Amount);
|
||||
|
||||
public record UpdateIncomeRequest(string Name, Frequency Frequency, decimal Amount);
|
||||
|
||||
public record ReorderIncomesRequest(List<Guid> OrderedIds);
|
||||
Reference in New Issue
Block a user