Архитектурная роль

Модуль types содержит набор классов и типов данных, которые используются для представления различных сущностей и структур данных в системе FunPayCardinal. Эти классы обеспечивают структурированный и типизированный подход к работе с данными, полученными из API FunPay.

Компоненты и логика

BaseOrderInfo

  • Назначение: Базовый класс для представления информации о заказах.
  • Аргументы и связи:
  • Нет аргументов.
  • Взаимодействие: Нет.

ChatShortcut

  • Назначение: Представляет виджет чата со страницы FunPay.
  • Аргументы и связи:
  • id_ (int): ID чата.
  • name (str): Название чата.
  • last_message_text (str): Текст последнего сообщения.
  • node_msg_id (int): ID узла сообщения.
  • user_msg_id (int): ID сообщения пользователя.
  • unread (bool): Флаг “непрочитанности”.
  • html (str): HTML код виджета чата.
  • determine_msg_type (bool, опционально): Определять ли тип последнего сообщения.
  • Взаимодействие: Вызывает методы get_last_message_type для определения типа сообщения.

get_last_message_type

  • Назначение: Определяет тип последнего сообщения в чате на основе регулярных выражений.
  • Аргументы и связи:
  • Нет аргументов.
  • Взаимодействие: Нет.

BuyerViewing

  • Назначение: Представляет поле “Покупатель смотрит”.
  • Аргументы и связи:
  • buyer_id (int): ID покупателя.
  • link (str | None): Ссылка на лот.
  • text (str | None): Текстовое описание лота.
  • tag (str | None): Тег события.
  • html (str | None): Исходный HTML-код блока просмотра.
  • Взаимодействие: Нет.

Chat

  • Назначение: Представляет личный чат.
  • Аргументы и связи:
  • id_ (int): ID чата.
  • name (str): Название чата.
  • looking_link (str | None): Ссылка на лот, который смотрит собеседник.
  • looking_text (str | None): Название лота, который смотрит собеседник.
  • html (str): HTML код чата.
  • messages (Optional[list[Message]]): Последние 100 сообщений чата.
  • Взаимодействие: Нет.

Message

  • Назначение: Представляет отдельное сообщение.
  • Аргументы и связи:
  • id_ (int): ID сообщения.
  • text (str | None): Текст сообщения.
  • chat_id (int | str): ID чата.
  • chat_name (str | None): Название чата.
  • interlocutor_id (int | None): ID собеседника.
  • author (str | None): Никнейм автора сообщения.
  • author_id (int): ID автора сообщения.
  • html (str): HTML код сообщения.
  • image_link (str | None): Ссылка на изображение.
  • image_name (str | None): Имя изображения.
  • determine_msg_type (bool, опционально): Определять ли тип сообщения.
  • badge_text (Optional[str], опционально): Текст значка.
  • tag (Optional[str], опционально): Тег сообщения.
  • Взаимодействие: Вызывает метод get_message_type для определения типа сообщения.

get_message_type

  • Назначение: Определяет тип сообщения на основе регулярных выражений.
  • Аргументы и связи:
  • Нет аргументов.
  • Взаимодействие: Нет.

OrderShortcut

  • Назначение: Представляет виджет заказа со страницы FunPay.
  • Аргументы и связи:
  • id_ (str): ID заказа.
  • description (str): Описание заказа.
  • price (float): Цена заказа.
  • currency (Currency): Валюта заказа.
  • buyer_username (str): Никнейм покупателя.
  • buyer_id (int): ID покупателя.
  • chat_id (int | str): ID чата.
  • status (OrderStatuses): Статус заказа.
  • date (datetime.datetime): Дата создания заказа.
  • subcategory_name (str): Название подкатегории.
  • subcategory (SubCategory | None): Подкатегория.
  • html (str): HTML код виджета заказа.
  • dont_search_amount (bool, опционально): Не искать кол-во товара.
  • Взаимодействие: Вызывает метод parse_amount для парсинга количества товара.

parse_amount

  • Назначение: Парсит количество купленного товара.
  • Аргументы и связи:
  • Нет аргументов.
  • Взаимодействие: Нет.

Server

  • Назначение: Представляет сервер.
  • Аргументы и связи:
  • id_ (int): ID сервера.
  • name (str | None, опционально): Название сервера.
  • Взаимодействие: Нет.

