openapi: 3.0.3
info:
  title: 'ListOk CRM API'
  description: 'Документация ListOk CRM API'
  version: 1.0.0
servers:
  -
    url: 'https://yourdomain.listokcrm.ru'
paths:
  /api/external/v2/passes:
    get:
      summary: 'Получить список абонементов'
      operationId: ''
      description: 'Метод предоставляет данные о всех неудаленных абонементах в аккаунте'
      parameters:
        -
          in: query
          name: page
          description: Страница
          example: '1'
          required: true
          schema:
            type: integer
            description: Страница
            example: '1'
            nullable: false
        -
          in: header
          name: X-Requested-With
          description: ''
          example: XMLHttpRequest
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      pass_id: 1
                      name: 'Абонемент на 10 занятий'
                      description: ''
                      admit_number: 10
                      valid_for_days: 31
                      valid_for_months: 0
                      freeze_times: 100
                      freeze_days: 100
                      pass_type: 1
                      price: 2000
                      allowed_times: []
                      disabled_days: []
                      allow_buying_pass_mobile: 0
                      allow_buying_pass_online: 0
                    -
                      pass_id: 1
                      name: 'Абонемент на 10 занятий'
                      description: ''
                      admit_number: 10
                      valid_for_days: 31
                      valid_for_months: 0
                      freeze_times: 100
                      freeze_days: 100
                      pass_type: 1
                      price: 2000
                      allowed_times: []
                      disabled_days: []
                      allow_buying_pass_mobile: 0
                      allow_buying_pass_online: 0
                  meta:
                    pagination:
                      total: 2
                      count: 2
                      per_page: 10
                      current_page: 1
                      total_pages: 1
                      links: {  }
                properties:
                  data:
                    type: array
                    example:
                      -
                        pass_id: 1
                        name: 'Абонемент на 10 занятий'
                        description: ''
                        admit_number: 10
                        valid_for_days: 31
                        valid_for_months: 0
                        freeze_times: 100
                        freeze_days: 100
                        pass_type: 1
                        price: 2000
                        allowed_times: []
                        disabled_days: []
                        allow_buying_pass_mobile: 0
                        allow_buying_pass_online: 0
                      -
                        pass_id: 1
                        name: 'Абонемент на 10 занятий'
                        description: ''
                        admit_number: 10
                        valid_for_days: 31
                        valid_for_months: 0
                        freeze_times: 100
                        freeze_days: 100
                        pass_type: 1
                        price: 2000
                        allowed_times: []
                        disabled_days: []
                        allow_buying_pass_mobile: 0
                        allow_buying_pass_online: 0
                    items:
                      type: object
                      properties:
                        pass_id:
                          type: integer
                          example: 1
                        name:
                          type: string
                          example: 'Абонемент на 10 занятий'
                        description:
                          type: string
                          example: ''
                        admit_number:
                          type: integer
                          example: 10
                        valid_for_days:
                          type: integer
                          example: 31
                        valid_for_months:
                          type: integer
                          example: 0
                        freeze_times:
                          type: integer
                          example: 100
                        freeze_days:
                          type: integer
                          example: 100
                        pass_type:
                          type: integer
                          example: 1
                        price:
                          type: integer
                          example: 2000
                        allowed_times:
                          type: array
                          example: []
                        disabled_days:
                          type: array
                          example: []
                        allow_buying_pass_mobile:
                          type: integer
                          example: 0
                        allow_buying_pass_online:
                          type: integer
                          example: 0
                    required:
                      - pass_id
                      - name
                      - pass_type
                      - price
                  meta:
                    type: object
                    properties:
                      pagination:
                        type: object
                        properties:
                          total:
                            type: integer
                            example: 2
                          count:
                            type: integer
                            example: 2
                          per_page:
                            type: integer
                            example: 10
                          current_page:
                            type: integer
                            example: 1
                          total_pages:
                            type: integer
                            example: 1
                          links:
                            type: object
                            properties: {  }
      tags:
        - Абонементы
  /api/external/v2/groups:
    get:
      summary: 'Получить список групп'
      operationId: ''
      description: 'Метод предоставляет данные о всех неудаленных группах'
      parameters:
        -
          in: query
          name: page
          description: Страница
          example: '1'
          required: true
          schema:
            type: integer
            description: Страница
            example: '1'
            nullable: false
        -
          in: header
          name: X-Requested-With
          description: ''
          example: XMLHttpRequest
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      group_id: 1
                      name: 'Тестовая группа'
                      description: '<div><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif">Тренировка по плаванию проходит с персональным тренером. Подходит &nbsp;для детей в возрасте от 2 месяцев до 8 лет.&nbsp; Все тренеры &nbsp;имеют большой&nbsp; профессиональный опыт.&nbsp;&nbsp;</span><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif">Продолжительность занятия - 30 мин.</span></div>'
                      duration: 60
                      teacher_name: 'Только Ассистент'
                      second_teacher_name: null
                      color: ''
                      video: ''
                      photo: ''
                      max_attendance_limit: 3
                      office_name: 'Основной 12'
                      created_at: '2016-01-27T15:46:51.000000Z'
                      updated_at: '2024-12-25T05:18:33.000000Z'
                      deleted_at: '1970-01-01T00:00:00.000000Z'
                      disable_online_listing: 0
                      private_group: 0
                      group_type_name: 'Второе направление'
                    -
                      group_id: 1
                      name: 'Тестовая группа'
                      description: '<div><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif">Тренировка по плаванию проходит с персональным тренером. Подходит &nbsp;для детей в возрасте от 2 месяцев до 8 лет.&nbsp; Все тренеры &nbsp;имеют большой&nbsp; профессиональный опыт.&nbsp;&nbsp;</span><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif">Продолжительность занятия - 30 мин.</span></div>'
                      duration: 60
                      teacher_name: 'Только Ассистент'
                      second_teacher_name: null
                      color: ''
                      video: ''
                      photo: ''
                      max_attendance_limit: 3
                      office_name: 'Основной 12'
                      created_at: '2016-01-27T15:46:51.000000Z'
                      updated_at: '2024-12-25T05:18:33.000000Z'
                      deleted_at: '1970-01-01T00:00:00.000000Z'
                      disable_online_listing: 0
                      private_group: 0
                      group_type_name: 'Второе направление'
                  meta:
                    pagination:
                      total: 2
                      count: 2
                      per_page: 10
                      current_page: 1
                      total_pages: 1
                      links: {  }
                properties:
                  data:
                    type: array
                    example:
                      -
                        group_id: 1
                        name: 'Тестовая группа'
                        description: '<div><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif">Тренировка по плаванию проходит с персональным тренером. Подходит &nbsp;для детей в возрасте от 2 месяцев до 8 лет.&nbsp; Все тренеры &nbsp;имеют большой&nbsp; профессиональный опыт.&nbsp;&nbsp;</span><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif">Продолжительность занятия - 30 мин.</span></div>'
                        duration: 60
                        teacher_name: 'Только Ассистент'
                        second_teacher_name: null
                        color: ''
                        video: ''
                        photo: ''
                        max_attendance_limit: 3
                        office_name: 'Основной 12'
                        created_at: '2016-01-27T15:46:51.000000Z'
                        updated_at: '2024-12-25T05:18:33.000000Z'
                        deleted_at: '1970-01-01T00:00:00.000000Z'
                        disable_online_listing: 0
                        private_group: 0
                        group_type_name: 'Второе направление'
                      -
                        group_id: 1
                        name: 'Тестовая группа'
                        description: '<div><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif">Тренировка по плаванию проходит с персональным тренером. Подходит &nbsp;для детей в возрасте от 2 месяцев до 8 лет.&nbsp; Все тренеры &nbsp;имеют большой&nbsp; профессиональный опыт.&nbsp;&nbsp;</span><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif">Продолжительность занятия - 30 мин.</span></div>'
                        duration: 60
                        teacher_name: 'Только Ассистент'
                        second_teacher_name: null
                        color: ''
                        video: ''
                        photo: ''
                        max_attendance_limit: 3
                        office_name: 'Основной 12'
                        created_at: '2016-01-27T15:46:51.000000Z'
                        updated_at: '2024-12-25T05:18:33.000000Z'
                        deleted_at: '1970-01-01T00:00:00.000000Z'
                        disable_online_listing: 0
                        private_group: 0
                        group_type_name: 'Второе направление'
                    items:
                      type: object
                      properties:
                        group_id:
                          type: integer
                          example: 1
                        name:
                          type: string
                          example: 'Тестовая группа'
                        description:
                          type: string
                          example: '<div><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif">Тренировка по плаванию проходит с персональным тренером. Подходит &nbsp;для детей в возрасте от 2 месяцев до 8 лет.&nbsp; Все тренеры &nbsp;имеют большой&nbsp; профессиональный опыт.&nbsp;&nbsp;</span><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif">Продолжительность занятия - 30 мин.</span></div>'
                        duration:
                          type: integer
                          example: 60
                        teacher_name:
                          type: string
                          example: 'Только Ассистент'
                        second_teacher_name:
                          type: string
                          example: null
                        color:
                          type: string
                          example: ''
                        video:
                          type: string
                          example: ''
                        photo:
                          type: string
                          example: ''
                        max_attendance_limit:
                          type: integer
                          example: 3
                        office_name:
                          type: string
                          example: 'Основной 12'
                        created_at:
                          type: string
                          example: '2016-01-27T15:46:51.000000Z'
                        updated_at:
                          type: string
                          example: '2024-12-25T05:18:33.000000Z'
                        deleted_at:
                          type: string
                          example: '1970-01-01T00:00:00.000000Z'
                        disable_online_listing:
                          type: integer
                          example: 0
                        private_group:
                          type: integer
                          example: 0
                        group_type_name:
                          type: string
                          example: 'Второе направление'
                    required:
                      - group_id
                      - name
                      - duration
                      - created_at
                      - updated_at
                  meta:
                    type: object
                    properties:
                      pagination:
                        type: object
                        properties:
                          total:
                            type: integer
                            example: 2
                          count:
                            type: integer
                            example: 2
                          per_page:
                            type: integer
                            example: 10
                          current_page:
                            type: integer
                            example: 1
                          total_pages:
                            type: integer
                            example: 1
                          links:
                            type: object
                            properties: {  }
      tags:
        - Группы
  '/api/external/v2/groups/{groupId}':
    get:
      summary: 'Получить данные группы'
      operationId: ''
      description: 'Метод предоставляет данные о конкретной группе по ID'
      parameters:
        -
          in: header
          name: X-Requested-With
          description: ''
          example: XMLHttpRequest
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  group_id: 1
                  name: 'Тестовая группа'
                  description: '<div><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif">Тренировка по плаванию проходит с персональным тренером. Подходит &nbsp;для детей в возрасте от 2 месяцев до 8 лет.&nbsp; Все тренеры &nbsp;имеют большой&nbsp; профессиональный опыт.&nbsp;&nbsp;</span><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif">Продолжительность занятия - 30 мин.</span></div>'
                  duration: 60
                  teacher_name: 'Только Ассистент'
                  second_teacher_name: null
                  color: ''
                  video: ''
                  photo: ''
                  max_attendance_limit: 3
                  office_name: 'Основной 12'
                  created_at: '2016-01-27T15:46:51.000000Z'
                  updated_at: '2024-12-25T05:18:33.000000Z'
                  deleted_at: '1970-01-01T00:00:00.000000Z'
                  disable_online_listing: 0
                  private_group: 0
                  group_type_name: 'Второе направление'
                properties:
                  group_id:
                    type: integer
                    example: 1
                    description: 'ID группы'
                    enum: []
                  name:
                    type: string
                    example: 'Тестовая группа'
                    description: 'Название группы'
                    enum: []
                  description:
                    type: string
                    example: '<div><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif">Тренировка по плаванию проходит с персональным тренером. Подходит &nbsp;для детей в возрасте от 2 месяцев до 8 лет.&nbsp; Все тренеры &nbsp;имеют большой&nbsp; профессиональный опыт.&nbsp;&nbsp;</span><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif">Продолжительность занятия - 30 мин.</span></div>'
                    description: 'Описание группы'
                    enum: []
                  duration:
                    type: integer
                    example: 60
                    description: 'Продолжительность занятия (в минутах)'
                    enum: []
                  teacher_name:
                    type: string
                    example: 'Только Ассистент'
                    description: 'Имя основного преподавателя'
                    enum: []
                  second_teacher_name:
                    type: string
                    example: null
                    description: 'Имя второго преподавателя'
                    enum: []
                  color:
                    type: string
                    example: ''
                    description: 'Цвет группы'
                    enum: []
                  video:
                    type: string
                    example: ''
                    description: 'Ссылка на видео группы'
                    enum: []
                  photo:
                    type: string
                    example: ''
                    description: 'Ссылка на фото группы'
                    enum: []
                  max_attendance_limit:
                    type: integer
                    example: 3
                    description: 'Максимальное количество людей на занятии. 0 - неограниченно'
                    enum: []
                  office_name:
                    type: string
                    example: 'Основной 12'
                    description: 'Название филиала'
                    enum: []
                  created_at:
                    type: string
                    example: '2016-01-27T15:46:51.000000Z'
                    description: 'Дата и время создания'
                    enum: []
                  updated_at:
                    type: string
                    example: '2024-12-25T05:18:33.000000Z'
                    description: 'Дата и время последнего обновления'
                    enum: []
                  deleted_at:
                    type: string
                    example: '1970-01-01T00:00:00.000000Z'
                    description: 'Дата удаления (если группа удалена)'
                    enum: []
                  disable_online_listing:
                    type: integer
                    example: 0
                    description: 'Отключить онлайн-запись'
                    enum: []
                  private_group:
                    type: integer
                    example: 0
                    description: 'Приватная группа'
                    enum: []
                  group_type_name:
                    type: string
                    example: 'Второе направление'
                    description: 'Название направления'
                    enum: []
                required:
                  - group_id
                  - name
                  - duration
                  - created_at
                  - updated_at
      tags:
        - Группы
    parameters:
      -
        in: path
        name: groupId
        description: 'ID группы'
        example: '1'
        required: true
        schema:
          type: integer
  /api/external/v2/events:
    get:
      summary: 'Получить данные о всех занятиях на конкретную дату'
      operationId: ''
      description: 'Метод производит поиск всех не удаленных занятий по всем филиалам. Поиск необходимо запускать с параметром date, формат даты должен быть ГГГГ-ММ-ДД'
      parameters:
        -
          in: query
          name: date
          description: 'Дата занятия. Значение поля не является датой.'
          example: '2024-01-01'
          required: true
          schema:
            type: string
            description: 'Дата занятия. Значение поля не является датой.'
            example: '2024-01-01'
            nullable: false
        -
          in: query
          name: from
          description: 'Дата занятия. Значение поля не является датой.'
          example: '2024-01-01'
          required: false
          schema:
            type: string
            description: 'Дата занятия. Значение поля не является датой.'
            example: '2024-01-01'
            nullable: true
        -
          in: query
          name: to
          description: 'Дата занятия. Значение поля не является датой.'
          example: '2024-01-01'
          required: false
          schema:
            type: string
            description: 'Дата занятия. Значение поля не является датой.'
            example: '2024-01-01'
            nullable: true
        -
          in: header
          name: X-Requested-With
          description: ''
          example: XMLHttpRequest
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      event_id: 9
                      description: null
                      type: copy
                      week_day: 0
                      date: '2023-10-09'
                      end_date_time: null
                      start_time: '07:00'
                      end_time: '08:00'
                      admission_coef: 1
                      created_at: '2023-10-09T07:13:40.000000Z'
                      updated_at: '2023-10-09T07:13:40.000000Z'
                      deleted_at: 0
                      group_id: 1
                      event_comment: ''
                      teacher_name: null
                      second_teacher_name: null
                      room_name: 'Тренажерный Зал 1'
                      group_name: 'Тестовая группа'
                      group_type_name: 'Второе направление'
                      office_name: 'Основной 12'
                    -
                      event_id: 9
                      description: null
                      type: copy
                      week_day: 0
                      date: '2023-10-09'
                      end_date_time: null
                      start_time: '07:00'
                      end_time: '08:00'
                      admission_coef: 1
                      created_at: '2023-10-09T07:13:40.000000Z'
                      updated_at: '2023-10-09T07:13:40.000000Z'
                      deleted_at: 0
                      group_id: 1
                      event_comment: ''
                      teacher_name: null
                      second_teacher_name: null
                      room_name: 'Тренажерный Зал 1'
                      group_name: 'Тестовая группа'
                      group_type_name: 'Второе направление'
                      office_name: 'Основной 12'
                  meta:
                    pagination:
                      total: 2
                      count: 2
                      per_page: 10
                      current_page: 1
                      total_pages: 1
                      links: {  }
                properties:
                  data:
                    type: array
                    example:
                      -
                        event_id: 9
                        description: null
                        type: copy
                        week_day: 0
                        date: '2023-10-09'
                        end_date_time: null
                        start_time: '07:00'
                        end_time: '08:00'
                        admission_coef: 1
                        created_at: '2023-10-09T07:13:40.000000Z'
                        updated_at: '2023-10-09T07:13:40.000000Z'
                        deleted_at: 0
                        group_id: 1
                        event_comment: ''
                        teacher_name: null
                        second_teacher_name: null
                        room_name: 'Тренажерный Зал 1'
                        group_name: 'Тестовая группа'
                        group_type_name: 'Второе направление'
                        office_name: 'Основной 12'
                      -
                        event_id: 9
                        description: null
                        type: copy
                        week_day: 0
                        date: '2023-10-09'
                        end_date_time: null
                        start_time: '07:00'
                        end_time: '08:00'
                        admission_coef: 1
                        created_at: '2023-10-09T07:13:40.000000Z'
                        updated_at: '2023-10-09T07:13:40.000000Z'
                        deleted_at: 0
                        group_id: 1
                        event_comment: ''
                        teacher_name: null
                        second_teacher_name: null
                        room_name: 'Тренажерный Зал 1'
                        group_name: 'Тестовая группа'
                        group_type_name: 'Второе направление'
                        office_name: 'Основной 12'
                    items:
                      type: object
                      properties:
                        event_id:
                          type: integer
                          example: 9
                        description:
                          type: string
                          example: null
                        type:
                          type: string
                          example: copy
                        week_day:
                          type: integer
                          example: 0
                        date:
                          type: string
                          example: '2023-10-09'
                        end_date_time:
                          type: string
                          example: null
                        start_time:
                          type: string
                          example: '07:00'
                        end_time:
                          type: string
                          example: '08:00'
                        admission_coef:
                          type: integer
                          example: 1
                        created_at:
                          type: string
                          example: '2023-10-09T07:13:40.000000Z'
                        updated_at:
                          type: string
                          example: '2023-10-09T07:13:40.000000Z'
                        deleted_at:
                          type: integer
                          example: 0
                        group_id:
                          type: integer
                          example: 1
                        event_comment:
                          type: string
                          example: ''
                        teacher_name:
                          type: string
                          example: null
                        second_teacher_name:
                          type: string
                          example: null
                        room_name:
                          type: string
                          example: 'Тренажерный Зал 1'
                        group_name:
                          type: string
                          example: 'Тестовая группа'
                        group_type_name:
                          type: string
                          example: 'Второе направление'
                        office_name:
                          type: string
                          example: 'Основной 12'
                    required:
                      - event_id
                      - type
                      - week_day
                      - date
                      - start_time
                      - end_time
                      - created_at
                      - updated_at
                      - group_id
                  meta:
                    type: object
                    properties:
                      pagination:
                        type: object
                        properties:
                          total:
                            type: integer
                            example: 2
                          count:
                            type: integer
                            example: 2
                          per_page:
                            type: integer
                            example: 10
                          current_page:
                            type: integer
                            example: 1
                          total_pages:
                            type: integer
                            example: 1
                          links:
                            type: object
                            properties: {  }
      tags:
        - Занятия
  '/api/external/v2/events/{eventId}':
    get:
      summary: 'Получить данные занятия'
      operationId: ''
      description: 'Метод предоставляет данные о конкретном неудаленном занятии по ID. Также метод предоставляет данные о записанных, в том числе в Лист ожидания, и отмеченных клиентах'
      parameters:
        -
          in: header
          name: X-Requested-With
          description: ''
          example: XMLHttpRequest
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  event_id: 9
                  description: null
                  type: copy
                  week_day: 0
                  date: '2023-10-09'
                  end_date_time: null
                  start_time: '07:00'
                  end_time: '08:00'
                  admission_coef: 1
                  created_at: '2023-10-09T07:13:40.000000Z'
                  updated_at: '2023-10-09T07:13:40.000000Z'
                  deleted_at: 0
                  group_id: 1
                  event_comment: ''
                  teacher_name: null
                  second_teacher_name: null
                  room_name: 'Тренажерный Зал 1'
                  group_name: 'Тестовая группа'
                  group_type_name: 'Второе направление'
                  office_name: 'Основной 12'
                properties:
                  event_id:
                    type: integer
                    example: 9
                    description: 'ID занятия'
                    enum: []
                  description:
                    type: string
                    example: null
                    description: 'Описание занятия'
                    enum: []
                  type:
                    type: string
                    example: copy
                    description: 'Тип занятия'
                    enum: []
                  week_day:
                    type: integer
                    example: 0
                    description: 'День недели'
                    enum: []
                  date:
                    type: string
                    example: '2023-10-09'
                    description: 'Дата занятия'
                    enum: []
                  end_date_time:
                    type: string
                    example: null
                    description: 'Дата и время окончания'
                    enum: []
                  start_time:
                    type: string
                    example: '07:00'
                    description: 'Время начала'
                    enum: []
                  end_time:
                    type: string
                    example: '08:00'
                    description: 'Время окончания'
                    enum: []
                  admission_coef:
                    type: integer
                    example: 1
                  created_at:
                    type: string
                    example: '2023-10-09T07:13:40.000000Z'
                    description: 'Дата и время создания'
                    enum: []
                  updated_at:
                    type: string
                    example: '2023-10-09T07:13:40.000000Z'
                    description: 'Дата и время последнего обновления'
                    enum: []
                  deleted_at:
                    type: integer
                    example: 0
                    description: 'Дата удаления (если удалено)'
                    enum: []
                  group_id:
                    type: integer
                    example: 1
                    description: 'ID группы'
                    enum: []
                  event_comment:
                    type: string
                    example: ''
                    description: 'Комментарий к занятию'
                    enum: []
                  teacher_name:
                    type: string
                    example: null
                    description: 'Имя основного преподавателя'
                    enum: []
                  second_teacher_name:
                    type: string
                    example: null
                    description: 'Имя второго преподавателя'
                    enum: []
                  room_name:
                    type: string
                    example: 'Тренажерный Зал 1'
                    description: 'Название зала'
                    enum: []
                  group_name:
                    type: string
                    example: 'Тестовая группа'
                    description: 'Название группы'
                    enum: []
                  group_type_name:
                    type: string
                    example: 'Второе направление'
                    description: 'Название направления'
                    enum: []
                  office_name:
                    type: string
                    example: 'Основной 12'
                    description: 'Название филиала'
                    enum: []
                required:
                  - event_id
                  - type
                  - week_day
                  - date
                  - start_time
                  - end_time
                  - created_at
                  - updated_at
                  - group_id
      tags:
        - Занятия
    parameters:
      -
        in: path
        name: eventId
        description: 'ID занятия'
        example: '1'
        required: true
        schema:
          type: integer
  /api/external/v2/inquiry:
    post:
      summary: 'Создать заявку'
      operationId: ''
      description: 'Метод создает заявки от конкретного клиента'
      parameters:
        -
          in: header
          name: X-Requested-With
          description: ''
          example: XMLHttpRequest
          schema:
            type: string
      responses: {  }
      tags:
        - Заявки
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                cform_id:
                  type: string
                  description: 'Id формы захвата. The <code>cformId</code> of an existing record in the cform table.'
                  example: '12345'
                  nullable: false
                contact_id:
                  type: string
                  description: 'Id клиента. The <code>contactId</code> of an existing record in the contact table.'
                  example: '12345'
                  nullable: false
                note:
                  type: string
                  description: Заметка.
                  example: 'Новый клиент'
                  nullable: true
                source:
                  type: string
                  description: Источник.
                  example: call
                  nullable: true
                  enum:
                    - vk
                    - mobile
                    - website
                    - call
                    - cform
              required:
                - cform_id
                - contact_id
  /api/external/v2/sources:
    get:
      summary: 'Получить список источников'
      operationId: ''
      description: 'Метод предоставляет список источников'
      parameters:
        -
          in: query
          name: page
          description: Страница
          example: '1'
          required: true
          schema:
            type: integer
            description: Страница
            example: '1'
            nullable: false
        -
          in: header
          name: X-Requested-With
          description: ''
          example: XMLHttpRequest
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      source_id: -6
                      name: Telegram
                    -
                      source_id: -6
                      name: Telegram
                  meta:
                    pagination:
                      total: 2
                      count: 2
                      per_page: 10
                      current_page: 1
                      total_pages: 1
                      links: {  }
                properties:
                  data:
                    type: array
                    example:
                      -
                        source_id: -6
                        name: Telegram
                      -
                        source_id: -6
                        name: Telegram
                    items:
                      type: object
                      properties:
                        source_id:
                          type: integer
                          example: -6
                        name:
                          type: string
                          example: Telegram
                    required:
                      - source_id
                      - name
                  meta:
                    type: object
                    properties:
                      pagination:
                        type: object
                        properties:
                          total:
                            type: integer
                            example: 2
                          count:
                            type: integer
                            example: 2
                          per_page:
                            type: integer
                            example: 10
                          current_page:
                            type: integer
                            example: 1
                          total_pages:
                            type: integer
                            example: 1
                          links:
                            type: object
                            properties: {  }
      tags:
        - Источники
  /api/external/v2/contacts:
    get:
      summary: 'Получить список клиентов'
      operationId: ''
      description: 'Метод предоставляет данные о всех неудаленных клиентах'
      parameters:
        -
          in: query
          name: page
          description: Страница
          example: '1'
          required: true
          schema:
            type: integer
            description: Страница
            example: '1'
            nullable: false
        -
          in: query
          name: name
          description: ФИО.
          example: 'Иванов Иван Иванович'
          required: false
          schema:
            type: string
            description: ФИО.
            example: 'Иванов Иван Иванович'
            nullable: true
        -
          in: query
          name: phone
          description: 'Телефон. Must match the regex /^\d{10}$/.'
          example: '+79529991122, в любом формате'
          required: false
          schema:
            type: string
            description: 'Телефон. Must match the regex /^\d{10}$/.'
            example: '+79529991122, в любом формате'
            nullable: true
        -
          in: query
          name: email
          description: 'Email. Значение поля должно быть действительным электронным адресом.'
          example: test@test.ru
          required: false
          schema:
            type: string
            description: 'Email. Значение поля должно быть действительным электронным адресом.'
            example: test@test.ru
            nullable: true
        -
          in: header
          name: X-Requested-With
          description: ''
          example: XMLHttpRequest
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      contact_id: 1
                      name: 'Иванов Иван Иваныч'
                      name_short: ''
                      gender: male
                      birth_date: '1990-01-02'
                      email: ivanov2@mail.co
                      phone_alt: ''
                      phone: '9991111111'
                      note: ''
                      sticky_note: ''
                      photo: ''
                      barcode: '0000000000001'
                      created_at: '2016-03-17T05:48:50.000000Z'
                      updated_at: '2025-02-06T07:14:58.000000Z'
                      deleted_at: 0
                      balance: 0
                      bonus_balance: 0
                      parent_name: ''
                      parent_phone: '0'
                      parent_email: ''
                      parent_name2: ''
                      parent_phone2: ''
                      parent_email2: '0'
                      search_score: null
                      added_office_id: 0
                      customer_status: client
                      vkid: ''
                      fbid: ''
                      instaid: ''
                      has_trial_passes: 0
                      has_non_trial_passes: 0
                      last_admission_date: 0
                      last_pass_purchased: 0
                      first_non_trial: 0
                      last_non_trial: 0
                      utm_source: ''
                      utm_medium: ''
                      utm_campaign: ''
                      utm_content: ''
                      utm_term: ''
                      can_email: 0
                      can_sms: 0
                      can_wa: 0
                      can_tg: 0
                    -
                      contact_id: 1
                      name: 'Иванов Иван Иваныч'
                      name_short: ''
                      gender: male
                      birth_date: '1990-01-02'
                      email: ivanov2@mail.co
                      phone_alt: ''
                      phone: '9991111111'
                      note: ''
                      sticky_note: ''
                      photo: ''
                      barcode: '0000000000001'
                      created_at: '2016-03-17T05:48:50.000000Z'
                      updated_at: '2025-02-06T07:14:58.000000Z'
                      deleted_at: 0
                      balance: 0
                      bonus_balance: 0
                      parent_name: ''
                      parent_phone: '0'
                      parent_email: ''
                      parent_name2: ''
                      parent_phone2: ''
                      parent_email2: '0'
                      search_score: null
                      added_office_id: 0
                      customer_status: client
                      vkid: ''
                      fbid: ''
                      instaid: ''
                      has_trial_passes: 0
                      has_non_trial_passes: 0
                      last_admission_date: 0
                      last_pass_purchased: 0
                      first_non_trial: 0
                      last_non_trial: 0
                      utm_source: ''
                      utm_medium: ''
                      utm_campaign: ''
                      utm_content: ''
                      utm_term: ''
                      can_email: 0
                      can_sms: 0
                      can_wa: 0
                      can_tg: 0
                  meta:
                    pagination:
                      total: 2
                      count: 2
                      per_page: 10
                      current_page: 1
                      total_pages: 1
                      links: {  }
                properties:
                  data:
                    type: array
                    example:
                      -
                        contact_id: 1
                        name: 'Иванов Иван Иваныч'
                        name_short: ''
                        gender: male
                        birth_date: '1990-01-02'
                        email: ivanov2@mail.co
                        phone_alt: ''
                        phone: '9991111111'
                        note: ''
                        sticky_note: ''
                        photo: ''
                        barcode: '0000000000001'
                        created_at: '2016-03-17T05:48:50.000000Z'
                        updated_at: '2025-02-06T07:14:58.000000Z'
                        deleted_at: 0
                        balance: 0
                        bonus_balance: 0
                        parent_name: ''
                        parent_phone: '0'
                        parent_email: ''
                        parent_name2: ''
                        parent_phone2: ''
                        parent_email2: '0'
                        search_score: null
                        added_office_id: 0
                        customer_status: client
                        vkid: ''
                        fbid: ''
                        instaid: ''
                        has_trial_passes: 0
                        has_non_trial_passes: 0
                        last_admission_date: 0
                        last_pass_purchased: 0
                        first_non_trial: 0
                        last_non_trial: 0
                        utm_source: ''
                        utm_medium: ''
                        utm_campaign: ''
                        utm_content: ''
                        utm_term: ''
                        can_email: 0
                        can_sms: 0
                        can_wa: 0
                        can_tg: 0
                      -
                        contact_id: 1
                        name: 'Иванов Иван Иваныч'
                        name_short: ''
                        gender: male
                        birth_date: '1990-01-02'
                        email: ivanov2@mail.co
                        phone_alt: ''
                        phone: '9991111111'
                        note: ''
                        sticky_note: ''
                        photo: ''
                        barcode: '0000000000001'
                        created_at: '2016-03-17T05:48:50.000000Z'
                        updated_at: '2025-02-06T07:14:58.000000Z'
                        deleted_at: 0
                        balance: 0
                        bonus_balance: 0
                        parent_name: ''
                        parent_phone: '0'
                        parent_email: ''
                        parent_name2: ''
                        parent_phone2: ''
                        parent_email2: '0'
                        search_score: null
                        added_office_id: 0
                        customer_status: client
                        vkid: ''
                        fbid: ''
                        instaid: ''
                        has_trial_passes: 0
                        has_non_trial_passes: 0
                        last_admission_date: 0
                        last_pass_purchased: 0
                        first_non_trial: 0
                        last_non_trial: 0
                        utm_source: ''
                        utm_medium: ''
                        utm_campaign: ''
                        utm_content: ''
                        utm_term: ''
                        can_email: 0
                        can_sms: 0
                        can_wa: 0
                        can_tg: 0
                    items:
                      type: object
                      properties:
                        contact_id:
                          type: integer
                          example: 1
                        name:
                          type: string
                          example: 'Иванов Иван Иваныч'
                        name_short:
                          type: string
                          example: ''
                        gender:
                          type: string
                          example: male
                        birth_date:
                          type: string
                          example: '1990-01-02'
                        email:
                          type: string
                          example: ivanov2@mail.co
                        phone_alt:
                          type: string
                          example: ''
                        phone:
                          type: string
                          example: '9991111111'
                        note:
                          type: string
                          example: ''
                        sticky_note:
                          type: string
                          example: ''
                        photo:
                          type: string
                          example: ''
                        barcode:
                          type: string
                          example: '0000000000001'
                        created_at:
                          type: string
                          example: '2016-03-17T05:48:50.000000Z'
                        updated_at:
                          type: string
                          example: '2025-02-06T07:14:58.000000Z'
                        deleted_at:
                          type: integer
                          example: 0
                        balance:
                          type: integer
                          example: 0
                        bonus_balance:
                          type: integer
                          example: 0
                        parent_name:
                          type: string
                          example: ''
                        parent_phone:
                          type: string
                          example: '0'
                        parent_email:
                          type: string
                          example: ''
                        parent_name2:
                          type: string
                          example: ''
                        parent_phone2:
                          type: string
                          example: ''
                        parent_email2:
                          type: string
                          example: '0'
                        search_score:
                          type: string
                          example: null
                        added_office_id:
                          type: integer
                          example: 0
                        customer_status:
                          type: string
                          example: client
                        vkid:
                          type: string
                          example: ''
                        fbid:
                          type: string
                          example: ''
                        instaid:
                          type: string
                          example: ''
                        has_trial_passes:
                          type: integer
                          example: 0
                        has_non_trial_passes:
                          type: integer
                          example: 0
                        last_admission_date:
                          type: integer
                          example: 0
                        last_pass_purchased:
                          type: integer
                          example: 0
                        first_non_trial:
                          type: integer
                          example: 0
                        last_non_trial:
                          type: integer
                          example: 0
                        utm_source:
                          type: string
                          example: ''
                        utm_medium:
                          type: string
                          example: ''
                        utm_campaign:
                          type: string
                          example: ''
                        utm_content:
                          type: string
                          example: ''
                        utm_term:
                          type: string
                          example: ''
                        can_email:
                          type: integer
                          example: 0
                        can_sms:
                          type: integer
                          example: 0
                        can_wa:
                          type: integer
                          example: 0
                        can_tg:
                          type: integer
                          example: 0
                    required:
                      - contact_id
                      - name
                  meta:
                    type: object
                    properties:
                      pagination:
                        type: object
                        properties:
                          total:
                            type: integer
                            example: 2
                          count:
                            type: integer
                            example: 2
                          per_page:
                            type: integer
                            example: 10
                          current_page:
                            type: integer
                            example: 1
                          total_pages:
                            type: integer
                            example: 1
                          links:
                            type: object
                            properties: {  }
      tags:
        - Клиент
    post:
      summary: 'Создать клиента'
      operationId: ''
      description: 'Метод создает нового клиента'
      parameters:
        -
          in: header
          name: X-Requested-With
          description: ''
          example: XMLHttpRequest
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  contact_id: 1
                  name: 'Иванов Иван Иваныч'
                  name_short: ''
                  gender: male
                  birth_date: '1990-01-02'
                  email: ivanov2@mail.co
                  phone_alt: ''
                  phone: '9991111111'
                  note: ''
                  sticky_note: ''
                  photo: ''
                  barcode: '0000000000001'
                  created_at: '2016-03-17T05:48:50.000000Z'
                  updated_at: '2025-02-06T07:14:58.000000Z'
                  deleted_at: 0
                  balance: 0
                  bonus_balance: 0
                  parent_name: ''
                  parent_phone: '0'
                  parent_email: ''
                  parent_name2: ''
                  parent_phone2: ''
                  parent_email2: '0'
                  search_score: null
                  added_office_id: 0
                  customer_status: client
                  vkid: ''
                  fbid: ''
                  instaid: ''
                  has_trial_passes: 0
                  has_non_trial_passes: 0
                  last_admission_date: 0
                  last_pass_purchased: 0
                  first_non_trial: 0
                  last_non_trial: 0
                  utm_source: ''
                  utm_medium: ''
                  utm_campaign: ''
                  utm_content: ''
                  utm_term: ''
                  can_email: 0
                  can_sms: 0
                  can_wa: 0
                  can_tg: 0
                properties:
                  contact_id:
                    type: integer
                    example: 1
                    description: 'ID клиента'
                    enum: []
                  name:
                    type: string
                    example: 'Иванов Иван Иваныч'
                    description: 'ФИО клиента'
                    enum: []
                  name_short:
                    type: string
                    example: ''
                    description: Обращение
                    enum: []
                  gender:
                    type: string
                    example: male
                    description: Пол
                    enum: []
                  birth_date:
                    type: string
                    example: '1990-01-02'
                    description: 'Дата рождения'
                    enum: []
                  email:
                    type: string
                    example: ivanov2@mail.co
                    description: 'Email клиента (доступен при наличии разрешения)'
                    enum: []
                  phone_alt:
                    type: string
                    example: ''
                    description: 'Альтернативный номер телефона'
                    enum: []
                  phone:
                    type: string
                    example: '9991111111'
                    description: 'Основной номер телефона (доступен при наличии разрешения)'
                    enum: []
                  note:
                    type: string
                    example: ''
                    description: 'Заметка о клиенте'
                    enum: []
                  sticky_note:
                    type: string
                    example: ''
                    description: 'Закрепленная заметка о клиенте'
                    enum: []
                  photo:
                    type: string
                    example: ''
                    description: 'Ссылка на фото клиента'
                    enum: []
                  barcode:
                    type: string
                    example: '0000000000001'
                    description: Штрихкод
                    enum: []
                  created_at:
                    type: string
                    example: '2016-03-17T05:48:50.000000Z'
                    description: 'Дата создания клиента'
                    enum: []
                  updated_at:
                    type: string
                    example: '2025-02-06T07:14:58.000000Z'
                    description: 'Дата последнего изменения клиента'
                    enum: []
                  deleted_at:
                    type: integer
                    example: 0
                    description: 'Дата удаления клиента (если клиент удален)'
                    enum: []
                  balance:
                    type: integer
                    example: 0
                    description: 'Баланс клиента'
                    enum: []
                  bonus_balance:
                    type: integer
                    example: 0
                    description: 'Баланс бонусов клиента'
                    enum: []
                  parent_name:
                    type: string
                    example: ''
                    description: 'ФИО родителя'
                    enum: []
                  parent_phone:
                    type: string
                    example: '0'
                    description: 'Телефон родителя (доступен при наличии разрешения)'
                    enum: []
                  parent_email:
                    type: string
                    example: ''
                    description: 'Email родителя'
                    enum: []
                  parent_name2:
                    type: string
                    example: ''
                    description: 'ФИО второго родителя'
                    enum: []
                  parent_phone2:
                    type: string
                    example: ''
                    description: 'Телефон второго родителя (доступен при наличии разрешения)'
                    enum: []
                  parent_email2:
                    type: string
                    example: '0'
                    description: 'Email второго родителя'
                    enum: []
                  search_score:
                    type: string
                    example: null
                    description: 'Рейтинг совпадения при поиске'
                    enum: []
                  added_office_id:
                    type: integer
                    example: 0
                    description: 'Филиал клиента'
                    enum: []
                  customer_status:
                    type: string
                    example: client
                    description: 'Статус клиента'
                    enum: []
                  vkid:
                    type: string
                    example: ''
                    description: 'ID ВКонтакте'
                    enum: []
                  fbid:
                    type: string
                    example: ''
                    description: 'ID Facebook'
                    enum: []
                  instaid:
                    type: string
                    example: ''
                    description: 'ID Instagram'
                    enum: []
                  has_trial_passes:
                    type: integer
                    example: 0
                    description: 'Наличие пробных абонементов'
                    enum: []
                  has_non_trial_passes:
                    type: integer
                    example: 0
                    description: 'Наличие НЕ пробных абонементов'
                    enum: []
                  last_admission_date:
                    type: integer
                    example: 0
                    description: 'Дата последнего посещения'
                    enum: []
                  last_pass_purchased:
                    type: integer
                    example: 0
                    description: 'Дата последней покупки абонемента'
                    enum: []
                  first_non_trial:
                    type: integer
                    example: 0
                    description: 'Дата покупки первого НЕ пробного абонемента'
                    enum: []
                  last_non_trial:
                    type: integer
                    example: 0
                    description: 'Дата покупки последнего НЕ пробного абонемента'
                    enum: []
                  utm_source:
                    type: string
                    example: ''
                    description: 'UTM источник'
                    enum: []
                  utm_medium:
                    type: string
                    example: ''
                    description: 'UTM канал'
                    enum: []
                  utm_campaign:
                    type: string
                    example: ''
                    description: 'UTM кампания'
                    enum: []
                  utm_content:
                    type: string
                    example: ''
                    description: 'UTM контент'
                    enum: []
                  utm_term:
                    type: string
                    example: ''
                    description: 'UTM ключевое слово'
                    enum: []
                  can_email:
                    type: integer
                    example: 0
                    description: 'Разрешено ли отправлять Email'
                    enum: []
                  can_sms:
                    type: integer
                    example: 0
                    description: 'Разрешено ли отправлять SMS'
                    enum: []
                  can_wa:
                    type: integer
                    example: 0
                    description: 'Разрешено ли отправлять сообщения в WhatsApp'
                    enum: []
                  can_tg:
                    type: integer
                    example: 0
                    description: 'Разрешено ли отправлять сообщения в Telegram'
                    enum: []
                required:
                  - contact_id
                  - name
      tags:
        - Клиент
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'Количество символов в поле не может превышать 255.'
                  example: sihlpyccpogzacwaymmfa
                  nullable: false
                phone:
                  type: string
                  description: 'Must match the regex /^\d{10}$/.'
                  example: '6282856086'
                  nullable: true
                gender:
                  type: string
                  description: ''
                  example: female
                  nullable: true
                  enum:
                    - female
                    - male
                can_sms:
                  type: boolean
                  description: ''
                  example: false
                  nullable: true
                can_email:
                  type: boolean
                  description: ''
                  example: true
                  nullable: true
                email:
                  type: string
                  description: 'Значение поля должно быть действительным электронным адресом.'
                  example: 0
                  nullable: true
                added_office_id:
                  type: integer
                  description: 'The <code>officeId</code> of an existing record in the office table.'
                  example: 17
                  nullable: true
                source_id:
                  type: string
                  description: 'The <code>sourceId</code> of an existing record in the source table.'
                  example: null
                  nullable: true
              required:
                - name
  '/api/external/v2/contacts/{contactId}':
    get:
      summary: 'Получить данные клиента'
      operationId: ''
      description: 'Метод предоставляет данные о конкретном клиенте по ID'
      parameters:
        -
          in: header
          name: X-Requested-With
          description: ''
          example: XMLHttpRequest
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  contact_id: 1
                  name: 'Иванов Иван Иваныч'
                  name_short: ''
                  gender: male
                  birth_date: '1990-01-02'
                  email: ivanov2@mail.co
                  phone_alt: ''
                  phone: '9991111111'
                  note: ''
                  sticky_note: ''
                  photo: ''
                  barcode: '0000000000001'
                  created_at: '2016-03-17T05:48:50.000000Z'
                  updated_at: '2025-02-06T07:14:58.000000Z'
                  deleted_at: 0
                  balance: 0
                  bonus_balance: 0
                  parent_name: ''
                  parent_phone: '0'
                  parent_email: ''
                  parent_name2: ''
                  parent_phone2: ''
                  parent_email2: '0'
                  search_score: null
                  added_office_id: 0
                  customer_status: client
                  vkid: ''
                  fbid: ''
                  instaid: ''
                  has_trial_passes: 0
                  has_non_trial_passes: 0
                  last_admission_date: 0
                  last_pass_purchased: 0
                  first_non_trial: 0
                  last_non_trial: 0
                  utm_source: ''
                  utm_medium: ''
                  utm_campaign: ''
                  utm_content: ''
                  utm_term: ''
                  can_email: 0
                  can_sms: 0
                  can_wa: 0
                  can_tg: 0
                properties:
                  contact_id:
                    type: integer
                    example: 1
                    description: 'ID клиента'
                    enum: []
                  name:
                    type: string
                    example: 'Иванов Иван Иваныч'
                    description: 'ФИО клиента'
                    enum: []
                  name_short:
                    type: string
                    example: ''
                    description: Обращение
                    enum: []
                  gender:
                    type: string
                    example: male
                    description: Пол
                    enum: []
                  birth_date:
                    type: string
                    example: '1990-01-02'
                    description: 'Дата рождения'
                    enum: []
                  email:
                    type: string
                    example: ivanov2@mail.co
                    description: 'Email клиента (доступен при наличии разрешения)'
                    enum: []
                  phone_alt:
                    type: string
                    example: ''
                    description: 'Альтернативный номер телефона'
                    enum: []
                  phone:
                    type: string
                    example: '9991111111'
                    description: 'Основной номер телефона (доступен при наличии разрешения)'
                    enum: []
                  note:
                    type: string
                    example: ''
                    description: 'Заметка о клиенте'
                    enum: []
                  sticky_note:
                    type: string
                    example: ''
                    description: 'Закрепленная заметка о клиенте'
                    enum: []
                  photo:
                    type: string
                    example: ''
                    description: 'Ссылка на фото клиента'
                    enum: []
                  barcode:
                    type: string
                    example: '0000000000001'
                    description: Штрихкод
                    enum: []
                  created_at:
                    type: string
                    example: '2016-03-17T05:48:50.000000Z'
                    description: 'Дата создания клиента'
                    enum: []
                  updated_at:
                    type: string
                    example: '2025-02-06T07:14:58.000000Z'
                    description: 'Дата последнего изменения клиента'
                    enum: []
                  deleted_at:
                    type: integer
                    example: 0
                    description: 'Дата удаления клиента (если клиент удален)'
                    enum: []
                  balance:
                    type: integer
                    example: 0
                    description: 'Баланс клиента'
                    enum: []
                  bonus_balance:
                    type: integer
                    example: 0
                    description: 'Баланс бонусов клиента'
                    enum: []
                  parent_name:
                    type: string
                    example: ''
                    description: 'ФИО родителя'
                    enum: []
                  parent_phone:
                    type: string
                    example: '0'
                    description: 'Телефон родителя (доступен при наличии разрешения)'
                    enum: []
                  parent_email:
                    type: string
                    example: ''
                    description: 'Email родителя'
                    enum: []
                  parent_name2:
                    type: string
                    example: ''
                    description: 'ФИО второго родителя'
                    enum: []
                  parent_phone2:
                    type: string
                    example: ''
                    description: 'Телефон второго родителя (доступен при наличии разрешения)'
                    enum: []
                  parent_email2:
                    type: string
                    example: '0'
                    description: 'Email второго родителя'
                    enum: []
                  search_score:
                    type: string
                    example: null
                    description: 'Рейтинг совпадения при поиске'
                    enum: []
                  added_office_id:
                    type: integer
                    example: 0
                    description: 'Филиал клиента'
                    enum: []
                  customer_status:
                    type: string
                    example: client
                    description: 'Статус клиента'
                    enum: []
                  vkid:
                    type: string
                    example: ''
                    description: 'ID ВКонтакте'
                    enum: []
                  fbid:
                    type: string
                    example: ''
                    description: 'ID Facebook'
                    enum: []
                  instaid:
                    type: string
                    example: ''
                    description: 'ID Instagram'
                    enum: []
                  has_trial_passes:
                    type: integer
                    example: 0
                    description: 'Наличие пробных абонементов'
                    enum: []
                  has_non_trial_passes:
                    type: integer
                    example: 0
                    description: 'Наличие НЕ пробных абонементов'
                    enum: []
                  last_admission_date:
                    type: integer
                    example: 0
                    description: 'Дата последнего посещения'
                    enum: []
                  last_pass_purchased:
                    type: integer
                    example: 0
                    description: 'Дата последней покупки абонемента'
                    enum: []
                  first_non_trial:
                    type: integer
                    example: 0
                    description: 'Дата покупки первого НЕ пробного абонемента'
                    enum: []
                  last_non_trial:
                    type: integer
                    example: 0
                    description: 'Дата покупки последнего НЕ пробного абонемента'
                    enum: []
                  utm_source:
                    type: string
                    example: ''
                    description: 'UTM источник'
                    enum: []
                  utm_medium:
                    type: string
                    example: ''
                    description: 'UTM канал'
                    enum: []
                  utm_campaign:
                    type: string
                    example: ''
                    description: 'UTM кампания'
                    enum: []
                  utm_content:
                    type: string
                    example: ''
                    description: 'UTM контент'
                    enum: []
                  utm_term:
                    type: string
                    example: ''
                    description: 'UTM ключевое слово'
                    enum: []
                  can_email:
                    type: integer
                    example: 0
                    description: 'Разрешено ли отправлять Email'
                    enum: []
                  can_sms:
                    type: integer
                    example: 0
                    description: 'Разрешено ли отправлять SMS'
                    enum: []
                  can_wa:
                    type: integer
                    example: 0
                    description: 'Разрешено ли отправлять сообщения в WhatsApp'
                    enum: []
                  can_tg:
                    type: integer
                    example: 0
                    description: 'Разрешено ли отправлять сообщения в Telegram'
                    enum: []
                required:
                  - contact_id
                  - name
      tags:
        - Клиент
    parameters:
      -
        in: path
        name: contactId
        description: 'ID клиента'
        example: '1'
        required: true
        schema:
          type: integer
  '/api/external/v2/contacts/{contact_contactId}/passes/{pass_passId}':
    post:
      summary: 'Оформить абонемент клиенту'
      operationId: ''
      description: 'Метод позволяет оформить абонемент клиенту'
      parameters:
        -
          in: header
          name: X-Requested-With
          description: ''
          example: XMLHttpRequest
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  pass_contact_id: 1
                  pass_id: 1
                  is_trial: 0
                  sold_at: 1696852602
                  created_at: '2023-10-09T11:56:42.000000Z'
                  updated_at: '2024-08-22T04:40:02.000000Z'
                  deleted_at: '1970-01-01T00:00:00.000000Z'
                  debt_dead_line_at: '1970-01-01T00:00:00.000000Z'
                  expires_at: '2023-12-15T17:00:00.000000Z'
                  expired_at: '0000-00-00'
                  activated_at: '2023-10-08T17:00:00.000000Z'
                  frozen_till_at: '2024-07-11T17:00:00.000000Z'
                  planned_freeze_at: null
                  paid_price: 2000
                  full_price: 2000
                  discounted: 0
                  status: frozen
                  class_type: ege
                  points_left: 11
                  points_total: 10
                  freeze_times: 100
                  comment: ''
                  revoke_comment: ''
                  pass:
                    pass_id: 1
                    name: 'Абонемент на 10 занятий'
                    description: ''
                    admit_number: 10
                    valid_for_days: 31
                    valid_for_months: 0
                    freeze_times: 100
                    freeze_days: 100
                    pass_type: 1
                    price: 2000
                    allowed_times: []
                    disabled_days: []
                    allow_buying_pass_mobile: 0
                    allow_buying_pass_online: 0
                properties:
                  pass_contact_id:
                    type: integer
                    example: 1
                    description: 'ID абонемента клиента'
                    enum: []
                  pass_id:
                    type: integer
                    example: 1
                    description: 'ID вида абонемента'
                    enum: []
                  is_trial:
                    type: integer
                    example: 0
                    description: 'Является ли пробным абонементом'
                    enum: []
                  sold_at:
                    type: integer
                    example: 1696852602
                    description: 'Дата продажи абонемента'
                    enum: []
                  created_at:
                    type: string
                    example: '2023-10-09T11:56:42.000000Z'
                    description: 'Дата создания записи'
                    enum: []
                  updated_at:
                    type: string
                    example: '2024-08-22T04:40:02.000000Z'
                    description: 'Дата последнего обновления'
                    enum: []
                  deleted_at:
                    type: string
                    example: '1970-01-01T00:00:00.000000Z'
                    description: 'Дата удаления записи (если применимо)'
                    enum: []
                  debt_dead_line_at:
                    type: string
                    example: '1970-01-01T00:00:00.000000Z'
                    description: 'Срок погашения задолженности'
                    enum: []
                  expires_at:
                    type: string
                    example: '2023-12-15T17:00:00.000000Z'
                    description: 'Дата истечения абонемента'
                    enum: []
                  expired_at:
                    type: string
                    example: '0000-00-00'
                    description: 'Фактическая дата истечения абонемента'
                    enum: []
                  activated_at:
                    type: string
                    example: '2023-10-08T17:00:00.000000Z'
                    description: 'Дата активации абонемента'
                    enum: []
                  frozen_till_at:
                    type: string
                    example: '2024-07-11T17:00:00.000000Z'
                    description: 'Дата окончания заморозки'
                    enum: []
                  planned_freeze_at:
                    type: string
                    example: null
                    description: 'Дата запланированной заморозки'
                    enum: []
                  paid_price:
                    type: integer
                    example: 2000
                    description: 'Оплаченная сумма за абонемент'
                    enum: []
                  full_price:
                    type: integer
                    example: 2000
                    description: 'Полная стоимость абонемента'
                    enum: []
                  discounted:
                    type: integer
                    example: 0
                    description: 'Размер скидки'
                    enum: []
                  status:
                    type: string
                    example: frozen
                    description: 'Статус абонемента'
                    enum: []
                  class_type:
                    type: string
                    example: ege
                    description: 'Тип абонемента'
                    enum: []
                  points_left:
                    type: integer
                    example: 11
                    description: 'Оставшееся количество посещений'
                    enum: []
                  points_total:
                    type: integer
                    example: 10
                    description: 'Общее количество посещений'
                    enum: []
                  freeze_times:
                    type: integer
                    example: 100
                    description: 'Количество использованных заморозок'
                    enum: []
                  comment:
                    type: string
                    example: ''
                    description: 'Комментарий к абонементу'
                    enum: []
                  revoke_comment:
                    type: string
                    example: ''
                    description: 'Комментарий к аннулированию абонемента'
                    enum: []
                  pass:
                    type: object
                    properties:
                      pass_id:
                        type: integer
                        example: 1
                      name:
                        type: string
                        example: 'Абонемент на 10 занятий'
                      description:
                        type: string
                        example: ''
                      admit_number:
                        type: integer
                        example: 10
                      valid_for_days:
                        type: integer
                        example: 31
                      valid_for_months:
                        type: integer
                        example: 0
                      freeze_times:
                        type: integer
                        example: 100
                      freeze_days:
                        type: integer
                        example: 100
                      pass_type:
                        type: integer
                        example: 1
                      price:
                        type: integer
                        example: 2000
                      allowed_times:
                        type: array
                        example: []
                      disabled_days:
                        type: array
                        example: []
                      allow_buying_pass_mobile:
                        type: integer
                        example: 0
                      allow_buying_pass_online:
                        type: integer
                        example: 0
      tags:
        - Клиент
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                amount:
                  type: number
                  description: Сумма.
                  example: 1000.0
                  nullable: false
                cashregister_id:
                  type: string
                  description: 'Способ внесения средств. The <code>cashregisterId</code> of an existing record in the cashregister table.'
                  example: 1
                  nullable: false
              required:
                - amount
                - cashregister_id
    parameters:
      -
        in: path
        name: contact_contactId
        description: 'ID клиента'
        example: '1'
        required: true
        schema:
          type: integer
      -
        in: path
        name: pass_passId
        description: 'ID абонемента'
        example: '1'
        required: true
        schema:
          type: integer
  '/api/external/v2/contacts/{contact_contactId}/passes':
    get:
      summary: 'Получить список абонементов клиента'
      operationId: ''
      description: 'Метод предоставляет данные о всех абонементах клиента. Абонементы фильтруются по статусу: активный, неактивированный, замороженный, истекший, отозванный'
      parameters:
        -
          in: query
          name: status
          description: Статус
          example: 'active, expired, frozen, inactive, revoked'
          required: true
          schema:
            type: string
            description: Статус
            example: 'active, expired, frozen, inactive, revoked'
            nullable: false
        -
          in: query
          name: page
          description: Страница
          example: '1'
          required: true
          schema:
            type: integer
            description: Страница
            example: '1'
            nullable: false
        -
          in: header
          name: X-Requested-With
          description: ''
          example: XMLHttpRequest
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      pass_contact_id: 1
                      pass_id: 1
                      is_trial: 0
                      sold_at: 1696852602
                      created_at: '2023-10-09T11:56:42.000000Z'
                      updated_at: '2024-08-22T04:40:02.000000Z'
                      deleted_at: '1970-01-01T00:00:00.000000Z'
                      debt_dead_line_at: '1970-01-01T00:00:00.000000Z'
                      expires_at: '2023-12-15T17:00:00.000000Z'
                      expired_at: '0000-00-00'
                      activated_at: '2023-10-08T17:00:00.000000Z'
                      frozen_till_at: '2024-07-11T17:00:00.000000Z'
                      planned_freeze_at: null
                      paid_price: 2000
                      full_price: 2000
                      discounted: 0
                      status: frozen
                      class_type: ege
                      points_left: 11
                      points_total: 10
                      freeze_times: 100
                      comment: ''
                      revoke_comment: ''
                      pass:
                        pass_id: 1
                        name: 'Абонемент на 10 занятий'
                        description: ''
                        admit_number: 10
                        valid_for_days: 31
                        valid_for_months: 0
                        freeze_times: 100
                        freeze_days: 100
                        pass_type: 1
                        price: 2000
                        allowed_times: []
                        disabled_days: []
                        allow_buying_pass_mobile: 0
                        allow_buying_pass_online: 0
                    -
                      pass_contact_id: 1
                      pass_id: 1
                      is_trial: 0
                      sold_at: 1696852602
                      created_at: '2023-10-09T11:56:42.000000Z'
                      updated_at: '2024-08-22T04:40:02.000000Z'
                      deleted_at: '1970-01-01T00:00:00.000000Z'
                      debt_dead_line_at: '1970-01-01T00:00:00.000000Z'
                      expires_at: '2023-12-15T17:00:00.000000Z'
                      expired_at: '0000-00-00'
                      activated_at: '2023-10-08T17:00:00.000000Z'
                      frozen_till_at: '2024-07-11T17:00:00.000000Z'
                      planned_freeze_at: null
                      paid_price: 2000
                      full_price: 2000
                      discounted: 0
                      status: frozen
                      class_type: ege
                      points_left: 11
                      points_total: 10
                      freeze_times: 100
                      comment: ''
                      revoke_comment: ''
                      pass:
                        pass_id: 1
                        name: 'Абонемент на 10 занятий'
                        description: ''
                        admit_number: 10
                        valid_for_days: 31
                        valid_for_months: 0
                        freeze_times: 100
                        freeze_days: 100
                        pass_type: 1
                        price: 2000
                        allowed_times: []
                        disabled_days: []
                        allow_buying_pass_mobile: 0
                        allow_buying_pass_online: 0
                  meta:
                    pagination:
                      total: 2
                      count: 2
                      per_page: 10
                      current_page: 1
                      total_pages: 1
                      links: {  }
                properties:
                  data:
                    type: array
                    example:
                      -
                        pass_contact_id: 1
                        pass_id: 1
                        is_trial: 0
                        sold_at: 1696852602
                        created_at: '2023-10-09T11:56:42.000000Z'
                        updated_at: '2024-08-22T04:40:02.000000Z'
                        deleted_at: '1970-01-01T00:00:00.000000Z'
                        debt_dead_line_at: '1970-01-01T00:00:00.000000Z'
                        expires_at: '2023-12-15T17:00:00.000000Z'
                        expired_at: '0000-00-00'
                        activated_at: '2023-10-08T17:00:00.000000Z'
                        frozen_till_at: '2024-07-11T17:00:00.000000Z'
                        planned_freeze_at: null
                        paid_price: 2000
                        full_price: 2000
                        discounted: 0
                        status: frozen
                        class_type: ege
                        points_left: 11
                        points_total: 10
                        freeze_times: 100
                        comment: ''
                        revoke_comment: ''
                        pass:
                          pass_id: 1
                          name: 'Абонемент на 10 занятий'
                          description: ''
                          admit_number: 10
                          valid_for_days: 31
                          valid_for_months: 0
                          freeze_times: 100
                          freeze_days: 100
                          pass_type: 1
                          price: 2000
                          allowed_times: []
                          disabled_days: []
                          allow_buying_pass_mobile: 0
                          allow_buying_pass_online: 0
                      -
                        pass_contact_id: 1
                        pass_id: 1
                        is_trial: 0
                        sold_at: 1696852602
                        created_at: '2023-10-09T11:56:42.000000Z'
                        updated_at: '2024-08-22T04:40:02.000000Z'
                        deleted_at: '1970-01-01T00:00:00.000000Z'
                        debt_dead_line_at: '1970-01-01T00:00:00.000000Z'
                        expires_at: '2023-12-15T17:00:00.000000Z'
                        expired_at: '0000-00-00'
                        activated_at: '2023-10-08T17:00:00.000000Z'
                        frozen_till_at: '2024-07-11T17:00:00.000000Z'
                        planned_freeze_at: null
                        paid_price: 2000
                        full_price: 2000
                        discounted: 0
                        status: frozen
                        class_type: ege
                        points_left: 11
                        points_total: 10
                        freeze_times: 100
                        comment: ''
                        revoke_comment: ''
                        pass:
                          pass_id: 1
                          name: 'Абонемент на 10 занятий'
                          description: ''
                          admit_number: 10
                          valid_for_days: 31
                          valid_for_months: 0
                          freeze_times: 100
                          freeze_days: 100
                          pass_type: 1
                          price: 2000
                          allowed_times: []
                          disabled_days: []
                          allow_buying_pass_mobile: 0
                          allow_buying_pass_online: 0
                    items:
                      type: object
                      properties:
                        pass_contact_id:
                          type: integer
                          example: 1
                        pass_id:
                          type: integer
                          example: 1
                        is_trial:
                          type: integer
                          example: 0
                        sold_at:
                          type: integer
                          example: 1696852602
                        created_at:
                          type: string
                          example: '2023-10-09T11:56:42.000000Z'
                        updated_at:
                          type: string
                          example: '2024-08-22T04:40:02.000000Z'
                        deleted_at:
                          type: string
                          example: '1970-01-01T00:00:00.000000Z'
                        debt_dead_line_at:
                          type: string
                          example: '1970-01-01T00:00:00.000000Z'
                        expires_at:
                          type: string
                          example: '2023-12-15T17:00:00.000000Z'
                        expired_at:
                          type: string
                          example: '0000-00-00'
                        activated_at:
                          type: string
                          example: '2023-10-08T17:00:00.000000Z'
                        frozen_till_at:
                          type: string
                          example: '2024-07-11T17:00:00.000000Z'
                        planned_freeze_at:
                          type: string
                          example: null
                        paid_price:
                          type: integer
                          example: 2000
                        full_price:
                          type: integer
                          example: 2000
                        discounted:
                          type: integer
                          example: 0
                        status:
                          type: string
                          example: frozen
                        class_type:
                          type: string
                          example: ege
                        points_left:
                          type: integer
                          example: 11
                        points_total:
                          type: integer
                          example: 10
                        freeze_times:
                          type: integer
                          example: 100
                        comment:
                          type: string
                          example: ''
                        revoke_comment:
                          type: string
                          example: ''
                        pass:
                          type: object
                          properties:
                            pass_id:
                              type: integer
                              example: 1
                            name:
                              type: string
                              example: 'Абонемент на 10 занятий'
                            description:
                              type: string
                              example: ''
                            admit_number:
                              type: integer
                              example: 10
                            valid_for_days:
                              type: integer
                              example: 31
                            valid_for_months:
                              type: integer
                              example: 0
                            freeze_times:
                              type: integer
                              example: 100
                            freeze_days:
                              type: integer
                              example: 100
                            pass_type:
                              type: integer
                              example: 1
                            price:
                              type: integer
                              example: 2000
                            allowed_times:
                              type: array
                              example: []
                            disabled_days:
                              type: array
                              example: []
                            allow_buying_pass_mobile:
                              type: integer
                              example: 0
                            allow_buying_pass_online:
                              type: integer
                              example: 0
                  meta:
                    type: object
                    properties:
                      pagination:
                        type: object
                        properties:
                          total:
                            type: integer
                            example: 2
                          count:
                            type: integer
                            example: 2
                          per_page:
                            type: integer
                            example: 10
                          current_page:
                            type: integer
                            example: 1
                          total_pages:
                            type: integer
                            example: 1
                          links:
                            type: object
                            properties: {  }
      tags:
        - Клиент
    parameters:
      -
        in: path
        name: contact_contactId
        description: 'ID клиента'
        example: '1'
        required: true
        schema:
          type: integer
  '/api/external/v2/contacts/{contact_contactId}/passes/{passContact_pass_contactId}':
    get:
      summary: 'Получить данные абонемента'
      operationId: ''
      description: 'Метод предоставляет данные о конкретном абонементе конкретного клиента'
      parameters:
        -
          in: header
          name: X-Requested-With
          description: ''
          example: XMLHttpRequest
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  pass_contact_id: 1
                  pass_id: 1
                  is_trial: 0
                  sold_at: 1696852602
                  created_at: '2023-10-09T11:56:42.000000Z'
                  updated_at: '2024-08-22T04:40:02.000000Z'
                  deleted_at: '1970-01-01T00:00:00.000000Z'
                  debt_dead_line_at: '1970-01-01T00:00:00.000000Z'
                  expires_at: '2023-12-15T17:00:00.000000Z'
                  expired_at: '0000-00-00'
                  activated_at: '2023-10-08T17:00:00.000000Z'
                  frozen_till_at: '2024-07-11T17:00:00.000000Z'
                  planned_freeze_at: null
                  paid_price: 2000
                  full_price: 2000
                  discounted: 0
                  status: frozen
                  class_type: ege
                  points_left: 11
                  points_total: 10
                  freeze_times: 100
                  comment: ''
                  revoke_comment: ''
                  pass:
                    pass_id: 1
                    name: 'Абонемент на 10 занятий'
                    description: ''
                    admit_number: 10
                    valid_for_days: 31
                    valid_for_months: 0
                    freeze_times: 100
                    freeze_days: 100
                    pass_type: 1
                    price: 2000
                    allowed_times: []
                    disabled_days: []
                    allow_buying_pass_mobile: 0
                    allow_buying_pass_online: 0
                properties:
                  pass_contact_id:
                    type: integer
                    example: 1
                    description: 'ID абонемента клиента'
                    enum: []
                  pass_id:
                    type: integer
                    example: 1
                    description: 'ID вида абонемента'
                    enum: []
                  is_trial:
                    type: integer
                    example: 0
                    description: 'Является ли пробным абонементом'
                    enum: []
                  sold_at:
                    type: integer
                    example: 1696852602
                    description: 'Дата продажи абонемента'
                    enum: []
                  created_at:
                    type: string
                    example: '2023-10-09T11:56:42.000000Z'
                    description: 'Дата создания записи'
                    enum: []
                  updated_at:
                    type: string
                    example: '2024-08-22T04:40:02.000000Z'
                    description: 'Дата последнего обновления'
                    enum: []
                  deleted_at:
                    type: string
                    example: '1970-01-01T00:00:00.000000Z'
                    description: 'Дата удаления записи (если применимо)'
                    enum: []
                  debt_dead_line_at:
                    type: string
                    example: '1970-01-01T00:00:00.000000Z'
                    description: 'Срок погашения задолженности'
                    enum: []
                  expires_at:
                    type: string
                    example: '2023-12-15T17:00:00.000000Z'
                    description: 'Дата истечения абонемента'
                    enum: []
                  expired_at:
                    type: string
                    example: '0000-00-00'
                    description: 'Фактическая дата истечения абонемента'
                    enum: []
                  activated_at:
                    type: string
                    example: '2023-10-08T17:00:00.000000Z'
                    description: 'Дата активации абонемента'
                    enum: []
                  frozen_till_at:
                    type: string
                    example: '2024-07-11T17:00:00.000000Z'
                    description: 'Дата окончания заморозки'
                    enum: []
                  planned_freeze_at:
                    type: string
                    example: null
                    description: 'Дата запланированной заморозки'
                    enum: []
                  paid_price:
                    type: integer
                    example: 2000
                    description: 'Оплаченная сумма за абонемент'
                    enum: []
                  full_price:
                    type: integer
                    example: 2000
                    description: 'Полная стоимость абонемента'
                    enum: []
                  discounted:
                    type: integer
                    example: 0
                    description: 'Размер скидки'
                    enum: []
                  status:
                    type: string
                    example: frozen
                    description: 'Статус абонемента'
                    enum: []
                  class_type:
                    type: string
                    example: ege
                    description: 'Тип абонемента'
                    enum: []
                  points_left:
                    type: integer
                    example: 11
                    description: 'Оставшееся количество посещений'
                    enum: []
                  points_total:
                    type: integer
                    example: 10
                    description: 'Общее количество посещений'
                    enum: []
                  freeze_times:
                    type: integer
                    example: 100
                    description: 'Количество использованных заморозок'
                    enum: []
                  comment:
                    type: string
                    example: ''
                    description: 'Комментарий к абонементу'
                    enum: []
                  revoke_comment:
                    type: string
                    example: ''
                    description: 'Комментарий к аннулированию абонемента'
                    enum: []
                  pass:
                    type: object
                    properties:
                      pass_id:
                        type: integer
                        example: 1
                      name:
                        type: string
                        example: 'Абонемент на 10 занятий'
                      description:
                        type: string
                        example: ''
                      admit_number:
                        type: integer
                        example: 10
                      valid_for_days:
                        type: integer
                        example: 31
                      valid_for_months:
                        type: integer
                        example: 0
                      freeze_times:
                        type: integer
                        example: 100
                      freeze_days:
                        type: integer
                        example: 100
                      pass_type:
                        type: integer
                        example: 1
                      price:
                        type: integer
                        example: 2000
                      allowed_times:
                        type: array
                        example: []
                      disabled_days:
                        type: array
                        example: []
                      allow_buying_pass_mobile:
                        type: integer
                        example: 0
                      allow_buying_pass_online:
                        type: integer
                        example: 0
      tags:
        - Клиент
    parameters:
      -
        in: path
        name: contact_contactId
        description: 'ID клиента'
        example: '1'
        required: true
        schema:
          type: integer
      -
        in: path
        name: passContact_pass_contactId
        description: 'ID абонемента клиента'
        example: '1'
        required: true
        schema:
          type: integer
  '/api/external/v2/contacts/{contact_contactId}/listings':
    get:
      summary: 'Получить список записей клиента'
      operationId: ''
      description: 'Метод предоставляет данные о всех записях на занятия конкретного клиента. Дополнительно метод производит поиск по id занятия, чтобы проверить запись клиента на конкретное занятие'
      parameters:
        -
          in: query
          name: page
          description: Страница
          example: '1'
          required: true
          schema:
            type: integer
            description: Страница
            example: '1'
            nullable: false
        -
          in: query
          name: event_id
          description: 'Id занаятия.'
          example: '12345'
          required: false
          schema:
            type: string
            description: 'Id занаятия.'
            example: '12345'
            nullable: true
        -
          in: query
          name: missed
          description: Пропуск.
          example: true
          required: false
          schema:
            type: string
            description: Пропуск.
            example: true
            nullable: true
        -
          in: header
          name: X-Requested-With
          description: ''
          example: XMLHttpRequest
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      listing_id: 55
                      event_id: 163308
                      contact_id: 15
                      source: ''
                      missed_pass_contact_id: 0
                      is_missed: false
                    -
                      listing_id: 55
                      event_id: 163308
                      contact_id: 15
                      source: ''
                      missed_pass_contact_id: 0
                      is_missed: false
                  meta:
                    pagination:
                      total: 2
                      count: 2
                      per_page: 10
                      current_page: 1
                      total_pages: 1
                      links: {  }
                properties:
                  data:
                    type: array
                    example:
                      -
                        listing_id: 55
                        event_id: 163308
                        contact_id: 15
                        source: ''
                        missed_pass_contact_id: 0
                        is_missed: false
                      -
                        listing_id: 55
                        event_id: 163308
                        contact_id: 15
                        source: ''
                        missed_pass_contact_id: 0
                        is_missed: false
                    items:
                      type: object
                      properties:
                        listing_id:
                          type: integer
                          example: 55
                        event_id:
                          type: integer
                          example: 163308
                        contact_id:
                          type: integer
                          example: 15
                        source:
                          type: string
                          example: ''
                        missed_pass_contact_id:
                          type: integer
                          example: 0
                        is_missed:
                          type: boolean
                          example: false
                    required:
                      - listing_id
                      - event_id
                      - contact_id
                  meta:
                    type: object
                    properties:
                      pagination:
                        type: object
                        properties:
                          total:
                            type: integer
                            example: 2
                          count:
                            type: integer
                            example: 2
                          per_page:
                            type: integer
                            example: 10
                          current_page:
                            type: integer
                            example: 1
                          total_pages:
                            type: integer
                            example: 1
                          links:
                            type: object
                            properties: {  }
      tags:
        - Клиент
    post:
      summary: 'Записать клиента на занятие'
      operationId: ''
      description: 'Метод позволяет записать конкретного клиента на конкретное занятие. Не позволит записать клиента в лист ожидания. Для этого используется отдельные метод: «Добавить в лист ожидания»'
      parameters:
        -
          in: header
          name: X-Requested-With
          description: ''
          example: XMLHttpRequest
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  listing_id: 55
                  event_id: 163308
                  contact_id: 15
                  source: ''
                  missed_pass_contact_id: 0
                  is_missed: false
                properties:
                  listing_id:
                    type: integer
                    example: 55
                    description: 'ID записи'
                    enum: []
                  event_id:
                    type: integer
                    example: 163308
                    description: 'ID занятия'
                    enum: []
                  contact_id:
                    type: integer
                    example: 15
                    description: 'ID клиента'
                    enum: []
                  source:
                    type: string
                    example: ''
                    description: 'Источник записи'
                    enum: []
                  missed_pass_contact_id:
                    type: integer
                    example: 0
                    description: 'ID абонемента, по которому было списание за посещение'
                    enum: []
                  is_missed:
                    type: boolean
                    example: false
                    description: 'Поставлен ли записи пропуск'
                    enum: []
                required:
                  - listing_id
                  - event_id
                  - contact_id
      tags:
        - Клиент
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                event_id:
                  type: string
                  description: 'Id занаятия. The <code>eventId</code> of an existing record in the event table.'
                  example: '12345'
                  nullable: false
              required:
                - event_id
    parameters:
      -
        in: path
        name: contact_contactId
        description: 'ID клиента'
        example: '1'
        required: true
        schema:
          type: integer
  '/api/external/v2/contacts/{contact_contactId}/listings/{listingContact_listingId}':
    delete:
      summary: 'Отменить запись клиента на занятие'
      operationId: ''
      description: 'Метод позволяет отменить одну запись конкретного клиента с конкретного занятия'
      parameters:
        -
          in: header
          name: X-Requested-With
          description: ''
          example: XMLHttpRequest
          schema:
            type: string
      responses: {  }
      tags:
        - Клиент
    parameters:
      -
        in: path
        name: contact_contactId
        description: 'ID клиента'
        example: '1'
        required: true
        schema:
          type: integer
      -
        in: path
        name: listingContact_listingId
        description: 'ID записи'
        example: '1'
        required: true
        schema:
          type: integer
  '/api/external/v2/contacts/{contact_contactId}/admissions':
    get:
      summary: 'Получить список посещений клиента'
      operationId: ''
      description: 'Метод предоставляет список всех посещений конкретного клиента. По дополнительному параметру eventId,метод предоставит данные о посещении на конкретном занятии'
      parameters:
        -
          in: query
          name: page
          description: Страница
          example: '1'
          required: true
          schema:
            type: integer
            description: Страница
            example: '1'
            nullable: false
        -
          in: query
          name: event_id
          description: 'Id занаятия.'
          example: '12345'
          required: false
          schema:
            type: string
            description: 'Id занаятия.'
            example: '12345'
            nullable: true
        -
          in: header
          name: X-Requested-With
          description: ''
          example: XMLHttpRequest
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      admission_id: 2
                      event_id: 18
                      contact_id: 4
                      is_debt: false
                      pass_contact_id: 2
                      created_at: '2023-10-31T04:21:53.000000Z'
                    -
                      admission_id: 2
                      event_id: 18
                      contact_id: 4
                      is_debt: false
                      pass_contact_id: 2
                      created_at: '2023-10-31T04:21:53.000000Z'
                  meta:
                    pagination:
                      total: 2
                      count: 2
                      per_page: 10
                      current_page: 1
                      total_pages: 1
                      links: {  }
                properties:
                  data:
                    type: array
                    example:
                      -
                        admission_id: 2
                        event_id: 18
                        contact_id: 4
                        is_debt: false
                        pass_contact_id: 2
                        created_at: '2023-10-31T04:21:53.000000Z'
                      -
                        admission_id: 2
                        event_id: 18
                        contact_id: 4
                        is_debt: false
                        pass_contact_id: 2
                        created_at: '2023-10-31T04:21:53.000000Z'
                    items:
                      type: object
                      properties:
                        admission_id:
                          type: integer
                          example: 2
                        event_id:
                          type: integer
                          example: 18
                        contact_id:
                          type: integer
                          example: 4
                        is_debt:
                          type: boolean
                          example: false
                        pass_contact_id:
                          type: integer
                          example: 2
                        created_at:
                          type: string
                          example: '2023-10-31T04:21:53.000000Z'
                    required:
                      - admission_id
                      - event_id
                      - contact_id
                      - created_at
                  meta:
                    type: object
                    properties:
                      pagination:
                        type: object
                        properties:
                          total:
                            type: integer
                            example: 2
                          count:
                            type: integer
                            example: 2
                          per_page:
                            type: integer
                            example: 10
                          current_page:
                            type: integer
                            example: 1
                          total_pages:
                            type: integer
                            example: 1
                          links:
                            type: object
                            properties: {  }
      tags:
        - Клиент
    post:
      summary: 'Отметить посещение клиента'
      operationId: ''
      description: 'Метод позволит отметить конкретного клиента на конкретном занятии'
      parameters:
        -
          in: header
          name: X-Requested-With
          description: ''
          example: XMLHttpRequest
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  admission_id: 2
                  event_id: 18
                  contact_id: 4
                  is_debt: false
                  pass_contact_id: 2
                  created_at: '2023-10-31T04:21:53.000000Z'
                properties:
                  admission_id:
                    type: integer
                    example: 2
                    description: 'ID посещения'
                    enum: []
                  event_id:
                    type: integer
                    example: 18
                    description: 'ID занятия'
                    enum: []
                  contact_id:
                    type: integer
                    example: 4
                    description: 'ID клиента'
                    enum: []
                  is_debt:
                    type: boolean
                    example: false
                    description: 'Было ли посещение в долг'
                    enum: []
                  pass_contact_id:
                    type: integer
                    example: 2
                    description: 'ID абонемента, по которому прошло посещение'
                    enum: []
                  created_at:
                    type: string
                    example: '2023-10-31T04:21:53.000000Z'
                    description: 'Дата и время отмечания на занятии'
                    enum: []
                required:
                  - admission_id
                  - event_id
                  - contact_id
                  - created_at
      tags:
        - Клиент
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                event_id:
                  type: string
                  description: 'Id занаятия. The <code>eventId</code> of an existing record in the event table.'
                  example: '12345'
                  nullable: false
                pass_contact_id:
                  type: string
                  description: 'Id абонемента клиента, если не указать и у клиента нет абонемента - посещение в долг. The <code>pass_contactId</code> of an existing record in the pass_contact table.'
                  example: '12345'
                  nullable: true
              required:
                - event_id
    parameters:
      -
        in: path
        name: contact_contactId
        description: 'ID клиента'
        example: '1'
        required: true
        schema:
          type: integer
  '/api/external/v2/contacts/{contact_contactId}/admissions/{admissionContact_admissionId}':
    delete:
      summary: 'Отменить посещение клиента'
      operationId: ''
      description: 'Метод позволяет отменить посещение конкретного клиента'
      parameters:
        -
          in: header
          name: X-Requested-With
          description: ''
          example: XMLHttpRequest
          schema:
            type: string
      responses: {  }
      tags:
        - Клиент
    parameters:
      -
        in: path
        name: contact_contactId
        description: 'ID клиента'
        example: '1'
        required: true
        schema:
          type: integer
      -
        in: path
        name: admissionContact_admissionId
        description: 'ID посещения'
        example: '1'
        required: true
        schema:
          type: integer
  '/api/external/v2/contacts/{contact_contactId}/queue':
    get:
      summary: 'Получить список записей клиента из листа ожидания'
      operationId: ''
      description: 'Метод предоставляет все записи из листа ожидания конкретного клиента. Условие: на аккаунте включен лист ожидания'
      parameters:
        -
          in: query
          name: page
          description: Страница
          example: '1'
          required: true
          schema:
            type: integer
            description: Страница
            example: '1'
            nullable: false
        -
          in: header
          name: X-Requested-With
          description: ''
          example: XMLHttpRequest
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      queue_id: 5
                      event_id: 23
                      contact_id: 4
                    -
                      queue_id: 5
                      event_id: 23
                      contact_id: 4
                  meta:
                    pagination:
                      total: 2
                      count: 2
                      per_page: 10
                      current_page: 1
                      total_pages: 1
                      links: {  }
                properties:
                  data:
                    type: array
                    example:
                      -
                        queue_id: 5
                        event_id: 23
                        contact_id: 4
                      -
                        queue_id: 5
                        event_id: 23
                        contact_id: 4
                    items:
                      type: object
                      properties:
                        queue_id:
                          type: integer
                          example: 5
                        event_id:
                          type: integer
                          example: 23
                        contact_id:
                          type: integer
                          example: 4
                    required:
                      - queue_id
                      - event_id
                      - contact_id
                  meta:
                    type: object
                    properties:
                      pagination:
                        type: object
                        properties:
                          total:
                            type: integer
                            example: 2
                          count:
                            type: integer
                            example: 2
                          per_page:
                            type: integer
                            example: 10
                          current_page:
                            type: integer
                            example: 1
                          total_pages:
                            type: integer
                            example: 1
                          links:
                            type: object
                            properties: {  }
      tags:
        - Клиент
    post:
      summary: 'Добавить клиента в лист ожидания'
      operationId: ''
      description: 'Метод позволяет добавить конкретного клиента в лист ожидания на занятие. Условие: на аккаунте включен лист ожидания'
      parameters:
        -
          in: header
          name: X-Requested-With
          description: ''
          example: XMLHttpRequest
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  queue_id: 5
                  event_id: 23
                  contact_id: 4
                properties:
                  queue_id:
                    type: integer
                    example: 5
                    description: 'ID записи в листе ожидания'
                    enum: []
                  event_id:
                    type: integer
                    example: 23
                    description: 'ID занятия'
                    enum: []
                  contact_id:
                    type: integer
                    example: 4
                    description: 'ID клиента'
                    enum: []
                required:
                  - queue_id
                  - event_id
                  - contact_id
      tags:
        - Клиент
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                event_id:
                  type: string
                  description: 'Id занаятия. The <code>eventId</code> of an existing record in the event table.'
                  example: '12345'
                  nullable: false
              required:
                - event_id
    parameters:
      -
        in: path
        name: contact_contactId
        description: 'ID клиента'
        example: '1'
        required: true
        schema:
          type: integer
  '/api/external/v2/contacts/{contact_contactId}/queue/{queueContact_queueId}':
    delete:
      summary: 'Отменить запись клиента в листе ожидания'
      operationId: ''
      description: 'Метод позволяет отменить запись клиента в листе ожидания. Условие: на аккаунте включен лист ожидания'
      parameters:
        -
          in: header
          name: X-Requested-With
          description: ''
          example: XMLHttpRequest
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  queue_id: 5
                  event_id: 23
                  contact_id: 4
                properties:
                  queue_id:
                    type: integer
                    example: 5
                    description: 'ID записи в листе ожидания'
                    enum: []
                  event_id:
                    type: integer
                    example: 23
                    description: 'ID занятия'
                    enum: []
                  contact_id:
                    type: integer
                    example: 4
                    description: 'ID клиента'
                    enum: []
                required:
                  - queue_id
                  - event_id
                  - contact_id
      tags:
        - Клиент
    parameters:
      -
        in: path
        name: contact_contactId
        description: 'ID клиента'
        example: '1'
        required: true
        schema:
          type: integer
      -
        in: path
        name: queueContact_queueId
        description: 'ID листа ожидания'
        example: '1'
        required: true
        schema:
          type: integer
  '/api/external/v2/contacts/{contact_contactId}/payments':
    get:
      summary: 'Получить список платежей клиента'
      operationId: ''
      description: 'Метод предоставляет все неудаленные платежи по конкретному клиенту'
      parameters:
        -
          in: query
          name: page
          description: Страница
          example: '1'
          required: true
          schema:
            type: integer
            description: Страница
            example: '1'
            nullable: false
        -
          in: header
          name: X-Requested-With
          description: ''
          example: XMLHttpRequest
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      payment_id: 1
                      from_id: 4
                      to_id: -1
                      user_id: 1
                      direction: income
                      reason: 'Покупка абонемента &quot;Абонемент на 10 занятий&quot; #1. '
                      date: 09.10.2023
                      amount: 2000
                      full_price: 2000
                      balance_paid: 0
                      total_discount_amount: 0
                      discount_bonus_amount: null
                      discount_amount: 0
                      payment_type: pass
                      init_price: 0
                      discounts:
                        discounts:
                          -
                            name: 'Another one'
                            original_name: 'Another one'
                            type: regular
                            amount: 0
                            amount_fixed: 0
                            amount_percent: 15
                            amount_type: null
                            code_word: ''
                            contact_id: 0
                            country_id: 1
                            discount_id: 3
                            discounts_left: 0
                            discountslot_id: null
                            dynamic_calculator: null
                            dynamic_type: null
                            limit_per_contact: null
                            limited: 0
                            master_id: 0
                            use_for: any
                            used: 0
                            valid_til: null
                            pivot:
                              amount: 2000
                              amountPaid: 2000
                              contactId: null
                              discountAlgorithm: sum
                              discountAmount: 0
                              discountId: 3
                              discount_amountFixed: 0
                              discount_amountPercent: 15
                              discount_codeWord: null
                              discount_name: 'Another one'
                              discount_useFor: any
                              order: null
                              paymentId: 1
                    -
                      payment_id: 1
                      from_id: 4
                      to_id: -1
                      user_id: 1
                      direction: income
                      reason: 'Покупка абонемента &quot;Абонемент на 10 занятий&quot; #1. '
                      date: 09.10.2023
                      amount: 2000
                      full_price: 2000
                      balance_paid: 0
                      total_discount_amount: 0
                      discount_bonus_amount: null
                      discount_amount: 0
                      payment_type: pass
                      init_price: 0
                      discounts:
                        discounts:
                          -
                            name: 'Another one'
                            original_name: 'Another one'
                            type: regular
                            amount: 0
                            amount_fixed: 0
                            amount_percent: 15
                            amount_type: null
                            code_word: ''
                            contact_id: 0
                            country_id: 1
                            discount_id: 3
                            discounts_left: 0
                            discountslot_id: null
                            dynamic_calculator: null
                            dynamic_type: null
                            limit_per_contact: null
                            limited: 0
                            master_id: 0
                            use_for: any
                            used: 0
                            valid_til: null
                            pivot:
                              amount: 2000
                              amountPaid: 2000
                              contactId: null
                              discountAlgorithm: sum
                              discountAmount: 0
                              discountId: 3
                              discount_amountFixed: 0
                              discount_amountPercent: 15
                              discount_codeWord: null
                              discount_name: 'Another one'
                              discount_useFor: any
                              order: null
                              paymentId: 1
                  meta:
                    pagination:
                      total: 2
                      count: 2
                      per_page: 10
                      current_page: 1
                      total_pages: 1
                      links: {  }
                properties:
                  data:
                    type: array
                    example:
                      -
                        payment_id: 1
                        from_id: 4
                        to_id: -1
                        user_id: 1
                        direction: income
                        reason: 'Покупка абонемента &quot;Абонемент на 10 занятий&quot; #1. '
                        date: 09.10.2023
                        amount: 2000
                        full_price: 2000
                        balance_paid: 0
                        total_discount_amount: 0
                        discount_bonus_amount: null
                        discount_amount: 0
                        payment_type: pass
                        init_price: 0
                        discounts:
                          discounts:
                            -
                              name: 'Another one'
                              original_name: 'Another one'
                              type: regular
                              amount: 0
                              amount_fixed: 0
                              amount_percent: 15
                              amount_type: null
                              code_word: ''
                              contact_id: 0
                              country_id: 1
                              discount_id: 3
                              discounts_left: 0
                              discountslot_id: null
                              dynamic_calculator: null
                              dynamic_type: null
                              limit_per_contact: null
                              limited: 0
                              master_id: 0
                              use_for: any
                              used: 0
                              valid_til: null
                              pivot:
                                amount: 2000
                                amountPaid: 2000
                                contactId: null
                                discountAlgorithm: sum
                                discountAmount: 0
                                discountId: 3
                                discount_amountFixed: 0
                                discount_amountPercent: 15
                                discount_codeWord: null
                                discount_name: 'Another one'
                                discount_useFor: any
                                order: null
                                paymentId: 1
                      -
                        payment_id: 1
                        from_id: 4
                        to_id: -1
                        user_id: 1
                        direction: income
                        reason: 'Покупка абонемента &quot;Абонемент на 10 занятий&quot; #1. '
                        date: 09.10.2023
                        amount: 2000
                        full_price: 2000
                        balance_paid: 0
                        total_discount_amount: 0
                        discount_bonus_amount: null
                        discount_amount: 0
                        payment_type: pass
                        init_price: 0
                        discounts:
                          discounts:
                            -
                              name: 'Another one'
                              original_name: 'Another one'
                              type: regular
                              amount: 0
                              amount_fixed: 0
                              amount_percent: 15
                              amount_type: null
                              code_word: ''
                              contact_id: 0
                              country_id: 1
                              discount_id: 3
                              discounts_left: 0
                              discountslot_id: null
                              dynamic_calculator: null
                              dynamic_type: null
                              limit_per_contact: null
                              limited: 0
                              master_id: 0
                              use_for: any
                              used: 0
                              valid_til: null
                              pivot:
                                amount: 2000
                                amountPaid: 2000
                                contactId: null
                                discountAlgorithm: sum
                                discountAmount: 0
                                discountId: 3
                                discount_amountFixed: 0
                                discount_amountPercent: 15
                                discount_codeWord: null
                                discount_name: 'Another one'
                                discount_useFor: any
                                order: null
                                paymentId: 1
                    items:
                      type: object
                      properties:
                        payment_id:
                          type: integer
                          example: 1
                        from_id:
                          type: integer
                          example: 4
                        to_id:
                          type: integer
                          example: -1
                        user_id:
                          type: integer
                          example: 1
                        direction:
                          type: string
                          example: income
                        reason:
                          type: string
                          example: 'Покупка абонемента &quot;Абонемент на 10 занятий&quot; #1. '
                        date:
                          type: string
                          example: 09.10.2023
                        amount:
                          type: integer
                          example: 2000
                        full_price:
                          type: integer
                          example: 2000
                        balance_paid:
                          type: integer
                          example: 0
                        total_discount_amount:
                          type: integer
                          example: 0
                        discount_bonus_amount:
                          type: string
                          example: null
                        discount_amount:
                          type: integer
                          example: 0
                        payment_type:
                          type: string
                          example: pass
                        init_price:
                          type: integer
                          example: 0
                        discounts:
                          type: object
                          properties:
                            discounts:
                              type: array
                              example:
                                -
                                  name: 'Another one'
                                  original_name: 'Another one'
                                  type: regular
                                  amount: 0
                                  amount_fixed: 0
                                  amount_percent: 15
                                  amount_type: null
                                  code_word: ''
                                  contact_id: 0
                                  country_id: 1
                                  discount_id: 3
                                  discounts_left: 0
                                  discountslot_id: null
                                  dynamic_calculator: null
                                  dynamic_type: null
                                  limit_per_contact: null
                                  limited: 0
                                  master_id: 0
                                  use_for: any
                                  used: 0
                                  valid_til: null
                                  pivot:
                                    amount: 2000
                                    amountPaid: 2000
                                    contactId: null
                                    discountAlgorithm: sum
                                    discountAmount: 0
                                    discountId: 3
                                    discount_amountFixed: 0
                                    discount_amountPercent: 15
                                    discount_codeWord: null
                                    discount_name: 'Another one'
                                    discount_useFor: any
                                    order: null
                                    paymentId: 1
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    example: 'Another one'
                                  original_name:
                                    type: string
                                    example: 'Another one'
                                  type:
                                    type: string
                                    example: regular
                                  amount:
                                    type: integer
                                    example: 0
                                  amount_fixed:
                                    type: integer
                                    example: 0
                                  amount_percent:
                                    type: integer
                                    example: 15
                                  amount_type:
                                    type: string
                                    example: null
                                  code_word:
                                    type: string
                                    example: ''
                                  contact_id:
                                    type: integer
                                    example: 0
                                  country_id:
                                    type: integer
                                    example: 1
                                  discount_id:
                                    type: integer
                                    example: 3
                                  discounts_left:
                                    type: integer
                                    example: 0
                                  discountslot_id:
                                    type: string
                                    example: null
                                  dynamic_calculator:
                                    type: string
                                    example: null
                                  dynamic_type:
                                    type: string
                                    example: null
                                  limit_per_contact:
                                    type: string
                                    example: null
                                  limited:
                                    type: integer
                                    example: 0
                                  master_id:
                                    type: integer
                                    example: 0
                                  use_for:
                                    type: string
                                    example: any
                                  used:
                                    type: integer
                                    example: 0
                                  valid_til:
                                    type: string
                                    example: null
                                  pivot:
                                    type: object
                                    properties:
                                      amount: { type: integer, example: 2000 }
                                      amountPaid: { type: integer, example: 2000 }
                                      contactId: { type: string, example: null }
                                      discountAlgorithm: { type: string, example: sum }
                                      discountAmount: { type: integer, example: 0 }
                                      discountId: { type: integer, example: 3 }
                                      discount_amountFixed: { type: integer, example: 0 }
                                      discount_amountPercent: { type: integer, example: 15 }
                                      discount_codeWord: { type: string, example: null }
                                      discount_name: { type: string, example: 'Another one' }
                                      discount_useFor: { type: string, example: any }
                                      order: { type: string, example: null }
                                      paymentId: { type: integer, example: 1 }
                                    required:
                                      - amount
                              required:
                                - amount
                    required:
                      - payment_id
                      - from_id
                      - to_id
                      - direction
                      - amount
                      - payment_type
                  meta:
                    type: object
                    properties:
                      pagination:
                        type: object
                        properties:
                          total:
                            type: integer
                            example: 2
                          count:
                            type: integer
                            example: 2
                          per_page:
                            type: integer
                            example: 10
                          current_page:
                            type: integer
                            example: 1
                          total_pages:
                            type: integer
                            example: 1
                          links:
                            type: object
                            properties: {  }
      tags:
        - Клиент
    parameters:
      -
        in: path
        name: contact_contactId
        description: 'ID клиента'
        example: '1'
        required: true
        schema:
          type: integer
  /api/external/v2/cash-register:
    get:
      summary: 'Получить список способов оплаты'
      operationId: ''
      description: 'Метод предоставляет список всех созданных типов способов оплаты'
      parameters:
        -
          in: query
          name: page
          description: Страница
          example: '1'
          required: true
          schema:
            type: integer
            description: Страница
            example: '1'
            nullable: false
        -
          in: header
          name: X-Requested-With
          description: ''
          example: XMLHttpRequest
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      cashregister_id: 1
                      type: cash
                      name: Наличный
                      is_system: 1
                    -
                      cashregister_id: 1
                      type: cash
                      name: Наличный
                      is_system: 1
                  meta:
                    pagination:
                      total: 2
                      count: 2
                      per_page: 10
                      current_page: 1
                      total_pages: 1
                      links: {  }
                properties:
                  data:
                    type: array
                    example:
                      -
                        cashregister_id: 1
                        type: cash
                        name: Наличный
                        is_system: 1
                      -
                        cashregister_id: 1
                        type: cash
                        name: Наличный
                        is_system: 1
                    items:
                      type: object
                      properties:
                        cashregister_id:
                          type: integer
                          example: 1
                        type:
                          type: string
                          example: cash
                        name:
                          type: string
                          example: Наличный
                        is_system:
                          type: integer
                          example: 1
                    required:
                      - cashregister_id
                      - type
                      - name
                      - is_system
                  meta:
                    type: object
                    properties:
                      pagination:
                        type: object
                        properties:
                          total:
                            type: integer
                            example: 2
                          count:
                            type: integer
                            example: 2
                          per_page:
                            type: integer
                            example: 10
                          current_page:
                            type: integer
                            example: 1
                          total_pages:
                            type: integer
                            example: 1
                          links:
                            type: object
                            properties: {  }
      tags:
        - Платежи
  /api/external/v2/inquiry-forms:
    get:
      summary: 'Получить список форм захвата'
      operationId: ''
      description: 'Метод предоставляет список всех созданных форм захвата'
      parameters:
        -
          in: query
          name: page
          description: Страница
          example: '1'
          required: true
          schema:
            type: integer
            description: Страница
            example: '1'
            nullable: false
        -
          in: header
          name: X-Requested-With
          description: ''
          example: XMLHttpRequest
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      cform_id: 1
                      name: еуые
                    -
                      cform_id: 1
                      name: еуые
                  meta:
                    pagination:
                      total: 2
                      count: 2
                      per_page: 10
                      current_page: 1
                      total_pages: 1
                      links: {  }
                properties:
                  data:
                    type: array
                    example:
                      -
                        cform_id: 1
                        name: еуые
                      -
                        cform_id: 1
                        name: еуые
                    items:
                      type: object
                      properties:
                        cform_id:
                          type: integer
                          example: 1
                        name:
                          type: string
                          example: еуые
                    required:
                      - cform_id
                      - name
                  meta:
                    type: object
                    properties:
                      pagination:
                        type: object
                        properties:
                          total:
                            type: integer
                            example: 2
                          count:
                            type: integer
                            example: 2
                          per_page:
                            type: integer
                            example: 10
                          current_page:
                            type: integer
                            example: 1
                          total_pages:
                            type: integer
                            example: 1
                          links:
                            type: object
                            properties: {  }
      tags:
        - 'Формы захвата'
