Skip to content

Models

Pydantic models for API responses.

kwork_api.models

Pydantic модели для ответов Kwork API.

Все модели соответствуют структуре, найденной при анализе HAR дампа. Используются для валидации и типизации ответов API.

Classes

APIErrorResponse

Bases: BaseModel

Стандартный ответ API об ошибке.

Attributes:

Name Type Description
success bool

Всегда False для ошибок.

errors list[ErrorDetail]

Список деталей ошибок.

message Optional[str]

Общее сообщение об ошибке.

AuthResponse

Bases: BaseModel

Ответ API аутентификации.

Attributes:

Name Type Description
success bool

Успешность аутентификации.

user_id Optional[int]

ID пользователя.

username Optional[str]

Имя пользователя.

web_auth_token Optional[str]

Токен для последующих запросов.

message Optional[str]

Сообщение (например, об ошибке).

Badge

Bases: BaseModel

Значок (достижение) пользователя.

Attributes:

Name Type Description
id int

Уникальный ID значка.

name str

Название значка.

description Optional[str]

Описание достижения.

icon_url Optional[str]

URL иконки значка.

CatalogResponse

Bases: BaseModel

Ответ API каталога кворков.

Attributes:

Name Type Description
kworks list[Kwork]

Список кворков на странице.

pagination Optional[PaginationInfo]

Информация о пагинации.

filters Optional[dict[str, Any]]

Доступные фильтры.

sort_options list[str]

Доступные опции сортировки.

City

Bases: BaseModel

Город из справочника.

Attributes:

Name Type Description
id int

Уникальный ID города.

name str

Название города.

country_id Optional[int]

ID страны.

Country

Bases: BaseModel

Страна из справочника.

Attributes:

Name Type Description
id int

Уникальный ID страны.

name str

Название страны.

code Optional[str]

Код страны (ISO).

cities list[City]

Список городов в стране.

DataResponse

Bases: BaseModel

Универсальный ответ API с данными.

Используется как обёртка для различных ответов API.

Attributes:

Name Type Description
success bool

Успешность запроса.

data Optional[dict[str, Any]]

Полезные данные (словарь).

message Optional[str]

Дополнительное сообщение.

Dialog

Bases: BaseModel

Диалог (чат) с пользователем.

Attributes:

Name Type Description
id int

Уникальный ID диалога.

participant Optional[KworkUser]

Собеседник.

last_message Optional[str]

Текст последнего сообщения.

unread_count int

Количество непрочитанных сообщений.

updated_at Optional[datetime]

Время последнего сообщения.

ErrorDetail

Bases: BaseModel

Детали ошибки API.

Attributes:

Name Type Description
code str

Код ошибки.

message str

Сообщение об ошибке.

field Optional[str]

Поле, вызвавшее ошибку (если применимо).

Feature

Bases: BaseModel

Дополнительная функция (feature) для кворка.

Attributes:

Name Type Description
id int

Уникальный ID функции.

name str

Название.

description Optional[str]

Описание.

price float

Стоимость в рублях.

type str

Тип: "extra", "premium", etc.

Kwork

Bases: BaseModel

Кворк — услуга на Kwork.

Базовая модель кворка с основной информацией.

Attributes:

Name Type Description
id int

Уникальный ID кворка.

title str

Заголовок кворка.

description Optional[str]

Краткое описание.

price float

Цена в рублях.

currency str

Валюта (по умолчанию RUB).

category_id Optional[int]

ID категории.

seller Optional[KworkUser]

Информация о продавце.

images list[str]

Список URL изображений.

rating Optional[float]

Рейтинг кворка (0-5).

reviews_count int

Количество отзывов.

created_at Optional[datetime]

Дата создания.

updated_at Optional[datetime]

Дата последнего обновления.

KworkCategory

Bases: BaseModel

Категория кворков.

Attributes:

Name Type Description
id int

Уникальный ID категории.

name str

Название категории.

slug str

URL-safe идентификатор.

parent_id Optional[int]

ID родительской категории для вложенности.

KworkDetails

Bases: Kwork

Расширенная информация о кворке.

Наследует все поля Kwork плюс дополнительные детали.

Attributes:

Name Type Description
full_description Optional[str]

Полное описание услуги.

requirements Optional[str]

Требования к заказчику.

delivery_time Optional[int]

Срок выполнения в днях.

