le king fu
|
58d3c86336
|
feat(balance): add balance.service CRUD section + tests
Adds the TypeScript service layer for the Bilan feature, scoped to
Issue #138 (Bilan #1a) — categories + accounts CRUD only. Snapshots,
snapshot lines, transfers and price-fetching land in subsequent issues.
The service uses `getDb()` + tauri-plugin-sql directly per project
convention (96 occurrences across 15 services). No new Tauri commands
introduced — the only future Rust commands are `compute_account_return`
(Issue #142) and `fetch_price` (Issue #144).
API surface:
- listBalanceCategories / getBalanceCategory / createBalanceCategory /
updateBalanceCategory / deleteBalanceCategory (with seed + has-accounts
guards)
- listBalanceAccounts (excludes archived by default) / getBalanceAccount
/ createBalanceAccount (CAD-only at MVP) / updateBalanceAccount /
archiveBalanceAccount / unarchiveBalanceAccount (soft delete)
Typed errors via BalanceServiceError + BalanceErrorCode union so the UI
can render distinct i18n messages. Domain types added under
`src/shared/types/index.ts`: BalanceCategoryKind, BalanceCategory,
BalanceAccount, BalanceAccountWithCategory, BALANCE_CURRENCY_CAD.
19 vitest cases cover: ordering, kind validation, seed protection,
linked-account guard, currency rejection, missing-category lookup,
soft delete + restore round-trip, symbol/notes normalization.
Refs #138
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-04-25 14:33:39 -04:00 |
|