kwork-api/site/api/models/index.html
root 0975b68334 feat: complete Kwork API client with 45+ endpoints
Initial release:
- Complete async API client (45+ endpoints)
- Pydantic models for all responses
- Two-step authentication
- Comprehensive error handling
- 92% test coverage
- Gitea Actions CI/CD
- Semantic release configured
2026-03-29 00:42:54 +00:00

3814 lines
96 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="Unofficial Python client for Kwork.ru API">
<link rel="canonical" href="https://github.com/claw/kwork-api/api/models/">
<link rel="prev" href="../client/">
<link rel="next" href="../errors/">
<link rel="icon" href="../../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.6">
<title>Models - Kwork API</title>
<link rel="stylesheet" href="../../assets/stylesheets/main.484c7ddc.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/palette.ab4e12ef.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link rel="stylesheet" href="../../assets/_mkdocstrings.css">
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#models" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="Kwork API" class="md-header__button md-logo" aria-label="Kwork API" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Kwork API
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Models
</span>
</div>
</div>
</div>
<form class="md-header__option" data-md-component="palette">
<input class="md-option" data-md-color-media="" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_0">
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 6H7c-3.31 0-6 2.69-6 6s2.69 6 6 6h10c3.31 0 6-2.69 6-6s-2.69-6-6-6m0 10H7c-2.21 0-4-1.79-4-4s1.79-4 4-4h10c2.21 0 4 1.79 4 4s-1.79 4-4 4M7 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3"/></svg>
</label>
<input class="md-option" data-md-color-media="" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1">
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_0" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5m0 8a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3"/></svg>
</label>
</form>
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/claw/kwork-api" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
</div>
<div class="md-source__repository">
claw/kwork-api
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../.." class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="../../api-reference/" class="md-tabs__link">
API Reference
</a>
</li>
<li class="md-tabs__item">
<a href="../../examples.md" class="md-tabs__link">
Examples
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="Kwork API" class="md-nav__button md-logo" aria-label="Kwork API" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
</a>
Kwork API
</label>
<div class="md-nav__source">
<a href="https://github.com/claw/kwork-api" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
</div>
<div class="md-source__repository">
claw/kwork-api
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../.." class="md-nav__link">
<span class="md-ellipsis">
Home
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" checked>
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="">
<span class="md-ellipsis">
API Reference
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../api-reference/" class="md-nav__link">
<span class="md-ellipsis">
Overview
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../client/" class="md-nav__link">
<span class="md-ellipsis">
Client
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
Models
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
Models
</span>
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#kwork_api.models" class="md-nav__link">
<span class="md-ellipsis">
models
</span>
</a>
<nav class="md-nav" aria-label="models">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#kwork_api.models-classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
<nav class="md-nav" aria-label="Classes">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#kwork_api.models.APIErrorResponse" class="md-nav__link">
<span class="md-ellipsis">
APIErrorResponse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kwork_api.models.AuthResponse" class="md-nav__link">
<span class="md-ellipsis">
AuthResponse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kwork_api.models.Badge" class="md-nav__link">
<span class="md-ellipsis">
Badge
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kwork_api.models.CatalogResponse" class="md-nav__link">
<span class="md-ellipsis">
CatalogResponse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kwork_api.models.City" class="md-nav__link">
<span class="md-ellipsis">
City
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kwork_api.models.Country" class="md-nav__link">
<span class="md-ellipsis">
Country
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kwork_api.models.DataResponse" class="md-nav__link">
<span class="md-ellipsis">
DataResponse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kwork_api.models.Dialog" class="md-nav__link">
<span class="md-ellipsis">
Dialog
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kwork_api.models.ErrorDetail" class="md-nav__link">
<span class="md-ellipsis">
ErrorDetail
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kwork_api.models.Feature" class="md-nav__link">
<span class="md-ellipsis">
Feature
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kwork_api.models.Kwork" class="md-nav__link">
<span class="md-ellipsis">
Kwork
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kwork_api.models.KworkCategory" class="md-nav__link">
<span class="md-ellipsis">
KworkCategory
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kwork_api.models.KworkDetails" class="md-nav__link">
<span class="md-ellipsis">
KworkDetails
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kwork_api.models.KworkUser" class="md-nav__link">
<span class="md-ellipsis">
KworkUser
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kwork_api.models.Notification" class="md-nav__link">
<span class="md-ellipsis">
Notification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kwork_api.models.NotificationsResponse" class="md-nav__link">
<span class="md-ellipsis">
NotificationsResponse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kwork_api.models.PaginationInfo" class="md-nav__link">
<span class="md-ellipsis">
PaginationInfo
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kwork_api.models.Project" class="md-nav__link">
<span class="md-ellipsis">
Project
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kwork_api.models.ProjectsResponse" class="md-nav__link">
<span class="md-ellipsis">
ProjectsResponse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kwork_api.models.Review" class="md-nav__link">
<span class="md-ellipsis">
Review
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kwork_api.models.ReviewsResponse" class="md-nav__link">
<span class="md-ellipsis">
ReviewsResponse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kwork_api.models.TimeZone" class="md-nav__link">
<span class="md-ellipsis">
TimeZone
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kwork_api.models.ValidationIssue" class="md-nav__link">
<span class="md-ellipsis">
ValidationIssue
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kwork_api.models.ValidationResponse" class="md-nav__link">
<span class="md-ellipsis">
ValidationResponse
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../errors/" class="md-nav__link">
<span class="md-ellipsis">
Errors
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../examples.md" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="models">Models<a class="headerlink" href="#models" title="Permanent link">&para;</a></h1>
<p>Pydantic models for API responses.</p>
<div class="doc doc-object doc-module">
<h2 id="kwork_api.models" class="doc doc-heading">
<span class="doc doc-object-name doc-module-name">kwork_api.models</span>
<a href="#kwork_api.models" class="headerlink" title="Permanent link">&para;</a></h2>
<div class="doc doc-contents first">
<p>Pydantic модели для ответов Kwork API.</p>
<p>Все модели соответствуют структуре, найденной при анализе HAR дампа.
Используются для валидации и типизации ответов API.</p>
<div class="doc doc-children">
<h3 id="kwork_api.models-classes">Classes<a href="#kwork_api.models-classes" class="headerlink" title="Permanent link">&para;</a></h3>
<div class="doc doc-object doc-class">
<h4 id="kwork_api.models.APIErrorResponse" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">APIErrorResponse</span>
<a href="#kwork_api.models.APIErrorResponse" class="headerlink" title="Permanent link">&para;</a></h4>
<div class="doc doc-contents ">
<p class="doc doc-class-bases">
Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
<p>Стандартный ответ API об ошибке.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.APIErrorResponse.success">success</span></code></td>
<td>
<code><span title="bool">bool</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Всегда False для ошибок.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.APIErrorResponse.errors">errors</span></code></td>
<td>
<code><span title="list">list</span>[<a class="autorefs autorefs-internal" title="ErrorDetail (kwork_api.models.ErrorDetail)" href="#kwork_api.models.ErrorDetail">ErrorDetail</a>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Список деталей ошибок.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.APIErrorResponse.message">message</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="str">str</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Общее сообщение об ошибке.</p>
</div>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h4 id="kwork_api.models.AuthResponse" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">AuthResponse</span>
<a href="#kwork_api.models.AuthResponse" class="headerlink" title="Permanent link">&para;</a></h4>
<div class="doc doc-contents ">
<p class="doc doc-class-bases">
Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
<p>Ответ API аутентификации.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.AuthResponse.success">success</span></code></td>
<td>
<code><span title="bool">bool</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Успешность аутентификации.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.AuthResponse.user_id">user_id</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="int">int</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>ID пользователя.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.AuthResponse.username">username</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="str">str</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Имя пользователя.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.AuthResponse.web_auth_token">web_auth_token</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="str">str</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Токен для последующих запросов.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.AuthResponse.message">message</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="str">str</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Сообщение (например, об ошибке).</p>
</div>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h4 id="kwork_api.models.Badge" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">Badge</span>
<a href="#kwork_api.models.Badge" class="headerlink" title="Permanent link">&para;</a></h4>
<div class="doc doc-contents ">
<p class="doc doc-class-bases">
Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
<p>Значок (достижение) пользователя.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Badge.id">id</span></code></td>
<td>
<code><span title="int">int</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Уникальный ID значка.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Badge.name">name</span></code></td>
<td>
<code><span title="str">str</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Название значка.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Badge.description">description</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="str">str</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Описание достижения.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Badge.icon_url">icon_url</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="str">str</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>URL иконки значка.</p>
</div>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h4 id="kwork_api.models.CatalogResponse" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">CatalogResponse</span>
<a href="#kwork_api.models.CatalogResponse" class="headerlink" title="Permanent link">&para;</a></h4>
<div class="doc doc-contents ">
<p class="doc doc-class-bases">
Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
<p>Ответ API каталога кворков.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.CatalogResponse.kworks">kworks</span></code></td>
<td>
<code><span title="list">list</span>[<a class="autorefs autorefs-internal" title="Kwork (kwork_api.models.Kwork)" href="#kwork_api.models.Kwork">Kwork</a>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Список кворков на странице.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.CatalogResponse.pagination">pagination</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<a class="autorefs autorefs-internal" title="PaginationInfo (kwork_api.models.PaginationInfo)" href="#kwork_api.models.PaginationInfo">PaginationInfo</a>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Информация о пагинации.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.CatalogResponse.filters">filters</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="dict">dict</span>[<span title="str">str</span>, <span title="typing.Any">Any</span>]]</code>
</td>
<td>
<div class="doc-md-description">
<p>Доступные фильтры.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.CatalogResponse.sort_options">sort_options</span></code></td>
<td>
<code><span title="list">list</span>[<span title="str">str</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Доступные опции сортировки.</p>
</div>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h4 id="kwork_api.models.City" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">City</span>
<a href="#kwork_api.models.City" class="headerlink" title="Permanent link">&para;</a></h4>
<div class="doc doc-contents ">
<p class="doc doc-class-bases">
Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
<p>Город из справочника.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.City.id">id</span></code></td>
<td>
<code><span title="int">int</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Уникальный ID города.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.City.name">name</span></code></td>
<td>
<code><span title="str">str</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Название города.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.City.country_id">country_id</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="int">int</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>ID страны.</p>
</div>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h4 id="kwork_api.models.Country" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">Country</span>
<a href="#kwork_api.models.Country" class="headerlink" title="Permanent link">&para;</a></h4>
<div class="doc doc-contents ">
<p class="doc doc-class-bases">
Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
<p>Страна из справочника.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Country.id">id</span></code></td>
<td>
<code><span title="int">int</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Уникальный ID страны.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Country.name">name</span></code></td>
<td>
<code><span title="str">str</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Название страны.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Country.code">code</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="str">str</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Код страны (ISO).</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Country.cities">cities</span></code></td>
<td>
<code><span title="list">list</span>[<a class="autorefs autorefs-internal" title="City (kwork_api.models.City)" href="#kwork_api.models.City">City</a>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Список городов в стране.</p>
</div>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h4 id="kwork_api.models.DataResponse" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">DataResponse</span>
<a href="#kwork_api.models.DataResponse" class="headerlink" title="Permanent link">&para;</a></h4>
<div class="doc doc-contents ">
<p class="doc doc-class-bases">
Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
<p>Универсальный ответ API с данными.</p>
<p>Используется как обёртка для различных ответов API.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.DataResponse.success">success</span></code></td>
<td>
<code><span title="bool">bool</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Успешность запроса.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.DataResponse.data">data</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="dict">dict</span>[<span title="str">str</span>, <span title="typing.Any">Any</span>]]</code>
</td>
<td>
<div class="doc-md-description">
<p>Полезные данные (словарь).</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.DataResponse.message">message</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="str">str</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Дополнительное сообщение.</p>
</div>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h4 id="kwork_api.models.Dialog" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">Dialog</span>
<a href="#kwork_api.models.Dialog" class="headerlink" title="Permanent link">&para;</a></h4>
<div class="doc doc-contents ">
<p class="doc doc-class-bases">
Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
<p>Диалог (чат) с пользователем.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Dialog.id">id</span></code></td>
<td>
<code><span title="int">int</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Уникальный ID диалога.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Dialog.participant">participant</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<a class="autorefs autorefs-internal" title="KworkUser (kwork_api.models.KworkUser)" href="#kwork_api.models.KworkUser">KworkUser</a>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Собеседник.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Dialog.last_message">last_message</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="str">str</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Текст последнего сообщения.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Dialog.unread_count">unread_count</span></code></td>
<td>
<code><span title="int">int</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Количество непрочитанных сообщений.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Dialog.updated_at">updated_at</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="datetime.datetime">datetime</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Время последнего сообщения.</p>
</div>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h4 id="kwork_api.models.ErrorDetail" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">ErrorDetail</span>
<a href="#kwork_api.models.ErrorDetail" class="headerlink" title="Permanent link">&para;</a></h4>
<div class="doc doc-contents ">
<p class="doc doc-class-bases">
Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
<p>Детали ошибки API.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.ErrorDetail.code">code</span></code></td>
<td>
<code><span title="str">str</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Код ошибки.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.ErrorDetail.message">message</span></code></td>
<td>
<code><span title="str">str</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Сообщение об ошибке.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.ErrorDetail.field">field</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="str">str</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Поле, вызвавшее ошибку (если применимо).</p>
</div>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h4 id="kwork_api.models.Feature" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">Feature</span>
<a href="#kwork_api.models.Feature" class="headerlink" title="Permanent link">&para;</a></h4>
<div class="doc doc-contents ">
<p class="doc doc-class-bases">
Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
<p>Дополнительная функция (feature) для кворка.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Feature.id">id</span></code></td>
<td>
<code><span title="int">int</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Уникальный ID функции.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Feature.name">name</span></code></td>
<td>
<code><span title="str">str</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Название.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Feature.description">description</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="str">str</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Описание.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Feature.price">price</span></code></td>
<td>
<code><span title="float">float</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Стоимость в рублях.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Feature.type">type</span></code></td>
<td>
<code><span title="str">str</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Тип: "extra", "premium", etc.</p>
</div>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h4 id="kwork_api.models.Kwork" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">Kwork</span>
<a href="#kwork_api.models.Kwork" class="headerlink" title="Permanent link">&para;</a></h4>
<div class="doc doc-contents ">
<p class="doc doc-class-bases">
Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
<p>Кворк — услуга на Kwork.</p>
<p>Базовая модель кворка с основной информацией.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Kwork.id">id</span></code></td>
<td>
<code><span title="int">int</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Уникальный ID кворка.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Kwork.title">title</span></code></td>
<td>
<code><span title="str">str</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Заголовок кворка.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Kwork.description">description</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="str">str</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Краткое описание.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Kwork.price">price</span></code></td>
<td>
<code><span title="float">float</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Цена в рублях.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Kwork.currency">currency</span></code></td>
<td>
<code><span title="str">str</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Валюта (по умолчанию RUB).</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Kwork.category_id">category_id</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="int">int</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>ID категории.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Kwork.seller">seller</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<a class="autorefs autorefs-internal" title="KworkUser (kwork_api.models.KworkUser)" href="#kwork_api.models.KworkUser">KworkUser</a>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Информация о продавце.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Kwork.images">images</span></code></td>
<td>
<code><span title="list">list</span>[<span title="str">str</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Список URL изображений.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Kwork.rating">rating</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="float">float</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Рейтинг кворка (0-5).</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Kwork.reviews_count">reviews_count</span></code></td>
<td>
<code><span title="int">int</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Количество отзывов.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Kwork.created_at">created_at</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="datetime.datetime">datetime</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Дата создания.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Kwork.updated_at">updated_at</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="datetime.datetime">datetime</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Дата последнего обновления.</p>
</div>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h4 id="kwork_api.models.KworkCategory" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">KworkCategory</span>
<a href="#kwork_api.models.KworkCategory" class="headerlink" title="Permanent link">&para;</a></h4>
<div class="doc doc-contents ">
<p class="doc doc-class-bases">
Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
<p>Категория кворков.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.KworkCategory.id">id</span></code></td>
<td>
<code><span title="int">int</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Уникальный ID категории.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.KworkCategory.name">name</span></code></td>
<td>
<code><span title="str">str</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Название категории.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.KworkCategory.slug">slug</span></code></td>
<td>
<code><span title="str">str</span></code>
</td>
<td>
<div class="doc-md-description">
<p>URL-safe идентификатор.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.KworkCategory.parent_id">parent_id</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="int">int</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>ID родительской категории для вложенности.</p>
</div>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h4 id="kwork_api.models.KworkDetails" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">KworkDetails</span>
<a href="#kwork_api.models.KworkDetails" class="headerlink" title="Permanent link">&para;</a></h4>
<div class="doc doc-contents ">
<p class="doc doc-class-bases">
Bases: <code><a class="autorefs autorefs-internal" title="Kwork (kwork_api.models.Kwork)" href="#kwork_api.models.Kwork">Kwork</a></code></p>
<p>Расширенная информация о кворке.</p>
<p>Наследует все поля Kwork плюс дополнительные детали.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.KworkDetails.full_description">full_description</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="str">str</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Полное описание услуги.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.KworkDetails.requirements">requirements</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="str">str</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Требования к заказчику.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.KworkDetails.delivery_time">delivery_time</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="int">int</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Срок выполнения в днях.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.KworkDetails.revisions">revisions</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="int">int</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Количество бесплатных правок.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.KworkDetails.features">features</span></code></td>
<td>
<code><span title="list">list</span>[<span title="str">str</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Список дополнительных опций.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.KworkDetails.faq">faq</span></code></td>
<td>
<code><span title="list">list</span>[<span title="dict">dict</span>[<span title="str">str</span>, <span title="str">str</span>]]</code>
</td>
<td>
<div class="doc-md-description">
<p>Список вопросов и ответов.</p>
</div>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h4 id="kwork_api.models.KworkUser" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">KworkUser</span>
<a href="#kwork_api.models.KworkUser" class="headerlink" title="Permanent link">&para;</a></h4>
<div class="doc doc-contents ">
<p class="doc doc-class-bases">
Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
<p>Информация о пользователе Kwork.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.KworkUser.id">id</span></code></td>
<td>
<code><span title="int">int</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Уникальный ID пользователя.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.KworkUser.username">username</span></code></td>
<td>
<code><span title="str">str</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Имя пользователя (логин).</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.KworkUser.avatar_url">avatar_url</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="str">str</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>URL аватара или None.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.KworkUser.is_online">is_online</span></code></td>
<td>
<code><span title="bool">bool</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Статус онлайн.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.KworkUser.rating">rating</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="float">float</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Рейтинг пользователя (0-5).</p>
</div>
</td>
</tr>
</tbody>
</table>
<details class="example" open>
<summary>Example</summary>
<p>user = KworkUser(id=123, username="seller", rating=4.9)
print(f"{user.username}: {user.rating} ★")</p>
</details>
<div class="doc doc-children">
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h4 id="kwork_api.models.Notification" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">Notification</span>
<a href="#kwork_api.models.Notification" class="headerlink" title="Permanent link">&para;</a></h4>
<div class="doc doc-contents ">
<p class="doc doc-class-bases">
Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
<p>Уведомление пользователя.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Notification.id">id</span></code></td>
<td>
<code><span title="int">int</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Уникальный ID уведомления.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Notification.type">type</span></code></td>
<td>
<code><span title="str">str</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Тип уведомления: "message", "order", "system", etc.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Notification.title">title</span></code></td>
<td>
<code><span title="str">str</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Заголовок уведомления.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Notification.message">message</span></code></td>
<td>
<code><span title="str">str</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Текст уведомления.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Notification.is_read">is_read</span></code></td>
<td>
<code><span title="bool">bool</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Прочитано ли уведомление.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Notification.created_at">created_at</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="datetime.datetime">datetime</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Дата создания.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Notification.link">link</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="str">str</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Ссылка для перехода (если есть).</p>
</div>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h4 id="kwork_api.models.NotificationsResponse" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">NotificationsResponse</span>
<a href="#kwork_api.models.NotificationsResponse" class="headerlink" title="Permanent link">&para;</a></h4>
<div class="doc doc-contents ">
<p class="doc doc-class-bases">
Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
<p>Ответ API списка уведомлений.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.NotificationsResponse.notifications">notifications</span></code></td>
<td>
<code><span title="list">list</span>[<a class="autorefs autorefs-internal" title="Notification (kwork_api.models.Notification)" href="#kwork_api.models.Notification">Notification</a>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Список уведомлений.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.NotificationsResponse.unread_count">unread_count</span></code></td>
<td>
<code><span title="int">int</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Количество непрочитанных уведомлений.</p>
</div>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h4 id="kwork_api.models.PaginationInfo" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">PaginationInfo</span>
<a href="#kwork_api.models.PaginationInfo" class="headerlink" title="Permanent link">&para;</a></h4>
<div class="doc doc-contents ">
<p class="doc doc-class-bases">
Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
<p>Информация о пагинации.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.PaginationInfo.current_page">current_page</span></code></td>
<td>
<code><span title="int">int</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Текущая страница (начиная с 1).</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.PaginationInfo.total_pages">total_pages</span></code></td>
<td>
<code><span title="int">int</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Общее количество страниц.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.PaginationInfo.total_items">total_items</span></code></td>
<td>
<code><span title="int">int</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Общее количество элементов.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.PaginationInfo.items_per_page">items_per_page</span></code></td>
<td>
<code><span title="int">int</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Элементов на странице.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.PaginationInfo.has_next">has_next</span></code></td>
<td>
<code><span title="bool">bool</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Есть ли следующая страница.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.PaginationInfo.has_prev">has_prev</span></code></td>
<td>
<code><span title="bool">bool</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Есть ли предыдущая страница.</p>
</div>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h4 id="kwork_api.models.Project" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">Project</span>
<a href="#kwork_api.models.Project" class="headerlink" title="Permanent link">&para;</a></h4>
<div class="doc doc-contents ">
<p class="doc doc-class-bases">
Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
<p>Проект (заказ на бирже фриланса).</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Project.id">id</span></code></td>
<td>
<code><span title="int">int</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Уникальный ID проекта.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Project.title">title</span></code></td>
<td>
<code><span title="str">str</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Заголовок проекта.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Project.description">description</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="str">str</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Описание задачи.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Project.budget">budget</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="float">float</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Бюджет проекта.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Project.budget_type">budget_type</span></code></td>
<td>
<code><span title="str">str</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Тип бюджета: "fixed" (фиксированный) или "hourly" (почасовой).</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Project.category_id">category_id</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="int">int</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>ID категории.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Project.customer">customer</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<a class="autorefs autorefs-internal" title="KworkUser (kwork_api.models.KworkUser)" href="#kwork_api.models.KworkUser">KworkUser</a>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Информация о заказчике.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Project.status">status</span></code></td>
<td>
<code><span title="str">str</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Статус проекта: "open", "in_progress", "completed", "cancelled".</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Project.created_at">created_at</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="datetime.datetime">datetime</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Дата создания.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Project.updated_at">updated_at</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="datetime.datetime">datetime</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Дата обновления.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Project.bids_count">bids_count</span></code></td>
<td>
<code><span title="int">int</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Количество откликов.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Project.skills">skills</span></code></td>
<td>
<code><span title="list">list</span>[<span title="str">str</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Требуемые навыки.</p>
</div>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h4 id="kwork_api.models.ProjectsResponse" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">ProjectsResponse</span>
<a href="#kwork_api.models.ProjectsResponse" class="headerlink" title="Permanent link">&para;</a></h4>
<div class="doc doc-contents ">
<p class="doc doc-class-bases">
Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
<p>Ответ API списка проектов.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.ProjectsResponse.projects">projects</span></code></td>
<td>
<code><span title="list">list</span>[<a class="autorefs autorefs-internal" title="Project (kwork_api.models.Project)" href="#kwork_api.models.Project">Project</a>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Список проектов.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.ProjectsResponse.pagination">pagination</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<a class="autorefs autorefs-internal" title="PaginationInfo (kwork_api.models.PaginationInfo)" href="#kwork_api.models.PaginationInfo">PaginationInfo</a>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Информация о пагинации.</p>
</div>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h4 id="kwork_api.models.Review" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">Review</span>
<a href="#kwork_api.models.Review" class="headerlink" title="Permanent link">&para;</a></h4>
<div class="doc doc-contents ">
<p class="doc doc-class-bases">
Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
<p>Отзыв о кворке или проекте.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Review.id">id</span></code></td>
<td>
<code><span title="int">int</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Уникальный ID отзыва.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Review.rating">rating</span></code></td>
<td>
<code><span title="int">int</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Оценка от 1 до 5.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Review.comment">comment</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="str">str</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Текст отзыва.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Review.author">author</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<a class="autorefs autorefs-internal" title="KworkUser (kwork_api.models.KworkUser)" href="#kwork_api.models.KworkUser">KworkUser</a>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Автор отзыва.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Review.kwork_id">kwork_id</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="int">int</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>ID кворка (если отзыв о кворке).</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.Review.created_at">created_at</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="datetime.datetime">datetime</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Дата создания.</p>
</div>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h4 id="kwork_api.models.ReviewsResponse" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">ReviewsResponse</span>
<a href="#kwork_api.models.ReviewsResponse" class="headerlink" title="Permanent link">&para;</a></h4>
<div class="doc doc-contents ">
<p class="doc doc-class-bases">
Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
<p>Ответ API списка отзывов.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.ReviewsResponse.reviews">reviews</span></code></td>
<td>
<code><span title="list">list</span>[<a class="autorefs autorefs-internal" title="Review (kwork_api.models.Review)" href="#kwork_api.models.Review">Review</a>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Список отзывов.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.ReviewsResponse.pagination">pagination</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<a class="autorefs autorefs-internal" title="PaginationInfo (kwork_api.models.PaginationInfo)" href="#kwork_api.models.PaginationInfo">PaginationInfo</a>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Информация о пагинации.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.ReviewsResponse.average_rating">average_rating</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="float">float</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Средний рейтинг.</p>
</div>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h4 id="kwork_api.models.TimeZone" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">TimeZone</span>
<a href="#kwork_api.models.TimeZone" class="headerlink" title="Permanent link">&para;</a></h4>
<div class="doc doc-contents ">
<p class="doc doc-class-bases">
Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
<p>Часовой пояс.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.TimeZone.id">id</span></code></td>
<td>
<code><span title="int">int</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Уникальный ID.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.TimeZone.name">name</span></code></td>
<td>
<code><span title="str">str</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Название пояса.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.TimeZone.offset">offset</span></code></td>
<td>
<code><span title="str">str</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Смещение от UTC (например, "+03:00").</p>
</div>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h4 id="kwork_api.models.ValidationIssue" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">ValidationIssue</span>
<a href="#kwork_api.models.ValidationIssue" class="headerlink" title="Permanent link">&para;</a></h4>
<div class="doc doc-contents ">
<p class="doc doc-class-bases">
Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
<p>Проблема, найденная при валидации текста.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.ValidationIssue.type">type</span></code></td>
<td>
<code><span title="str">str</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Тип проблемы: "error", "warning", "suggestion".</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.ValidationIssue.code">code</span></code></td>
<td>
<code><span title="str">str</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Код ошибки (например, "SPELLING", "GRAMMAR", "LENGTH").</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.ValidationIssue.message">message</span></code></td>
<td>
<code><span title="str">str</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Описание проблемы.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.ValidationIssue.position">position</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="int">int</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Позиция в тексте (если применимо).</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.ValidationIssue.suggestion">suggestion</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="str">str</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Предлагаемое исправление (если есть).</p>
</div>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h4 id="kwork_api.models.ValidationResponse" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">ValidationResponse</span>
<a href="#kwork_api.models.ValidationResponse" class="headerlink" title="Permanent link">&para;</a></h4>
<div class="doc doc-contents ">
<p class="doc doc-class-bases">
Bases: <code><span title="pydantic.BaseModel">BaseModel</span></code></p>
<p>Ответ API валидации текста.</p>
<p>Используется для эндпоинта /api/validation/checktext.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.ValidationResponse.success">success</span></code></td>
<td>
<code><span title="bool">bool</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Успешность валидации.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.ValidationResponse.is_valid">is_valid</span></code></td>
<td>
<code><span title="bool">bool</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Текст проходит валидацию (нет критических ошибок).</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.ValidationResponse.issues">issues</span></code></td>
<td>
<code><span title="list">list</span>[<a class="autorefs autorefs-internal" title="ValidationIssue (kwork_api.models.ValidationIssue)" href="#kwork_api.models.ValidationIssue">ValidationIssue</a>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Список найденных проблем.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.ValidationResponse.score">score</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="int">int</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Оценка качества текста (0-100, если доступна).</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="kwork_api.models.ValidationResponse.message">message</span></code></td>
<td>
<code><span title="typing.Optional">Optional</span>[<span title="str">str</span>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Дополнительное сообщение.</p>
</div>
</td>
</tr>
</tbody>
</table>
<div class="doc doc-children">
</div>
</div>
</div>
</div>
</div>
</div>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "toc.integrate", "search.suggest", "search.highlight"], "search": "../../assets/javascripts/workers/search.2c215733.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script src="../../assets/javascripts/bundle.79ae519e.min.js"></script>
</body>
</html>