Side

  • Назначение: Представляет сторону.
  • Аргументы и связи:
  • id_ (int): ID стороны.
  • name (str | None, опционально): Название стороны.
  • Взаимодействие: Нет.

Order

  • Назначение: Представляет заказ со страницы FunPay.
  • Аргументы и связи:
  • id_ (str): ID заказа.
  • status (OrderStatuses): Статус заказа.
  • subcategory (SubCategory | None): Подкатегория.
  • server (Server | None): Сервер.
  • side (Side | None): Сторона.
  • fields (dict[str, LotField]): Поля оплаченного лота.
  • amount (int): Количество товара.
  • sum_ (float): Сумма заказа.
  • currency (Currency): Валюта заказа.
  • player (str | None): Имя персонажа.
  • buyer_id (int): ID покупателя.
  • buyer_username (str | None): Никнейм покупателя.
  • seller_id (int): ID продавца.
  • seller_username (str | None): Никнейм продавца.
  • chat_id (str | int): ID чата.
  • review (Review | None): Объект отзыва.
  • order_secrets (list[str]): Список товаров автовыдачи.
  • locale (Literal['ru', 'en', 'uk']): Локаль заказа.
  • Взаимодействие: Вызывает методы get_field, get_field_value, get_field_value_any для работы с полями лота.

get_field

  • Назначение: Возвращает объект поля лота по его ключу.
  • Аргументы и связи:
  • key (str): Ключ поля.
  • Взаимодействие: Нет.

get_field_value

  • Назначение: Возвращает значение поля лота по его ключу и локали.
  • Аргументы и связи:
  • key (str): Ключ поля.
  • locale (Literal['ru', 'en']): Локаль значения.
  • Взаимодействие: Нет.

get_field_value_any

  • Назначение: Возвращает значение поля лота по его ключу, используя приоритет локали заказа.
  • Аргументы и связи:
  • key (str): Ключ поля.
  • Взаимодействие: Нет.

Category

  • Назначение: Представляет категорию (игру).
  • Аргументы и связи:
  • id_ (int): ID категории.
  • name (str): Название категории.
  • subcategories (list[SubCategory] | None, опционально): Подкатегории.
  • position (int, опционально): Позиция.
  • Взаимодействие: Вызывает методы add_subcategory, get_subcategory, get_subcategories, get_sorted_subcategories для работы с подкатегориями.

add_subcategory

  • Назначение: Добавляет подкатегорию в список подкатегорий.
  • Аргументы и связи:
  • subcategory (SubCategory): Объект подкатегории.
  • Взаимодействие: Нет.

get_subcategory

  • Назначение: Возвращает объект подкатегории.
  • Аргументы и связи:
  • subcategory_type (SubCategoryTypes): Тип подкатегории.
  • subcategory_id (int): ID подкатегории.
  • Взаимодействие: Нет.

get_subcategories

  • Назначение: Возвращает все подкатегории данной категории.
  • Аргументы и связи:
  • Нет аргументов.
  • Взаимодействие: Нет.

get_sorted_subcategories

  • Назначение: Возвращает все подкатегории данной категории в виде словаря.
  • Аргументы и связи:
  • Нет аргументов.
  • Взаимодействие: Нет.

SubCategory

  • Назначение: Представляет подкатегорию.
  • Аргументы и связи:
  • id_ (int): ID подкатегории.
  • name (str): Название подкатегории.
  • type_ (SubCategoryTypes): Тип лотов подкатегории.
  • category (Category): Родительская категория.
  • position (int, опционально): Позиция.
  • Взаимодействие: Нет.

LotField

  • Назначение: Представляет поле лота.
  • Аргументы и связи:
  • id (str): ID поля.
  • value (str | dict): Значение поля.
  • name (str, опционально): Название поля.
  • field_type_id (str | None, опционально): ID типа поля.
  • Взаимодействие: Нет.

LotFields

  • Назначение: Представляет поля лота со страницы редактирования лота.
  • Аргументы и связи:
  • lot_id (int): ID лота.
  • fields (dict): Словарь с полями.
  • subcategory (SubCategory | None, опционально): Подкатегория.
  • currency (Currency, опционально): Валюта лота.
  • calc_result (CalcResult | None, опционально): Объект рассчитанной комиссии лота.
  • db_amount (int | None, опционально): Количество в БД FunPay.
  • Взаимодействие: Вызывает методы edit_fields, set_fields, renew_fields для работы с полями лота.

