Главный сервис (main)🔗
main — это центральный сервис проекта, реализованный на Django. Он отвечает за структуру базы данных, админку, пользовательские модели и всё, что связано с централизованным хранением и управлением данными.
Главный сервис не обрабатывает логику сообщений, не обращается к OpenAI напрямую, и не выполняет асинхронные задачи — это делают микросервисы. По сути этот сервис - архитектор базы данных и держатель админки.
Основные функции🔗
- Хранение пользователей (
CustomUser) - Расширенная модель профиля (
BaseProfile) + конкретные профили платформ - Управление балансом и транзакциями
- Административный интерфейс
- Миграции, структура базы, начальные данные
- Поддержка фронтенда: выдача данных через API (в перспективе)
Структура приложения🔗
Приложения внутри Django-проекта:
| Приложение | Назначение |
|---|---|
users | Кастомная модель пользователя |
base_profiles | Базовая модель профиля, от которой наследуются все платформенные |
billing | Модели транзакций, баланса, истории |
vk, whatsapp, widget | Конкретные профили для платформ |
Особенности🔗
- Его база данных используется как единственный источник истины по профилям, пользователям и транзакциям
- Все микросервисы используют его БД (через
data_service) balance_cachedв модели пользователя — оперативный баланс, сверяется с транзакциями (в перспективе, циклично)
Связь с микросервисами🔗
data_serviceработает напрямую с БДmain, выполняя асинхронные задачи- Все операции по списанию, проверке профиля и сохранению сообщений — происходят в этой базе, но не этим сервисом
Назначение документации этого раздела🔗
Этот раздел описывает каждый из модулей (users, billing, base_profiles и т.д.) и поясняет структуру моделей, поля и их логику.