Архитектурная роль
Модуль 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, опционально): Текст типа кошелька. - Взаимодействие: Нет.