revisions Optional[int]

Количество бесплатных правок.

features list[str]

Список дополнительных опций.

faq list[dict[str, str]]

Список вопросов и ответов.

KworkUser

Bases: BaseModel

Информация о пользователе Kwork.

Attributes:

Name Type Description
id int

Уникальный ID пользователя.

username str

Имя пользователя (логин).

avatar_url Optional[str]

URL аватара или None.

is_online bool

Статус онлайн.

rating Optional[float]

Рейтинг пользователя (0-5).

Example

user = KworkUser(id=123, username="seller", rating=4.9) print(f"{user.username}: {user.rating} ★")

Notification

Bases: BaseModel

Уведомление пользователя.

Attributes:

Name Type Description
id int

Уникальный ID уведомления.

type str

Тип уведомления: "message", "order", "system", etc.

title str

Заголовок уведомления.

message str

Текст уведомления.

is_read bool

Прочитано ли уведомление.

created_at Optional[datetime]

Дата создания.

link Optional[str]

Ссылка для перехода (если есть).

NotificationsResponse

Bases: BaseModel

Ответ API списка уведомлений.

Attributes:

Name Type Description
notifications list[Notification]

Список уведомлений.

unread_count int

Количество непрочитанных уведомлений.

PaginationInfo

Bases: BaseModel

Информация о пагинации.

Attributes:

Name Type Description
current_page int

Текущая страница (начиная с 1).

total_pages int

Общее количество страниц.

total_items int

Общее количество элементов.

items_per_page int

Элементов на странице.

has_next bool

Есть ли следующая страница.

has_prev bool

Есть ли предыдущая страница.

Project

Bases: BaseModel

Проект (заказ на бирже фриланса).

Attributes:

Name Type Description
id int

Уникальный ID проекта.

title str

Заголовок проекта.

description Optional[str]

Описание задачи.

budget Optional[float]

Бюджет проекта.

budget_type str

Тип бюджета: "fixed" (фиксированный) или "hourly" (почасовой).

category_id Optional[int]

ID категории.

customer Optional[KworkUser]

Информация о заказчике.

status str

Статус проекта: "open", "in_progress", "completed", "cancelled".

created_at Optional[datetime]

Дата создания.

updated_at Optional[datetime]

Дата обновления.

bids_count int

Количество откликов.

skills list[str]

Требуемые навыки.

ProjectsResponse

Bases: BaseModel

Ответ API списка проектов.

Attributes:

Name Type Description
projects list[Project]

Список проектов.

pagination Optional[PaginationInfo]

Информация о пагинации.

Review

Bases: BaseModel

Отзыв о кворке или проекте.

Attributes:

Name Type Description
id int

Уникальный ID отзыва.

rating int

Оценка от 1 до 5.

comment Optional[str]

Текст отзыва.

author Optional[KworkUser]

Автор отзыва.

kwork_id Optional[int]

ID кворка (если отзыв о кворке).

created_at Optional[datetime]

Дата создания.

ReviewsResponse

Bases: BaseModel

Ответ API списка отзывов.

Attributes:

Name Type Description
reviews list[Review]

Список отзывов.

pagination Optional[PaginationInfo]

Информация о пагинации.

average_rating Optional[float]

Средний рейтинг.

TimeZone

Bases: BaseModel

Часовой пояс.

Attributes:

Name Type Description
id int

Уникальный ID.

name str

Название пояса.

offset str

Смещение от UTC (например, "+03:00").

ValidationIssue

Bases: BaseModel

Проблема, найденная при валидации текста.

Attributes:

Name Type Description
type str

Тип проблемы: "error", "warning", "suggestion".

code str

Код ошибки (например, "SPELLING", "GRAMMAR", "LENGTH").

message str

Описание проблемы.

position Optional[int]

Позиция в тексте (если применимо).

suggestion Optional[str]

Предлагаемое исправление (если есть).

ValidationResponse

Bases: BaseModel

Ответ API валидации текста.

Используется для эндпоинта /api/validation/checktext.

Attributes:

Name Type Description
success bool

Успешность валидации.

is_valid bool

Текст проходит валидацию (нет критических ошибок).

issues list[ValidationIssue]

Список найденных проблем.

score Optional[int]

Оценка качества текста (0-100, если доступна).

message Optional[str]

Дополнительное сообщение.