swagger: '2.0'
info:
  title: Todos
  description: "Web-\u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u043B\u044F \u0440\
    \u0430\u0431\u043E\u0442\u044B \u0441 TODO-\u0437\u0430\u043C\u0435\u0442\u043A\
    \u0430\u043C\u0438"
  contact:
    name: Radif
    url: https://radif.ru
    email: mail@radif.ru
  license:
    name: MIT License
  version: '1.0'
host: backend.radif.ru
schemes:
  - http
basePath: /api
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  Basic:
    type: basic
security:
  - Basic: []
paths:
  /images/:
    get:
      operationId: images_list
      description: "\u041D\u0430\u0431\u043E\u0440 \u043F\u0440\u0435\u0434\u0441\u0442\
        \u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u043C\u043E\
        \u0434\u0435\u043B\u0438 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\
        \u0438\u0439"
      parameters:
        - name: page
          in: query
          description: A page number within the paginated result set.
          required: false
          type: integer
      responses:
        '200':
          description: ''
          schema:
            required:
              - count
              - results
            type: object
            properties:
              count:
                type: integer
              next:
                type: string
                format: uri
                x-nullable: true
              previous:
                type: string
                format: uri
                x-nullable: true
              results:
                type: array
                items:
                  $ref: '#/definitions/ImageModel'
      tags:
        - images
    post:
      operationId: images_create
      description: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0438\
        \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F"
      parameters:
        - name: data
          in: body
          required: true
          schema:
            $ref: '#/definitions/ImageModel'
      responses:
        '201':
          description: ''
          schema:
            $ref: '#/definitions/ImageModel'
      tags:
        - images
    parameters: []
  /images/{id}/:
    get:
      operationId: images_read
      description: "\u041D\u0430\u0431\u043E\u0440 \u043F\u0440\u0435\u0434\u0441\u0442\
        \u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u043C\u043E\
        \u0434\u0435\u043B\u0438 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\
        \u0438\u0439"
      parameters: []
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/ImageModel'
      tags:
        - images
    patch:
      operationId: images_partial_update
      description: "\u041D\u0430\u0431\u043E\u0440 \u043F\u0440\u0435\u0434\u0441\u0442\
        \u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u043C\u043E\
        \u0434\u0435\u043B\u0438 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\
        \u0438\u0439"
      parameters:
        - name: data
          in: body
          required: true
          schema:
            $ref: '#/definitions/ImageModelUpdate'
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/ImageModelUpdate'
      tags:
        - images
    delete:
      operationId: images_delete
      description: "\u041D\u0430\u0431\u043E\u0440 \u043F\u0440\u0435\u0434\u0441\u0442\
        \u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u043C\u043E\
        \u0434\u0435\u043B\u0438 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\
        \u0438\u0439"
      parameters: []
      responses:
        '204':
          description: ''
      tags:
        - images
    parameters:
      - name: id
        in: path
        description: "A unique integer value identifying this \u0418\u0437\u043E\u0431\
          \u0440\u0430\u0436\u0435\u043D\u0438\u0435."
        required: true
        type: integer
  /images/{id}/resize/:
    post:
      operationId: images_resize
      description: "\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435 \u0440\u0430\
        \u0437\u043C\u0435\u0440\u0430 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\
        \u043D\u0438\u044F"
      parameters:
        - name: data
          in: body
          required: true
          schema:
            $ref: '#/definitions/ImageModel'
      responses:
        '201':
          description: ''
          schema:
            $ref: '#/definitions/ImageModel'
      tags:
        - images
    parameters:
      - name: id
        in: path
        description: "A unique integer value identifying this \u0418\u0437\u043E\u0431\
          \u0440\u0430\u0436\u0435\u043D\u0438\u0435."
        required: true
        type: integer
  /projects/:
    get:
      operationId: projects_list
      description: "\u041D\u0430\u0431\u043E\u0440 \u043F\u0440\u0435\u0434\u0441\u0442\
        \u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u043C\u043E\
        \u0434\u0435\u043B\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432"
      parameters:
        - name: name
          in: query
          description: ''
          required: false
          type: string
        - name: limit
          in: query
          description: Number of results to return per page.
          required: false
          type: integer
        - name: offset
          in: query
          description: The initial index from which to return the results.
          required: false
          type: integer
      responses:
        '200':
          description: ''
          schema:
            required:
              - count
              - results
            type: object
            properties:
              count:
                type: integer
              next:
                type: string
                format: uri
                x-nullable: true
              previous:
                type: string
                format: uri
                x-nullable: true
              results:
                type: array
                items:
                  $ref: '#/definitions/ProjectModelSerializerGet'
      tags:
        - projects
    post:
      operationId: projects_create
      description: "\u041D\u0430\u0431\u043E\u0440 \u043F\u0440\u0435\u0434\u0441\u0442\
        \u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u043C\u043E\
        \u0434\u0435\u043B\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432"
      parameters:
        - name: data
          in: body
          required: true
          schema:
            $ref: '#/definitions/ProjectModel'
      responses:
        '201':
          description: ''
          schema:
            $ref: '#/definitions/ProjectModel'
      tags:
        - projects
    parameters: []
  /projects/active/:
    get:
      operationId: projects_active_read
      description: "\u041F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0432\u0441\u0435\
        \ \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0435 \u043F\u0440\u043E\u0435\
        \u043A\u0442\u044B \u0431\u0435\u0437 \u0432\u043B\u043E\u0436\u0435\u043D\
        \u043D\u044B\u0445 \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432"
      parameters:
        - name: name
          in: query
          description: ''
          required: false
          type: string
        - name: limit
          in: query
          description: Number of results to return per page.
          required: false
          type: integer
        - name: offset
          in: query
          description: The initial index from which to return the results.
          required: false
          type: integer
      responses:
        '200':
          description: ''
          schema:
            required:
              - count
              - results
            type: object
            properties:
              count:
                type: integer
              next:
                type: string
                format: uri
                x-nullable: true
              previous:
                type: string
                format: uri
                x-nullable: true
              results:
                type: array
                items:
                  $ref: '#/definitions/ProjectModelSerializerGet'
      tags:
        - projects
    parameters: []
  /projects/inactive/:
    get:
      operationId: projects_inactive_read
      description: "\u041F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0432\u0441\u0435\
        \ \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0435 \u043F\u0440\
        \u043E\u0435\u043A\u0442\u044B \u0431\u0435\u0437 \u0432\u043B\u043E\u0436\
        \u0435\u043D\u043D\u044B\u0445 \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432"
      parameters:
        - name: name
          in: query
          description: ''
          required: false
          type: string
        - name: limit
          in: query
          description: Number of results to return per page.
          required: false
          type: integer
        - name: offset
          in: query
          description: The initial index from which to return the results.
          required: false
          type: integer
      responses:
        '200':
          description: ''
          schema:
            required:
              - count
              - results
            type: object
            properties:
              count:
                type: integer
              next:
                type: string
                format: uri
                x-nullable: true
              previous:
                type: string
                format: uri
                x-nullable: true
              results:
                type: array
                items:
                  $ref: '#/definitions/ProjectModelSerializerGet'
      tags:
        - projects
    parameters: []
  /projects/{id}/:
    get:
      operationId: projects_read
      description: "\u041D\u0430\u0431\u043E\u0440 \u043F\u0440\u0435\u0434\u0441\u0442\
        \u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u043C\u043E\
        \u0434\u0435\u043B\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432"
      parameters: []
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/ProjectModelSerializerGet'
      tags:
        - projects
    put:
      operationId: projects_update
      description: "\u041D\u0430\u0431\u043E\u0440 \u043F\u0440\u0435\u0434\u0441\u0442\
        \u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u043C\u043E\
        \u0434\u0435\u043B\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432"
      parameters:
        - name: data
          in: body
          required: true
          schema:
            $ref: '#/definitions/ProjectModel'
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/ProjectModel'
      tags:
        - projects
    patch:
      operationId: projects_partial_update
      description: "\u041D\u0430\u0431\u043E\u0440 \u043F\u0440\u0435\u0434\u0441\u0442\
        \u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u043C\u043E\
        \u0434\u0435\u043B\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432"
      parameters:
        - name: data
          in: body
          required: true
          schema:
            $ref: '#/definitions/ProjectModel'
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/ProjectModel'
      tags:
        - projects
    delete:
      operationId: projects_delete
      description: |-
        Переопределения метода удаления (DELETE)
        Вместо фактического удаления меняем активность на 0 (False)
        Так же меняется активность на 0 у всех связанных заметок
      parameters: []
      responses:
        '204':
          description: ''
      tags:
        - projects
    parameters:
      - name: id
        in: path
        description: "A unique integer value identifying this \u041F\u0440\u043E\u0435\
          \u043A\u0442."
        required: true
        type: integer
  /roles/:
    get:
      operationId: roles_list
      description: "\u0420\u043E\u043B\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\
        \u0430\u0442\u0435\u043B\u0435\u0439"
      parameters:
        - name: page
          in: query
          description: A page number within the paginated result set.
          required: false
          type: integer
      responses:
        '200':
          description: ''
          schema:
            required:
              - count
              - results
            type: object
            properties:
              count:
                type: integer
              next:
                type: string
                format: uri
                x-nullable: true
              previous:
                type: string
                format: uri
                x-nullable: true
              results:
                type: array
                items:
                  $ref: '#/definitions/PermissionGroupsSerializerGet'
      tags:
        - roles
    parameters: []
  /roles/only/:
    get:
      operationId: roles_only_read
      description: "\u041F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0432\u0441\u0435\
        \ \u0440\u043E\u043B\u0438 \u0431\u0435\u0437 \u0432\u043B\u043E\u0436\u0435\
        \u043D\u043D\u044B\u0445 \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432"
      parameters:
        - name: page
          in: query
          description: A page number within the paginated result set.
          required: false
          type: integer
      responses:
        '200':
          description: ''
          schema:
            required:
              - count
              - results
            type: object
            properties:
              count:
                type: integer
              next:
                type: string
                format: uri
                x-nullable: true
              previous:
                type: string
                format: uri
                x-nullable: true
              results:
                type: array
                items:
                  $ref: '#/definitions/PermissionGroupsSerializerGet'
      tags:
        - roles
    parameters: []
  /roles/{id}/:
    get:
      operationId: roles_read
      description: "\u0420\u043E\u043B\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\
        \u0430\u0442\u0435\u043B\u0435\u0439"
      parameters: []
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/PermissionGroupsSerializerGet'
      tags:
        - roles
    parameters:
      - name: id
        in: path
        description: "A unique integer value identifying this \u0433\u0440\u0443\u043F\
          \u043F\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0439\
          ."
        required: true
        type: integer
  /todos/:
    get:
      operationId: todos_list
      description: "\u041D\u0430\u0431\u043E\u0440 \u043F\u0440\u0435\u0434\u0441\u0442\
        \u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u043C\u043E\
        \u0434\u0435\u043B\u0438 \u0437\u0430\u043C\u0435\u0442\u043E\u043A"
      parameters:
        - name: created
          in: query
          description: ''
          required: false
          type: string
        - name: project
          in: query
          description: ''
          required: false
          type: string
        - name: project__name
          in: query
          description: ''
          required: false
          type: string
        - name: limit
          in: query
          description: Number of results to return per page.
          required: false
          type: integer
        - name: offset
          in: query
          description: The initial index from which to return the results.
          required: false
          type: integer
      responses:
        '200':
          description: ''
          schema:
            required:
              - count
              - results
            type: object
            properties:
              count:
                type: integer
              next:
                type: string
                format: uri
                x-nullable: true
              previous:
                type: string
                format: uri
                x-nullable: true
              results:
                type: array
                items:
                  $ref: '#/definitions/TodoModelSerializerGet'
      tags:
        - todos
    post:
      operationId: todos_create
      description: "\u041D\u0430\u0431\u043E\u0440 \u043F\u0440\u0435\u0434\u0441\u0442\
        \u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u043C\u043E\
        \u0434\u0435\u043B\u0438 \u0437\u0430\u043C\u0435\u0442\u043E\u043A"
      parameters:
        - name: data
          in: body
          required: true
          schema:
            $ref: '#/definitions/TodoModel'
      responses:
        '201':
          description: ''
          schema:
            $ref: '#/definitions/TodoModel'
      tags:
        - todos
    parameters: []
  /todos/active/:
    get:
      operationId: todos_active_read
      description: "\u041F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0432\u0441\u0435\
        \ \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0435 \u0437\u0430\u043C\u0435\
        \u0442\u043A\u0438 \u0431\u0435\u0437 \u0432\u043B\u043E\u0436\u0435\u043D\
        \u043D\u044B\u0445 \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432"
      parameters:
        - name: created
          in: query
          description: ''
          required: false
          type: string
        - name: project
          in: query
          description: ''
          required: false
          type: string
        - name: project__name
          in: query
          description: ''
          required: false
          type: string
        - name: limit
          in: query
          description: Number of results to return per page.
          required: false
          type: integer
        - name: offset
          in: query
          description: The initial index from which to return the results.
          required: false
          type: integer
      responses:
        '200':
          description: ''
          schema:
            required:
              - count
              - results
            type: object
            properties:
              count:
                type: integer
              next:
                type: string
                format: uri
                x-nullable: true
              previous:
                type: string
                format: uri
                x-nullable: true
              results:
                type: array
                items:
                  $ref: '#/definitions/TodoModelSerializerGet'
      tags:
        - todos
    parameters: []
  /todos/async_fish_todos/:
    get:
      operationId: todos_async_fish_todos_read
      description: "\u0410\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u043D\u043E\u0435\
        \ (asyncio, aiohttp) \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435\
        \ \u0438 \u0432\u044B\u0432\u043E\u0434 \u0420\u044B\u0431\u0430-\u0442\u0435\
        \u043A\u0441\u0442\u043E\u0432"
      parameters:
        - name: created
          in: query
          description: ''
          required: false
          type: string
        - name: project
          in: query
          description: ''
          required: false
          type: string
        - name: project__name
          in: query
          description: ''
          required: false
          type: string
        - name: limit
          in: query
          description: Number of results to return per page.
          required: false
          type: integer
        - name: offset
          in: query
          description: The initial index from which to return the results.
          required: false
          type: integer
      responses:
        '200':
          description: ''
          schema:
            required:
              - count
              - results
            type: object
            properties:
              count:
                type: integer
              next:
                type: string
                format: uri
                x-nullable: true
              previous:
                type: string
                format: uri
                x-nullable: true
              results:
                type: array
                items:
                  $ref: '#/definitions/TodoModelSerializerGet'
      tags:
        - todos
    parameters: []
  /todos/inactive/:
    get:
      operationId: todos_inactive_read
      description: "\u041F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0432\u0441\u0435\
        \ \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0435 \u0437\u0430\
        \u043C\u0435\u0442\u043A\u0438 \u0431\u0435\u0437 \u0432\u043B\u043E\u0436\
        \u0435\u043D\u043D\u044B\u0445 \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432"
      parameters:
        - name: created
          in: query
          description: ''
          required: false
          type: string
        - name: project
          in: query
          description: ''
          required: false
          type: string
        - name: project__name
          in: query
          description: ''
          required: false
          type: string
        - name: limit
          in: query
          description: Number of results to return per page.
          required: false
          type: integer
        - name: offset
          in: query
          description: The initial index from which to return the results.
          required: false
          type: integer
      responses:
        '200':
          description: ''
          schema:
            required:
              - count
              - results
            type: object
            properties:
              count:
                type: integer
              next:
                type: string
                format: uri
                x-nullable: true
              previous:
                type: string
                format: uri
                x-nullable: true
              results:
                type: array
                items:
                  $ref: '#/definitions/TodoModelSerializerGet'
      tags:
        - todos
    parameters: []
  /todos/{id}/:
    get:
      operationId: todos_read
      description: "\u041D\u0430\u0431\u043E\u0440 \u043F\u0440\u0435\u0434\u0441\u0442\
        \u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u043C\u043E\
        \u0434\u0435\u043B\u0438 \u0437\u0430\u043C\u0435\u0442\u043E\u043A"
      parameters: []
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/TodoModelSerializerGet'
      tags:
        - todos
    put:
      operationId: todos_update
      description: "\u041D\u0430\u0431\u043E\u0440 \u043F\u0440\u0435\u0434\u0441\u0442\
        \u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u043C\u043E\
        \u0434\u0435\u043B\u0438 \u0437\u0430\u043C\u0435\u0442\u043E\u043A"
      parameters:
        - name: data
          in: body
          required: true
          schema:
            $ref: '#/definitions/TodoModel'
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/TodoModel'
      tags:
        - todos
    patch:
      operationId: todos_partial_update
      description: "\u041D\u0430\u0431\u043E\u0440 \u043F\u0440\u0435\u0434\u0441\u0442\
        \u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u043C\u043E\
        \u0434\u0435\u043B\u0438 \u0437\u0430\u043C\u0435\u0442\u043E\u043A"
      parameters:
        - name: data
          in: body
          required: true
          schema:
            $ref: '#/definitions/TodoModel'
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/TodoModel'
      tags:
        - todos
    delete:
      operationId: todos_delete
      description: |-
        Переопределения метода удаления (DELETE)
        Вместо фактического удаления меняем активность на 0 (False)
      parameters: []
      responses:
        '204':
          description: ''
      tags:
        - todos
    parameters:
      - name: id
        in: path
        description: "A unique integer value identifying this \u0417\u0430\u043C\u0435\
          \u0442\u043A\u0430."
        required: true
        type: integer
  /token/:
    post:
      operationId: token_create
      description: |-
        Takes a set of user credentials and returns an access and refresh JSON web
        token pair to prove the authentication of those credentials.
      parameters:
        - name: data
          in: body
          required: true
          schema:
            $ref: '#/definitions/TokenObtainPair'
      responses:
        '201':
          description: ''
          schema:
            $ref: '#/definitions/TokenObtainPair'
      tags:
        - token
    parameters: []
  /token/refresh/:
    post:
      operationId: token_refresh_create
      description: |-
        Takes a refresh type JSON web token and returns an access type JSON web
        token if the refresh token is valid.
      parameters:
        - name: data
          in: body
          required: true
          schema:
            $ref: '#/definitions/TokenRefresh'
      responses:
        '201':
          description: ''
          schema:
            $ref: '#/definitions/TokenRefresh'
      tags:
        - token
    parameters: []
  /users/:
    get:
      operationId: users_list
      description: "\u041D\u0430\u0431\u043E\u0440 \u043F\u0440\u0435\u0434\u0441\u0442\
        \u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u043C\u043E\
        \u0434\u0435\u043B\u0438 \u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\
        \u0435\u043B\u044C"
      parameters:
        - name: first_name
          in: query
          description: ''
          required: false
          type: string
        - name: last_name
          in: query
          description: ''
          required: false
          type: string
        - name: middle_name
          in: query
          description: ''
          required: false
          type: string
        - name: limit
          in: query
          description: Number of results to return per page.
          required: false
          type: integer
        - name: offset
          in: query
          description: The initial index from which to return the results.
          required: false
          type: integer
      responses:
        '200':
          description: ''
          schema:
            required:
              - count
              - results
            type: object
            properties:
              count:
                type: integer
              next:
                type: string
                format: uri
                x-nullable: true
              previous:
                type: string
                format: uri
                x-nullable: true
              results:
                type: array
                items:
                  $ref: '#/definitions/UserModelSerializerGet'
      tags:
        - users
    post:
      operationId: users_create
      description: "\u041D\u0430\u0431\u043E\u0440 \u043F\u0440\u0435\u0434\u0441\u0442\
        \u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u043C\u043E\
        \u0434\u0435\u043B\u0438 \u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\
        \u0435\u043B\u044C"
      parameters:
        - name: data
          in: body
          required: true
          schema:
            $ref: '#/definitions/UserModel'
      responses:
        '201':
          description: ''
          schema:
            $ref: '#/definitions/UserModel'
      tags:
        - users
    parameters: []
  /users/active/:
    get:
      operationId: users_active_read
      description: "\u041F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0432\u0441\u0435\
        \u0445 \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u043F\u043E\u043B\
        \u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u0431\u0435\u0437\
        \ \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0445 \u043E\u0431\u044A\
        \u0435\u043A\u0442\u043E\u0432"
      parameters:
        - name: first_name
          in: query
          description: ''
          required: false
          type: string
        - name: last_name
          in: query
          description: ''
          required: false
          type: string
        - name: middle_name
          in: query
          description: ''
          required: false
          type: string
        - name: limit
          in: query
          description: Number of results to return per page.
          required: false
          type: integer
        - name: offset
          in: query
          description: The initial index from which to return the results.
          required: false
          type: integer
      responses:
        '200':
          description: ''
          schema:
            required:
              - count
              - results
            type: object
            properties:
              count:
                type: integer
              next:
                type: string
                format: uri
                x-nullable: true
              previous:
                type: string
                format: uri
                x-nullable: true
              results:
                type: array
                items:
                  $ref: '#/definitions/UserModelSerializerGet'
      tags:
        - users
    parameters: []
  /users/inactive/:
    get:
      operationId: users_inactive_read
      description: "\u041F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0432\u0441\u0435\
        \u0445 \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u043F\
        \u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u0431\
        \u0435\u0437 \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0445 \u043E\
        \u0431\u044A\u0435\u043A\u0442\u043E\u0432"
      parameters:
        - name: first_name
          in: query
          description: ''
          required: false
          type: string
        - name: last_name
          in: query
          description: ''
          required: false
          type: string
        - name: middle_name
          in: query
          description: ''
          required: false
          type: string
        - name: limit
          in: query
          description: Number of results to return per page.
          required: false
          type: integer
        - name: offset
          in: query
          description: The initial index from which to return the results.
          required: false
          type: integer
      responses:
        '200':
          description: ''
          schema:
            required:
              - count
              - results
            type: object
            properties:
              count:
                type: integer
              next:
                type: string
                format: uri
                x-nullable: true
              previous:
                type: string
                format: uri
                x-nullable: true
              results:
                type: array
                items:
                  $ref: '#/definitions/UserModelSerializerGet'
      tags:
        - users
    parameters: []
  /users/superusers/:
    get:
      operationId: users_superusers_read
      description: "\u041F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0430\u0434\u043C\
        \u0438\u043D\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440\u043E\u0432 Django"
      parameters:
        - name: first_name
          in: query
          description: ''
          required: false
          type: string
        - name: last_name
          in: query
          description: ''
          required: false
          type: string
        - name: middle_name
          in: query
          description: ''
          required: false
          type: string
        - name: limit
          in: query
          description: Number of results to return per page.
          required: false
          type: integer
        - name: offset
          in: query
          description: The initial index from which to return the results.
          required: false
          type: integer
      responses:
        '200':
          description: ''
          schema:
            required:
              - count
              - results
            type: object
            properties:
              count:
                type: integer
              next:
                type: string
                format: uri
                x-nullable: true
              previous:
                type: string
                format: uri
                x-nullable: true
              results:
                type: array
                items:
                  $ref: '#/definitions/UserModelSerializerGet'
      tags:
        - users
    parameters: []
  /users/{id}/:
    get:
      operationId: users_read
      description: "\u041D\u0430\u0431\u043E\u0440 \u043F\u0440\u0435\u0434\u0441\u0442\
        \u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u043C\u043E\
        \u0434\u0435\u043B\u0438 \u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\
        \u0435\u043B\u044C"
      parameters: []
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/UserModelSerializerGet'
      tags:
        - users
    put:
      operationId: users_update
      description: "\u041D\u0430\u0431\u043E\u0440 \u043F\u0440\u0435\u0434\u0441\u0442\
        \u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u043C\u043E\
        \u0434\u0435\u043B\u0438 \u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\
        \u0435\u043B\u044C"
      parameters:
        - name: data
          in: body
          required: true
          schema:
            $ref: '#/definitions/UserModel'
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/UserModel'
      tags:
        - users
    patch:
      operationId: users_partial_update
      description: "\u041D\u0430\u0431\u043E\u0440 \u043F\u0440\u0435\u0434\u0441\u0442\
        \u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u043C\u043E\
        \u0434\u0435\u043B\u0438 \u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\
        \u0435\u043B\u044C"
      parameters:
        - name: data
          in: body
          required: true
          schema:
            $ref: '#/definitions/UserModel'
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/UserModel'
      tags:
        - users
    delete:
      operationId: users_delete
      description: |-
        Переопределения метода удаления (DELETE)
        Вместо фактического удаления меняем активность на 0 (False)
      parameters: []
      responses:
        '204':
          description: ''
      tags:
        - users
    parameters:
      - name: id
        in: path
        description: "A unique integer value identifying this \u041F\u043E\u043B\u044C\
          \u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C."
        required: true
        type: integer
  /users/{id}/fio/:
    get:
      operationId: users_fio_read
      description: "\u041F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0424\u0418\u041E\
        \ \u043F\u043E \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\
        \u0442\u043E\u0440\u0443 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\
        \u0435\u043B\u044F"
      parameters: []
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/UserModelSerializerGet'
      tags:
        - users
    parameters:
      - name: id
        in: path
        description: "A unique integer value identifying this \u041F\u043E\u043B\u044C\
          \u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C."
        required: true
        type: integer
  /users/{id}/login/:
    get:
      operationId: users_login_read
      description: "\u0423\u0437\u043D\u0430\u0442\u044C \u043B\u043E\u0433\u0438\u043D\
        \ \u043F\u043E \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\
        \u0442\u043E\u0440\u0443 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\
        \u0435\u043B\u044F"
      parameters: []
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/UserModelSerializerGet'
      tags:
        - users
    parameters:
      - name: id
        in: path
        description: "A unique integer value identifying this \u041F\u043E\u043B\u044C\
          \u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C."
        required: true
        type: integer
  /visits/:
    get:
      operationId: visits_list
      description: "\u041D\u0430\u0431\u043E\u0440 \u043F\u0440\u0435\u0434\u0441\u0442\
        \u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u043C\u043E\
        \u0434\u0435\u043B\u0438 \u043F\u043E\u0434\u0441\u0447\u0451\u0442\u0430\
        \ \u043F\u043E\u0441\u0435\u0449\u0435\u043D\u0438\u0439 \u0441\u0442\u0440\
        \u0430\u043D\u0438\u0446"
      parameters:
        - name: page
          in: query
          description: A page number within the paginated result set.
          required: false
          type: integer
      responses:
        '200':
          description: ''
          schema:
            required:
              - count
              - results
            type: object
            properties:
              count:
                type: integer
              next:
                type: string
                format: uri
                x-nullable: true
              previous:
                type: string
                format: uri
                x-nullable: true
              results:
                type: array
                items:
                  $ref: '#/definitions/PageVisits'
      tags:
        - visits
    parameters: []
  /visits/{id}/:
    get:
      operationId: visits_read
      description: "\u041D\u0430\u0431\u043E\u0440 \u043F\u0440\u0435\u0434\u0441\u0442\
        \u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u043C\u043E\
        \u0434\u0435\u043B\u0438 \u043F\u043E\u0434\u0441\u0447\u0451\u0442\u0430\
        \ \u043F\u043E\u0441\u0435\u0449\u0435\u043D\u0438\u0439 \u0441\u0442\u0440\
        \u0430\u043D\u0438\u0446"
      parameters: []
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/PageVisits'
      tags:
        - visits
    parameters:
      - name: id
        in: path
        description: "A unique integer value identifying this \u041A\u043E\u043B\u0438\
          \u0447\u0435\u0441\u0442\u0432\u043E \u043F\u043E\u0441\u0435\u0449\u0435\
          \u043D\u0438\u0439 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B."
        required: true
        type: integer
