72 Commits

Author SHA1 Message Date
3dfcf5aaa8 feat: complete broker account analytics with sync button, tests, and state filter
Some checks failed
CI / ci (pull_request) Failing after 3m39s
CI / ci (push) Failing after 3m10s
- Add state filter (EXECUTED/null) to analytics query (spec compliance)
- Add service unit tests (11 tests) and controller test
- Add sync button to operations page with mutation hook
- Regenerate frontend types via codegen
- Update tasks.md marking all items complete

Backend: 114 tests, Frontend: 116 tests — all pass
2026-06-24 11:29:09 +03:00
a1e68fb13a feat: add BrokerAnalyticsPage component with loading/error/empty states 2026-06-24 09:45:59 +03:00
b26021016c fix(frontend): clean up mock setup and route params 2026-06-23 21:22:37 +03:00
cfadb2adbe feat: migrate from react-router-dom to @tanstack/react-router (code-first)
- Create code-first route tree in src/app/routing/routeTree.tsx
- Replace ProtectedRoute with beforeLoad auth guards
- Add useSearchParamsCompat for URLSearchParams access
- Update App.tsx, layouts, and all page/widget imports
- Add frontend tooling: biome, prettier, env config
- Update all tests for TanStack Router compatibility
- Remove react-router-dom dependency, @tanstack/router-plugin
- Consolidate biome config at root level
2026-06-23 06:51:48 +03:00
f7dc338719 feat: add actual payouts and filter-as-draft UX to broker events calendar
Some checks failed
CI / ci (pull_request) Failing after 3m9s
CI / ci (push) Failing after 3m9s
- Backend: actual events from T-Bank operations, types filter, split forecast/actual summary
- Frontend: draft/applied filters with multi-select types, status column (Факт/Прогноз), green actual amounts
- Docs: update spec, plan, tasks
2026-06-22 21:48:03 +03:00
0ddd9b5f80 feat: add date range selection to broker events page 2026-06-22 06:58:59 +03:00
595d059151 feat: add broker events calendar and payout projections for T-Bank accounts
Some checks failed
CI / ci (push) Failing after 3m1s
2026-06-22 06:41:37 +03:00
8ad5f3c70c feat: migrate BrokerPositionsPage and BrokerOperationsPage 2026-06-21 20:21:00 +03:00
ef97fd7136 feat: migrate BrokerSummary, BrokerAssetCards and BrokerAccountOverviewPage 2026-06-21 18:14:49 +03:00
860bed159c feat(frontend): migrate BrokerAccountsPage and widgets to design system 2026-06-21 17:42:05 +03:00
62a3389bfb feat(frontend): migrate LoginPage, RegisterPage, ProfilePage to design system
- LoginPage: <input>/<label> → <TextField>, <button> → <Button>,
  <h1> → <Heading>, inline error → <Text tone="negative">
- RegisterPage: same pattern, 4 fields, minLength via slotProps.htmlInput
- ProfilePage: <div> inline styles → <Surface>, <input> → <TextField>,
  <button> → <Button>, email/role → <Text>+<Text variant="label">
- Tests: loading state checks updated from text change to
  toBeDisabled() (DS Button keeps text, shows spinner)
- 264 lines removed, 134 net reduction
2026-06-21 17:23:04 +03:00
a8741cfeab fix: resolve Vite MUI deep import by moving to barrel import + updated ESLint allowlist
- Changed @mui/material/Box deep imports to { Box } from '@mui/material'
- Updated no-restricted-imports to only restrict DS-covered components,
  allowing Box/Stack/Grid for layout
2026-06-21 17:15:45 +03:00
bd33412691 feat(frontend): migrate HomePage and SearchBar to design system components
- HomePage: replace inline styles with <Heading>, <Text>, <Box>
- SearchBar: replace <input> with <TextField>, <ul> with <Surface>,
  <li> with <Box>+<Text>+<Chip>, hardcoded hex with theme tokens
- ESLint no-restricted-imports respected via @mui/material/Box deep import
- Logic unchanged, all 111 tests pass
2026-06-21 16:57:19 +03:00
2744608d06 chore: add @conarti/eslint-plugin-feature-sliced for FSD layer enforcement
Some checks failed
CI / ci (pull_request) Failing after 2m23s
CI / ci (push) Failing after 2m19s
2026-06-20 23:21:14 +03:00
ad196164ee refactor: extract AddPositionForm to features layer 2026-06-20 23:16:20 +03:00
d1f9128441 refactor: extract BrokerOverview components to widgets layer 2026-06-20 23:14:24 +03:00
8e70691bde refactor: extract BrokerPositionTable to widgets layer 2026-06-20 23:12:28 +03:00
1774c7ffd6 refactor(frontend): bring FSD architecture into compliance
Some checks failed
CI / ci (pull_request) Failing after 2m32s
CI / ci (push) Failing after 2m17s
- Remove cross-entity import (broker-position -> broker-operation)
- Extract duplicated formatters to shared/lib/formatters.ts
- Flatten shared/ui/broker-allocation-bar nesting
- Clean up entities/stock/index.ts public API

