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]
|
Дополнительное сообщение. |