edit_fields

  • Назначение: Редактирует переданные поля лота.
  • Аргументы и связи:
  • fields (dict[str, str]): Поля лота и их значения.
  • Взаимодействие: Нет.

set_fields

  • Назначение: Сбрасывает текущие поля лота и устанавливает переданные.
  • Аргументы и связи:
  • fields (dict): Поля лота.
  • Взаимодействие: Нет.

renew_fields

  • Назначение: Обновляет поля лота на основе свойств экземпляра.
  • Аргументы и связи:
  • Нет аргументов.
  • Взаимодействие: Нет.

ChipOffer

  • Назначение: Представляет предложение чипов.
  • Аргументы и связи:
  • lot_id (str): ID лота.
  • active (bool, опционально): Активность предложения.
  • server (str | None, опционально): Название сервера.
  • side (str | None, опционально): Название стороны.
  • price (float | None, опционально): Цена предложения.
  • amount (int | None, опционально): Количество.
  • Взаимодействие: Нет.

ChipFields

  • Назначение: Представляет поля лота чипов.
  • Аргументы и связи:
  • account_id (int): ID аккаунта.
  • subcategory_id (int): ID подкатегории.
  • fields (dict[str, str]): Поля лота.
  • Взаимодействие: Вызывает метод renew_fields для обновления полей лота.

LotPage

  • Назначение: Представляет страницу лота.
  • Аргументы и связи:
  • lot_id (int): ID лота.
  • subcategory (SubCategory | None): Подкатегория.
  • short_description (str | None): Краткое описание.
  • full_description (str | None): Подробное описание.
  • image_urls (list[str]): Список URL-адресов изображений.
  • seller_id (int): ID продавца.
  • seller_username (str): Юзернейм продавца.
  • Взаимодействие: Нет.

SellerShortcut

  • Назначение: Представляет объект пользователя из таблицы предложений.
  • Аргументы и связи:
  • id_ (int): ID пользователя.
  • username (str): Никнейм пользователя.
  • online (bool): Онлайн ли пользователь.
  • stars (None | int): Количество звёзд.
  • reviews (int): Количество отзывов.
  • html (str): HTML код объекта.
  • Взаимодействие: Нет.

LotShortcut

  • Назначение: Представляет виджет лота.
  • Аргументы и связи:
  • id_ (int | str): ID лота.
  • server (str | None): Название сервера.
  • side (str | None): Название стороны.
  • description (str | None): Краткое описание.
  • amount (int | None): Количество.
  • price (float): Цена лота.
  • currency (Currency): Валюта лота.
  • subcategory (SubCategory | None): Подкатегория.
  • html (str): HTML код виджета лота.
  • Взаимодействие: Нет.

MyLotShortcut

  • Назначение: Представляет виджет лота со страницы FunPay.
  • Аргументы и связи:
  • id_ (int | str): ID лота.
  • server (str | None): Название сервера.
  • side (str | None): Название стороны.
  • description (str | None): Краткое описание.
  • amount (int | None): Количество.
  • price (float): Цена лота.
  • currency (Currency): Валюта лота.
  • subcategory (SubCategory | None): Подкатегория.
  • auto (bool): Автовыдача.
  • active (bool): Активность.
  • html (str): HTML код виджета лота.
  • Взаимодействие: Нет.

UserProfile

  • Назначение: Представляет пользователя FunPay.
  • Аргументы и связи:
  • id_ (int): ID пользователя.
  • username (str): Никнейм пользователя.
  • profile_photo (str): Ссылка на фото профиля.
  • online (bool): Онлайн ли пользователь.
  • banned (bool): Заблокирован ли пользователь.
  • html (str): HTML код страницы пользователя.
  • Взаимодействие: Вызывает методы get_lot, get_lots get_sorted_lots, update_lot, add_lot для работы с лотами пользователя.

get_lot

  • Назначение: Возвращает объект лота со страницы пользователя.
  • Аргументы и связи:
  • lot_id (int | str): ID лота.
  • Взаимодействие: Нет.

