d582f15681
- Implemented tests for import polling functionality, ensuring correct behavior for active and terminal import statuses. - Created tests for the login page, validating user interactions and error handling. - Added unit tests for money utility functions, covering parsing, formatting, and summation of monetary values. - Developed tests for query keys, ensuring proper scoping and invalidation roots. chore: setup testing environment and configuration - Added setup file for testing with Vitest and Testing Library. - Configured TypeScript and Vite for the frontend project. - Created Docker and Nginx configurations for local development and production environments. - Established a PostgreSQL initialization script for setting up application roles. docs: add README and environment configuration for infra - Included README for the infra directory, detailing local development setup and service descriptions. - Created an example environment configuration file for local development with placeholders for sensitive information.
24 lines
4.1 KiB
Markdown
24 lines
4.1 KiB
Markdown
# Domain Context
|
|
|
|
- **Пользователь (User):** подтверждённая личность, которая входит в приложение.
|
|
- **Финансовое пространство (Financial Space):** единая граница владения счетами, операциями, бюджетами и справочниками.
|
|
- **Участие (Membership):** связь пользователя с финансовым пространством и ролью `owner` либо `member`.
|
|
- **Финансовый счёт (Financial Account):** место учёта собственных денег либо долга; карта является банковским инструментом, а не счётом.
|
|
- **Операция (Operation):** пользовательский финансовый факт: расход, доход, внутренний перевод или возврат.
|
|
- **Проводка (Posting):** изменение остатка одного внутреннего финансового счёта в рамках операции.
|
|
- **Внутренний перевод (Internal Transfer):** одна операция с двумя противоположными проводками по собственным счетам; не доход и не расход.
|
|
- **Возврат (Refund):** отдельная операция, полностью или частично связанная с исходным расходом; не доход.
|
|
- **Импорт выписки (Statement Import):** загруженный документ и процесс его проверки и применения.
|
|
- **Попытка разбора (Parse Run):** версионированный результат конкретного parser adapter для одного документа.
|
|
- **Исходная запись (Source Record):** неизменяемый извлечённый банковский факт с происхождением в документе.
|
|
- **Получатель (Payee):** нормализованное пространство-локальное имя магазина, сервиса или человека с алиасами исходных описаний.
|
|
- **Бюджетный период (Budget Period):** календарный месяц в часовом поясе пользователя со статусом `open` либо `closed`.
|
|
- **Общий пул (General Pool):** фактически доступные, но ещё не распределённые деньги пространства; может быть отрицательным.
|
|
- **Плановое назначение (Plan Assignment):** доля текущих и ожидаемых денег, которую пользователь намерен направить категории.
|
|
- **Обеспечение (Funding):** фактически поступившие деньги, перемещённые из общего пула в категорию или резерв.
|
|
- **Месячная категория (Monthly Category):** назначение расходов, остаток которого при закрытии сворачивается в общий пул.
|
|
- **Накопительный конверт (Savings Envelope):** виртуальный обеспеченный резерв без обязательной цели или срока, переносимый между месяцами.
|
|
- **Резерв кредитки (Credit Reserve):** постоянный системный резерв конкретной кредитки для будущего погашения долга.
|
|
- **Ожидаемый доход (Expected Income):** плановое поступление с датой, суммой и источником, отдельно сопоставляемое фактическим доходам.
|
|
- **Источник дохода (Income Source):** необязательная классификация происхождения фактического или ожидаемого поступления.
|