Модель данных и связи
Краткий обзор того, как сущности Remonf связаны между собой. Подробности полей — в разделах руководства.
Иерархия
Пользователь
└── Проект(ы) ← селектор в шапке кабинета
├── Категории
├── Комнаты
├── Магазины
├── Сметы
│ └── Позиции сметы → категория, комната
├── Избранное ← ссылки и фото товаров, не траты
├── Траты / работы
│ ├── → категории (несколько), комната, магазин
│ ├── → позиция сметы (опционально)
│ └── Вложения (чеки, фото)
└── Чеки (импорт QR) → создают траты и иногда магазины
Таблицы
Во всех журналах одинаковый жест:
| Действие | Результат |
|---|---|
| Клик по названию | Открыть запись |
| Двойной клик по строке | То же самое |
| Кнопки «Просмотр» / «Изменить» в строке | Нет |
| Удалить в строке | Остаётся (где удаление допустимо) |
Что считается «открыть запись»:
| Журнал | Клик по названию / двойной клик |
|---|---|
| Проекты | Переход на Обзор этого проекта |
| Траты и работы, последние траты на Обзоре | Карточка просмотра со всеми полями формы |
| Категории, комнаты, магазины | Карточка просмотра |
| Позиции сметы | Карточка просмотра |
| Избранное | Карточка просмотра (клик по плитке) |
| Список смет | Смета раскрывается ниже (позиции и сверка) |
В открытой карточке просмотра сверху — Редактировать. После сохранения снова показывается просмотр с актуальными данными. Пустые поля отображаются как «—».
У проектов в строке дополнительно Поделиться (владелец) или Покинуть (участник). Редактирование полей проекта — Редактировать в шапке Обзора.
Правила удаления
| Что удаляем | Что происходит с зависимыми данными |
|---|---|
| Проект | Удаляются все его траты, чеки, сметы, избранное, справочники, доступы участников |
| Категория / комната / магазин | Траты остаются; у категории снимается только эта связь, остальные категории траты сохраняются. У избранного категория обнуляется |
| Позиция сметы | Траты остаются, привязка к смете снимается |
| Трата | Удаляются файлы-вложения |
Общие ограничения файлов
| Параметр | Значение |
|---|---|
| Максимальный размер | 15 МБ |
| Типы (чеки/фото) | JPG, PNG, WEBP, PDF (сервер также может принять GIF, HEIC/HEIF) |
| Аватар | JPG, PNG, WEBP, GIF |
Где что выбирается
| Справочник | Трата | Чек | Позиция сметы | Избранное | Импорт Excel | Бюджет из сметы |
|---|---|---|---|---|---|---|
| Категория | несколько | сверху на все позиции, плюс правка в строке (или на всю сумму в режиме «одной суммой») | одна | одна | ✓ / несколько через запятую | обновляет бюджет |
| Комната | ✓ | на весь чек | ✓ | — | ✓ / создать | обновляет бюджет |
| Магазин | ✓ | ✓ / создать, на весь чек | — | — | ✓ / создать | — |
Валидация: клиент и сервер
Интерфейс показывает понятные сообщения («Укажите название», «Минимум 8 символов»). Сервер дополнительно проверяет длины строк, сумма > 0, принадлежность справочников проекту и уникальность логина/email. Если проверка на сервере строже — сохранение не пройдёт даже при заполненной форме.