tags:
  -
    name: Абонементы
    description: ''
  -
    name: Группы
    description: ''
  -
    name: Занятия
    description: ''
  -
    name: Заявки
    description: ''
  -
    name: Источники
    description: ''
  -
    name: Клиент
    description: ''
  -
    name: Платежи
    description: ''
  -
    name: 'Формы захвата'
    description: ''
components:
  securitySchemes:
    default:
      type: http
      scheme: bearer
      description: "##Запрос авторизации\n###Если используется виджет\n```\nКонфигурация кнопки\n<div id=\"listok-oauth-widget\"\n     data-oauth-url=\"https://yourdomain.listokcrm.ru/oauth/authorize\"\n     data-client-id=\"9e3db8c5-02f5-4fa8-a8cf-d19fa69f1ec5\"\n     data-redirect-uri=\"https://yourapp.com\"\n     data-button-text=\"Авторизоваться через ListOk CRM\n     data-button-classes=\"btn custom-btn-class\">\n</div>\n\n<script src=\"https://yourdomain.listokcrm.ru/assets/public/js/listok-oauth-widget.js\"></script>\n\n```\n###Если используется переход по ссылке\n\n```\nhttps://yourdomain.listokcrm.ru/oauth/authorize?client_id=9e3db2d2-4054-43bb-bdd4-554d55da27a0&redirect_uri=http%3A%2F%2Fsomesite.test&response_type=code&scope&state=qwerqwerqwerqwerqwerqwerqwerqwerqwerqwer\n\n```\n\n\n##Обмен кода на токен\n```\ncurl --request POST \\\n    \"https://yourdomain.listokcrm.ru/oauth/token\" \\\n    --header \"Content-Type: application/json\" \\\n    --header \"Accept: application/json\" \\\n    --header \"X-Requested-With: XMLHttpRequest\" \\\n    --data \"{\n    \\\"grant_type\\\": \\\"authorization_code\\\",\n    \\\"client_id\\\": \\\"{your_app_client_id}\\\",\n    \\\"client_secret\\\": \\\"{your_app_client_secret}\\\",\n    \\\"redirect_uri\\\": \\\"{your_app_redirect_uri}\\\",\n    \\\"code\\\": \\\"{code}\\\"\n}\"\n\n```\n\n##Обновление токена\n```\ncurl --request POST \\\n    \"https://yourdomain.listokcrm.ru/oauth/token\" \\\n    --header \"Content-Type: application/json\" \\\n    --header \"Accept: application/json\" \\\n    --header \"X-Requested-With: XMLHttpRequest\" \\\n    --data \"{\n    \\\"grant_type\\\": \\\"refresh_token\\\",\n    \\\"client_id\\\": \\\"{your_app_client_id}\\\",\n    \\\"client_secret\\\": \\\"{your_app_client_secret}\\\",\n    \\\"refresh_token\\\": \\\"{your_refresh_token}\\\",\n    \\\"scope\\\": \"\"\n}\"\n```\n\n"
security:
  -
    default: []
