Модели (Models)
В этом разделе автоматически генерируется документация всех SQLAlchemy моделей, используемых в проекте Gifty.
app.models
Classes
User
Bases: TimestampMixin, Base
Модель пользователя системы Gifty. Хранит базовую информацию о пользователе и связи с OAuth аккаунтами.
Source code in app/models.py
OAuthAccount
Bases: TimestampMixin, Base
Связь пользователя с внешними провайдерами авторизации (Google, Yandex, VK). Хранит токены и идентификаторы провайдеров.
Source code in app/models.py
Recipient
Bases: TimestampMixin, Base
Профиль человека, которому ищут подарок (Мама, Друг, Коллега). Связан с User (Giver).
Source code in app/models.py
Interaction
Bases: TimestampMixin, Base
История взаимодействия пользователя с рекомендациями для конкретного Recipient.
Source code in app/models.py
Hypothesis
Bases: TimestampMixin, Base
Модель гипотезы (идеи подарка), сгенерированной ИИ. Позволяет анализировать эффективность идей и собирать фидбэк.
Source code in app/models.py
Product
Bases: TimestampMixin, Base
Основная модель товара в каталоге. Содержит метаданные товара, информацию о мерчанте и результаты оценки LLM.
Source code in app/models.py
ProductEmbedding
Bases: TimestampMixin, Base
Векторные представления товаров для семантического поиска. Использует pgvector для хранения эмбеддингов.
Source code in app/models.py
ParsingSource
Bases: TimestampMixin, Base
Реестр источников для парсинга (магазинов и категорий). Управляет расписанием и стратегией сбора данных.
Source code in app/models.py
ParsingRun
Bases: TimestampMixin, Base
История запусков парсеров. Хранит статистику по количеству спаршенных и новых товаров.
Source code in app/models.py
CategoryMap
Bases: TimestampMixin, Base
Маппинг категорий внешних магазинов во внутренние категории Gifty. Используется для нормализации каталога.
Source code in app/models.py
TelegramSubscriber
Bases: TimestampMixin, Base
Подписчики и администраторы Telegram бота. Управляет ролями, правами доступа и подписками на уведомления.
Source code in app/models.py
WeeekAccount
Bases: TimestampMixin, Base
Связь аккаунта Telegram с сервисом Weeek. Хранит токены доступа и настройки для управления задачами.
Source code in app/models.py
ComputeTask
Bases: TimestampMixin, Base
Queue for offline compute tasks (embeddings, reranking, etc.). External workers (Kaggle, home clusters) poll this table via API.
Source code in app/models.py
SearchLog
Bases: TimestampMixin, Base
Логи поисковых запросов в системе рекомендаций. Позволяет анализировать полноту каталога и релевантность выдачи.
Source code in app/models.py
HypothesisProductLink
Bases: TimestampMixin, Base
Связь конкретной гипотезы с найденными товарами. Нужна для анализа воронки "Гипотеза -> Найденные релевантные товары".