All 111 tests pass, build clean.
2026-06-20 22:43:44 +03:00
1f426e9734 refactor(frontend): complete FSD compliance - barrel imports, test/ move, auth extraction, delete App.tsx and stale dir
Some checks failed
CI / ci (pull_request) Failing after 2m37s
CI / ci (push) Failing after 2m30s
2026-06-20 22:31:34 +03:00
b9d7a6ad69 refactor(frontend): complete FSD migration - import aliases, BrokerAccountLayout move, search api/ layer 2026-06-20 21:57:04 +03:00
055bc23097 refactor(frontend): migrate auth/portfolio pages to FSD, add layer boundaries
Some checks failed
CI / ci (pull_request) Failing after 2m45s
CI / ci (push) Failing after 2m41s
- Convert LoginPage, RegisterPage, ProfilePage to FSD structure (index.ts + ui/)
- Convert PortfoliosListPage, PortfolioDetailPage to FSD structure
- Replace relative imports with @/ aliases in portfolio pages
- Add ESLint import/no-restricted-paths for FSD layer boundaries
- Refactor useSession test to mock context instead of import from app/
- Mark frontend-fsd-screener tasks as complete
2026-06-20 21:42:33 +03:00
9b208481dd feat: migrate screener to FSD with first feature-slice (features/screener)
Some checks failed
CI / ci (pull_request) Failing after 2m49s
CI / ci (push) Failing after 2m36s
2026-06-20 21:23:08 +03:00
1ef1a3c902 refactor(frontend): switch pages/portfolios to widget imports 2026-06-20 21:11:30 +03:00
b069575fbb refactor(frontend): remove FSD shim files and dead code
Some checks failed
CI / ci (pull_request) Failing after 2m51s
CI / ci (push) Failing after 2m38s
- Break entity shim chain: brokerPositionApi, brokerOperationApi now use shared/api/client directly
- Remove all 43 shim re-export files (api/, hooks/, context/, components/, pages/ flat shims, routes.tsx)
- Remove entire pages/broker/ dead code directory
- Remove api/broker.ts after breaking the shim chain
- Switch auth consumers from AuthProvider (shim) to SessionProvider (FSD)
- Fix api/screener.ts imports to use @/shared/api
- Update frontend hooks.md and routes.md documentation
- 2840 lines removed, 71 lines added
2026-06-20 20:42:44 +03:00
6f9e368126 refactor(frontend): refactoring fsd
Some checks failed
CI / ci (pull_request) Failing after 3m2s
CI / ci (push) Failing after 2m58s
2026-06-20 19:58:49 +03:00
8e9fdbe70a refactor(frontend): migrate app layer and auth to FSD
- Create app/ layer: App.tsx, providers, routing, layouts
- Create entities/session/ for auth domain
- Extract SessionProvider + AppProviders composition
- Add ProtectedRoute, AppRoutes to app/routing/
- Add AppLayout to app/layouts/
- Convert legacy files to re-export shims
- Update Login/Register/Profile pages to useSession
2026-06-20 14:54:53 +03:00
946383bde0 refactor(frontend): migrate entities/portfolio to FSD 2026-06-20 14:54:52 +03:00
9c115f0e16 refactor(frontend): migrate entities/bond to FSD 2026-06-20 14:54:52 +03:00
dd727f9fb2 refactor(frontend): migrate entities/stock to FSD 2026-06-20 14:54:52 +03:00
d95b2df460 refactor(frontend): update legacy imports to use @/shared/ 2026-06-20 14:54:52 +03:00
9816bc6b96 refactor(frontend): update fsd entities imports to use @/shared/ 2026-06-20 14:54:52 +03:00
00f01fae4f refactor(frontend): move broker operations and layout to fsd 2026-06-20 14:54:52 +03:00
09213624c3 test: remove legacy broker position duplicates 2026-06-20 14:54:51 +03:00
8e578e7a91 refactor(frontend): move broker position slice to fsd 2026-06-20 14:54:51 +03:00
1db1763b36 refactor(frontend): align broker account shims 2026-06-20 14:54:51 +03:00
55cc479abb refactor(frontend): move broker account slice to fsd 2026-06-20 14:54:51 +03:00
a03e3c0240 refactor(frontend): add broker fsd page entrypoints 2026-06-20 14:54:51 +03:00
1e007de5be feat: add broker accounts overview
All checks were successful
CI / ci (pull_request) Successful in 3m21s
CI / ci (push) Successful in 3m6s
2026-06-19 14:31:53 +03:00
2223463dd3 feat: filter broker operations by exact type 2026-06-19 07:06:49 +03:00
910494a4e5 feat: add broker asset pages 2026-06-19 07:03:09 +03:00
b82771107d fix: harden broker overview edge cases 2026-06-19 06:52:22 +03:00
a19ad67a89 feat: add broker account overview 2026-06-19 06:43:38 +03:00
1c26d2a3eb fix: improve broker account shell accessibility 2026-06-19 06:32:20 +03:00
dc4b6ddf1b feat: add broker account section navigation 2026-06-19 06:23:35 +03:00
6d2df6a12b fix: stabilize broker display models 2026-06-19 06:13:23 +03:00
2462f2122c feat: add broker account display models 2026-06-19 06:08:17 +03:00
af135d5640 test: add isFetching to mock return values
All checks were successful
CI / ci (push) Successful in 2m59s
2026-06-18 07:29:35 +03:00
2d671669d4 feat: pass isFetching to BrokerOperationsTable 2026-06-18 07:29:35 +03:00
26371381e0 feat: add loading overlay and spinner to BrokerOperationsTable 2026-06-18 07:29:35 +03:00
90e9c468de feat: add loading overlay and spinner to PositionGroupTable 2026-06-18 07:29:35 +03:00