get_lots

  • Назначение: Возвращает список всех лотов пользователя.
  • Аргументы и связи:
  • Нет аргументов.
  • Взаимодействие: Нет.

get_sorted_lots

  • Назначение: Возвращает список всех лотов пользователя в виде словаря.
  • Аргументы и связи:
  • mode (Literal[1, 2, 3]): Вариант словаря.
  • Взаимодействие: Нет.

update_lot

  • Назначение: Обновляет лот в списке лотов.
  • Аргументы и связи:
  • lot (LotShortcut): Объект лота.
  • Взаимодействие: Нет.

add_lot

  • Назначение: Добавляет лот в список лотов.
  • Аргументы и связи:
  • lot (LotShortcut): Объект лота.
  • Взаимодействие: Нет.

get_common_lots

  • Назначение: Возвращает список стандартных лотов со страницы пользователя.
  • Аргументы и связи:
  • Нет аргументов.
  • Взаимодействие: Нет.

get_currency_lots

  • Назначение: Возвращает список лотов-валют со страницы пользователя.
  • Аргументы и связи:
  • Нет аргументов.
  • Взаимодействие: Нет.

Review

  • Назначение: Представляет отзыв на заказ.
  • Аргументы и связи:
  • stars (int | None): Количество звёзд.
  • text (str | None): Текст отзыва.
  • reply (str | None): Текст ответа на отзыв.
  • anonymous (bool): Анонимный ли отзыв.
  • html (str): HTML код отзыва.
  • hidden (bool): Скрыт ли отзыв.
  • order_id (str | None, опционально): ID заказа.
  • author (str | None, опционально): Автор отзыва.
  • author_id (int | None, опционально): ID автора отзыва.
  • by_bot (bool, опционально): Оставлен ли отзыв ботом.
  • reply_by_bot (bool, опционально): Оставлен ли ответ на отзыв ботом.
  • Взаимодействие: Нет.

Balance

  • Назначение: Представляет информацию о балансе аккаунта.
  • Аргументы и связи:
  • total_rub (float): Общий рублёвый баланс.
  • available_rub (float): Доступный к выводу рублёвый баланс.
  • total_usd (float): Общий долларовый баланс.
  • available_usd (float): Доступный к выводу долларовый баланс.
  • total_eur (float): Общий евро баланс.
  • available_eur (float): Доступный к выводу евро баланс.
  • Взаимодействие: Нет.

PaymentMethod

  • Назначение: Представляет платежное средство при расчете цены для покупателя.
  • Аргументы и связи:
  • name (str | None): Название платежного средства.
  • price (float): Цена.
  • currency (Currency): Валюта.
  • position (int | None, опционально): Позиция.
  • Взаимодействие: Нет.

CalcResult

  • Назначение: Представляет ответ на запрос о расчете комиссии.
  • Аргументы и связи:
  • subcategory_type (SubCategoryTypes): Тип подкатегории.
  • subcategory_id (int): ID подкатегории.
  • methods (list[PaymentMethod]): Список платежных методов.
  • price (float): Цена.
  • min_price_with_commission (float | None, опционально): Минимальная цена с комиссией.
  • min_price_currency (Currency): Валюта минимальной цены.
  • account_currency (Currency): Валюта аккаунта.
  • Взаимодействие: Вызывает методы get_coefficient, commission_coefficient, commission_percent для работы с комиссией.

get_coefficient

  • Назначение: Возвращает отношение цены с комиссией в переданной валюте к цене без комиссии в валюте аккаунта.
  • Аргументы и связи:
  • currency (Currency): Валюта.
  • Взаимодействие: Нет.

commission_coefficient

  • Назначение: Возвращает отношение цены с комиссией к цене без комиссии в валюте аккаунта.
  • Взаимодействие: Нет.

commission_percent

  • Назначение: Возвращает процент комиссии.
  • Взаимодействие: Нет.

Wallet

  • Назначение: Представляет кошелёк со страницы FunPay.
  • Аргументы и связи:
  • type_id (str): ID типа кошелька.
  • data (str): Данные.
  • data_n (int | None, опционально): Дополнительные данные.
  • detail_id (int | None, опционально): ID деталей.
  • is_masked (bool, опционально): Зашифрован ли кошелёк.
  • type_text (str | None, опционально): Текст типа кошелька.
  • Взаимодействие: Нет.

Граф зависимостей