Files
finance/CONTEXT.md
T
k1nq d582f15681 feat: add tests for import polling, login page, money utilities, and query keys
- 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.
2026-09-14 09:26:33 +05:00

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):** необязательная классификация происхождения фактического или ожидаемого поступления.