Simpl-Resultat/src/components
le king fu 3963f552ae
All checks were successful
PR Check / rust (push) Successful in 23m42s
PR Check / frontend (push) Successful in 2m26s
PR Check / rust (pull_request) Successful in 22m55s
PR Check / frontend (pull_request) Successful in 2m24s
feat(balance): add asset_type column to balance_categories
Priced balance categories now carry an explicit `asset_type`
('stock' | 'crypto') so PriceFetchControl can route to the right
provider without symbol heuristics. ETH = Ethan Allen NYSE AND
Ethereum crypto are no longer ambiguous.

Migration v10 adds a nullable column and backfills the two seeded
priced categories (key='stock','crypto'). Legacy custom priced rows
stay NULL until the user edits the category — SnapshotLineRow hides
the price-fetch button when asset_type is NULL on a priced row, so
manual entry remains available.

Service-side validation rejects priced creation without asset_type
('asset_type_required') and rejects values outside ('stock','crypto')
('asset_type_invalid'). Simple kind coerces asset_type to NULL.

The CategoryVariant of AccountForm shows the selector only when
kind=priced, requires it on submit, and resets it on kind switch.
i18n keys added under balance.category.assetType.* (FR + EN).

Tests:
- 4 new Rust migration tests in lib.rs (column add, seed backfill,
  legacy row stays NULL, CHECK rejects 'gold')
- 6 new vitest cases on createBalanceCategory + listBalanceAccounts
  asserts c.asset_type AS category_asset_type in the join
- balance-flow integration test updated to pass asset_type='stock'

No new test for SnapshotLineRow render guard — project lacks
@testing-library/react + jsdom; the guard is one boolean expression
covered by manual QA per autopilot decisions in PR #167.

Fixes #169
2026-04-28 19:54:04 -04:00
..
adjustments feat: add Budget and Adjustments pages with full functionality 2026-02-12 00:58:43 +00:00
balance feat(balance): add asset_type column to balance_categories 2026-04-28 19:54:04 -04:00
budget fix: remove double sign negation for previous year actuals (#34) 2026-03-11 12:02:58 -04:00
categories feat(categories): add categories standard guide page (#117) 2026-04-20 21:02:38 -04:00
categories-migration feat(categories): add 3-step migration page + categoryMigrationService (#121) 2026-04-20 21:31:21 -04:00
dashboard feat(categories): add dashboard v1 discovery banner (#118) 2026-04-20 21:11:56 -04:00
import fix: replace refresh icon with save icon on update template button 2026-02-16 12:01:14 +00:00
layout feat(balance): add sidebar Bilan entry 2026-04-25 16:07:13 -04:00
profile fix: wrap rehash updateProfile in try/catch for best-effort (#54) 2026-04-09 15:46:27 -04:00
reports feat(reports/cartes): Mensuel/YTD toggle on KPI cards + user guide section (#102) 2026-04-19 09:49:21 -04:00
settings feat(prices): Settings revocation toggle for price_fetching_consent 2026-04-27 08:41:15 -04:00
shared fix(reports): render category combobox in hierarchical DFS order (#126) 2026-04-21 20:58:53 -04:00
transactions feat(transactions): inline transfer icon + FK error message 2026-04-25 16:38:46 -04:00