definitions:
  ImageModel:
    type: object
    properties:
      id:
        title: ID
        type: integer
        readOnly: true
      name:
        title: "\u0418\u043C\u044F"
        type: string
        maxLength: 999
        x-nullable: true
      url:
        title: "\u0421\u0441\u044B\u043B\u043A\u0430 \u043D\u0430 \u0432\u043D\u0435\
          \u0448\u043D\u0438\u0439 \u0440\u0435\u0441\u0443\u0440\u0441"
        type: string
        format: uri
        maxLength: 999
        minLength: 1
        x-nullable: true
      picture:
        title: "\u0413\u0434\u0435 \u0445\u0440\u0430\u043D\u0438\u0442\u0441\u044F\
          \ \u0444\u0430\u0439\u043B"
        type: string
        readOnly: true
        format: uri
      width:
        title: Width
        type: string
        readOnly: true
      height:
        title: Height
        type: string
        readOnly: true
      parentPicture:
        title: "\u0420\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u043E\
          \u0435 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435"
        type: integer
        x-nullable: true
  ImageModelUpdate:
    type: object
    properties:
      name:
        title: "\u0418\u043C\u044F"
        type: string
        maxLength: 999
        x-nullable: true
  UserModel:
    required:
      - username
      - email
      - roles
      - password
    type: object
    properties:
      id:
        title: ID
        type: integer
        readOnly: true
      username:
        title: "\u0418\u043C\u044F \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\
          \u0442\u0435\u043B\u044F"
        description: "\u041E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\
          \u043E\u0435 \u043F\u043E\u043B\u0435. \u041D\u0435 \u0431\u043E\u043B\u0435\
          \u0435 150 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432. \u0422\u043E\
          \u043B\u044C\u043A\u043E \u0431\u0443\u043A\u0432\u044B, \u0446\u0438\u0444\
          \u0440\u044B \u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B @/./+/-/_."
        type: string
        pattern: ^[\w.@+-]+$
        maxLength: 150
        minLength: 1
      firstName:
        title: "\u0418\u043C\u044F"
        type: string
        maxLength: 44
      lastName:
        title: "\u0424\u0430\u043C\u0438\u043B\u0438\u044F"
        type: string
        maxLength: 55
      middleName:
        title: "\u041E\u0442\u0447\u0435\u0441\u0442\u0432\u043E"
        type: string
        maxLength: 66
      email:
        title: "\u042D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430\u044F\
          \ \u043F\u043E\u0447\u0442\u0430"
        type: string
        format: email
        maxLength: 254
        minLength: 1
      birthdate:
        title: "\u0414\u0430\u0442\u0430 \u0440\u043E\u0436\u0434\u0435\u043D\u0438\
          \u044F"
        type: string
        format: date
        x-nullable: true
      roles:
        type: array
        items:
          title: "\u0420\u043E\u043B\u0438"
          type: integer
        uniqueItems: true
      password:
        title: Password
        type: string
        maxLength: 128
        minLength: 1
  ProjectModelSerializerGet:
    required:
      - users
      - name
    type: object
    properties:
      id:
        title: ID
        type: integer
        readOnly: true
      users:
        type: array
        items:
          $ref: '#/definitions/UserModel'
      name:
        title: "\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435"
        type: string
        maxLength: 33
        minLength: 1
      repository:
        title: "\u0420\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u0439\
          \ (url-\u0430\u0434\u0440\u0435\u0441)"
        type: string
        format: uri
        maxLength: 99
        minLength: 1
  ProjectModel:
    required:
      - name
      - users
    type: object
    properties:
      id:
        title: ID
        type: integer
        readOnly: true
      name:
        title: "\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435"
        type: string
        maxLength: 33
        minLength: 1
      repository:
        title: "\u0420\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u0439\
          \ (url-\u0430\u0434\u0440\u0435\u0441)"
        type: string
        format: uri
        maxLength: 99
        minLength: 1
      users:
        type: array
        items:
          title: "\u0420\u0430\u0431\u043E\u0442\u0430\u044E\u0442 \u0441 \u043F\u0440\
            \u043E\u0435\u043A\u0442\u043E\u043C"
          type: integer
        uniqueItems: true
  ProjectSetModel:
    required:
      - name
      - users
    type: object
    properties:
      id:
        title: ID
        type: integer
        readOnly: true
      name:
        title: "\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435"
        type: string
        maxLength: 33
        minLength: 1
      repository:
        title: "\u0420\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u0439\
          \ (url-\u0430\u0434\u0440\u0435\u0441)"
        type: string
        format: uri
        default: ''
        maxLength: 99
        minLength: 1
      isActive:
        title: "\u0410\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u044C"
        type: boolean
      created:
        title: "\u0414\u0430\u0442\u0430 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\
          \u044F"
        type: string
        format: date-time
        readOnly: true
      updated:
        title: "\u0414\u0430\u0442\u0430 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\
          \u043D\u0438\u044F"
        type: string
        format: date-time
        readOnly: true
        default: '2025-04-16T18:02:24.703913+03:00'
      users:
        type: array
        items:
          title: "\u0420\u0430\u0431\u043E\u0442\u0430\u044E\u0442 \u0441 \u043F\u0440\
            \u043E\u0435\u043A\u0442\u043E\u043C"
          type: integer
        uniqueItems: true
  TodoSetModel:
    required:
      - text
      - project
      - user
    type: object
    properties:
      id:
        title: ID
        type: integer
        readOnly: true
      text:
        title: "\u0422\u0435\u043A\u0441\u0442"
        type: string
        maxLength: 333
        minLength: 1
      isActive:
        title: "\u0410\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u044C"
        type: boolean
      created:
        title: "\u0414\u0430\u0442\u0430 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\
          \u044F"
        type: string
        format: date-time
        readOnly: true
      updated:
        title: "\u0414\u0430\u0442\u0430 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\
          \u043D\u0438\u044F"
        type: string
        format: date-time
        readOnly: true
        default: '2025-04-16T18:02:24.709393+03:00'
      project:
        title: "\u041F\u0440\u043E\u0435\u043A\u0442"
        type: integer
      user:
        title: "\u0410\u0432\u0442\u043E\u0440 \u0437\u0430\u043C\u0435\u0442\u043A\
          \u0438"
        type: integer
  UserModelSerializerGet:
    required:
      - password
      - username
      - email
      - roles
    type: object
    properties:
      id:
        title: ID
        type: integer
        readOnly: true
      password:
        title: Password
        type: string
        maxLength: 128
        minLength: 1
      userProjects:
        type: array
        items:
          $ref: '#/definitions/ProjectSetModel'
        readOnly: true
      userTodos:
        type: array
        items:
          $ref: '#/definitions/TodoSetModel'
        readOnly: true
      lastLogin:
        title: "\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0439 \u0432\u0445\
          \u043E\u0434"
        type: string
        format: date-time
        x-nullable: true
      isSuperuser:
        title: "\u0421\u0442\u0430\u0442\u0443\u0441 \u0441\u0443\u043F\u0435\u0440\
          \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F"
        description: "\u0423\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442, \u0447\
          \u0442\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\
          \u043B\u044C \u0438\u043C\u0435\u0435\u0442 \u0432\u0441\u0435 \u043F\u0440\
          \u0430\u0432\u0430 \u0431\u0435\u0437 \u044F\u0432\u043D\u043E\u0433\u043E\
          \ \u0438\u0445 \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\
          ."
        type: boolean
      username:
        title: "\u0418\u043C\u044F \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\
          \u0442\u0435\u043B\u044F"
        description: "\u041E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\
          \u043E\u0435 \u043F\u043E\u043B\u0435. \u041D\u0435 \u0431\u043E\u043B\u0435\
          \u0435 150 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432. \u0422\u043E\
          \u043B\u044C\u043A\u043E \u0431\u0443\u043A\u0432\u044B, \u0446\u0438\u0444\
          \u0440\u044B \u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B @/./+/-/_."
        type: string
        pattern: ^[\w.@+-]+$
        maxLength: 150
        minLength: 1
      isStaff:
        title: "\u0421\u0442\u0430\u0442\u0443\u0441 \u043F\u0435\u0440\u0441\u043E\
          \u043D\u0430\u043B\u0430"
        description: "\u041E\u0442\u043C\u0435\u0442\u044C\u0442\u0435, \u0435\u0441\
          \u043B\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\
          \u043B\u044C \u043C\u043E\u0436\u0435\u0442 \u0432\u0445\u043E\u0434\u0438\
          \u0442\u044C \u0432 \u0430\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\
          \u0430\u0442\u0438\u0432\u043D\u0443\u044E \u0447\u0430\u0441\u0442\u044C\
          \ \u0441\u0430\u0439\u0442\u0430."
        type: boolean
      isActive:
        title: "\u0410\u043A\u0442\u0438\u0432\u043D\u044B\u0439"
        description: "\u041E\u0442\u043C\u0435\u0442\u044C\u0442\u0435, \u0435\u0441\
          \u043B\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\
          \u043B\u044C \u0434\u043E\u043B\u0436\u0435\u043D \u0441\u0447\u0438\u0442\
          \u0430\u0442\u044C\u0441\u044F \u0430\u043A\u0442\u0438\u0432\u043D\u044B\
          \u043C. \u0423\u0431\u0435\u0440\u0438\u0442\u0435 \u044D\u0442\u0443 \u043E\
          \u0442\u043C\u0435\u0442\u043A\u0443 \u0432\u043C\u0435\u0441\u0442\u043E\
          \ \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u0443\u0447\u0451\u0442\
          \u043D\u043E\u0439 \u0437\u0430\u043F\u0438\u0441\u0438."
        type: boolean
      dateJoined:
        title: "\u0414\u0430\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\
          \u0430\u0446\u0438\u0438"
        type: string
        format: date-time
      firstName:
        title: "\u0418\u043C\u044F"
        type: string
        maxLength: 44
      lastName:
        title: "\u0424\u0430\u043C\u0438\u043B\u0438\u044F"
        type: string
        maxLength: 55
      middleName:
        title: "\u041E\u0442\u0447\u0435\u0441\u0442\u0432\u043E"
        type: string
        maxLength: 66
      email:
        title: "\u042D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430\u044F\
          \ \u043F\u043E\u0447\u0442\u0430"
        type: string
        format: email
        maxLength: 254
        minLength: 1
      birthdate:
        title: "\u0414\u0430\u0442\u0430 \u0440\u043E\u0436\u0434\u0435\u043D\u0438\
          \u044F"
        type: string
        format: date
        x-nullable: true
      updated:
        title: "\u0414\u0430\u0442\u0430 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\
          \u043D\u0438\u044F"
        type: string
        format: date-time
        readOnly: true
      groups:
        description: "\u0413\u0440\u0443\u043F\u043F\u044B, \u043A \u043A\u043E\u0442\
          \u043E\u0440\u044B\u043C \u043F\u0440\u0438\u043D\u0430\u0434\u043B\u0435\
          \u0436\u0438\u0442 \u0434\u0430\u043D\u043D\u044B\u0439 \u043F\u043E\u043B\
          \u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C. \u041F\u043E\u043B\
          \u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C \u043F\u043E\u043B\
          \u0443\u0447\u0438\u0442 \u0432\u0441\u0435 \u043F\u0440\u0430\u0432\u0430\
          , \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u044B\u0435 \u0432 \u043A\u0430\
          \u0436\u0434\u043E\u0439 \u0438\u0437 \u0435\u0433\u043E/\u0435\u0451 \u0433\
          \u0440\u0443\u043F\u043F."
        type: array
        items:
          title: "\u0413\u0440\u0443\u043F\u043F\u044B"
          description: "\u0413\u0440\u0443\u043F\u043F\u044B, \u043A \u043A\u043E\u0442\
            \u043E\u0440\u044B\u043C \u043F\u0440\u0438\u043D\u0430\u0434\u043B\u0435\
            \u0436\u0438\u0442 \u0434\u0430\u043D\u043D\u044B\u0439 \u043F\u043E\u043B\
            \u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C. \u041F\u043E\u043B\
            \u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C \u043F\u043E\u043B\
            \u0443\u0447\u0438\u0442 \u0432\u0441\u0435 \u043F\u0440\u0430\u0432\u0430\
            , \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u044B\u0435 \u0432 \u043A\
            \u0430\u0436\u0434\u043E\u0439 \u0438\u0437 \u0435\u0433\u043E/\u0435\u0451\
            \ \u0433\u0440\u0443\u043F\u043F."
          type: integer
        uniqueItems: true
      userPermissions:
        description: "\u0418\u043D\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043B\
          \u044C\u043D\u044B\u0435 \u043F\u0440\u0430\u0432\u0430 \u0434\u0430\u043D\
          \u043D\u043E\u0433\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\
          \u0442\u0435\u043B\u044F."
        type: array
        items:
          title: "\u041F\u0440\u0430\u0432\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\
            \u0432\u0430\u0442\u0435\u043B\u044F"
          description: "\u0418\u043D\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043B\
            \u044C\u043D\u044B\u0435 \u043F\u0440\u0430\u0432\u0430 \u0434\u0430\u043D\
            \u043D\u043E\u0433\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\
            \u0442\u0435\u043B\u044F."
          type: integer
        uniqueItems: true
      roles:
        type: array
        items:
          title: "\u0420\u043E\u043B\u0438"
          type: integer
        uniqueItems: true
  PermissionGroupsSerializerGet:
    required:
      - roleUsers
      - role
    type: object
    properties:
      id:
        title: ID
        type: integer
        readOnly: true
      roleUsers:
        type: array
        items:
          $ref: '#/definitions/UserModelSerializerGet'
      role:
        title: "\u0420\u043E\u043B\u044C"
        type: string
        maxLength: 33
        minLength: 1
  TodoModelSerializerGet:
    required:
      - project
      - user
      - text
    type: object
    properties:
      id:
        title: ID
        type: integer
        readOnly: true
      project:
        $ref: '#/definitions/ProjectModelSerializerGet'
      user:
        $ref: '#/definitions/UserModel'
      text:
        title: "\u0422\u0435\u043A\u0441\u0442"
        type: string
        maxLength: 333
        minLength: 1
  TodoModel:
    required:
      - text
      - project
      - user
    type: object
    properties:
      id:
        title: ID
        type: integer
        readOnly: true
      text:
        title: "\u0422\u0435\u043A\u0441\u0442"
        type: string
        maxLength: 333
        minLength: 1
      project:
        title: "\u041F\u0440\u043E\u0435\u043A\u0442"
        type: integer
      user:
        title: "\u0410\u0432\u0442\u043E\u0440 \u0437\u0430\u043C\u0435\u0442\u043A\
          \u0438"
        type: integer
  TokenObtainPair:
    required:
      - username
      - password
    type: object
    properties:
      username:
        title: Username
        type: string
        minLength: 1
      password:
        title: Password
        type: string
        minLength: 1
  TokenRefresh:
    required:
      - refresh
    type: object
    properties:
      refresh:
        title: Refresh
        type: string
        minLength: 1
      access:
        title: Access
        type: string
        readOnly: true
        minLength: 1
  PageVisits:
    required:
      - url
      - user
    type: object
    properties:
      id:
        title: ID
        type: integer
        readOnly: true
      url:
        title: "\u0410\u0434\u0440\u0435\u0441 \u0441\u0442\u0440\u0430\u043D\u0438\
          \u0446\u044B"
        type: string
        maxLength: 256
        minLength: 1
      hits:
        title: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043F\
          \u043E\u0441\u0435\u0449\u0435\u043D\u0438\u0439"
        type: integer
        maximum: 2147483647
        minimum: -2147483648
      updated:
        title: "\u0414\u0430\u0442\u0430 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\
          \u043D\u0438\u044F"
        type: string
        format: date-time
        readOnly: true
      user:
        title: "\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\
          \u044C"
        type: integer
        x-nullable: true
