-
Notifications
You must be signed in to change notification settings - Fork 0
Home
swagger: "2.0" info: version: '0.1' title: "croinc customer api"
description: | Список API для реализации клинетской часть CROINC. Формат и количество отдаваемых данных необходимо обсуждать с front-end. Например, отдавая список услуг, нужно ли сразу отдавать все опции для каждой услуги, или для выбора опций будет отдельный запрос? Отдавая дерево категорий для салона, нужно ли включать в этот список услуги для каждой категории, или за услугами будет отдельный запрос? Экономим трафик, увеличиваем latency.
tags:
- name: Service description: API для выбора услуги, салона и всего такого.
- name: Employee description: API для выбора мастера, свободного времени и т.п.
- name: Finish
description: API для создания записи
paths:
/employees/findByService:
get:
summary: "список Мастеров (
Employee
), умеющих какую-то Услуги и работающих в какому-то Салоне" parameters:- name: 'salon_id' in: query description: "ID of the salon" required: true type: integer
- in: query
name: service_id
description: 'ID of the Service'
required: True
type: integer
responses:
200:
description: "ok"
tags:
- Employee
/employee/{id}/availableTimes: get: summary: список свободных диапазонов времён для какого-то Мастера в определённую дату для определённой Услуги description: | список свободных диапазонов времён для какого-то Мастера в определённую дату для определённой Услуги. Нужно, если выбран приоритет по Мастеру, "хочу подстричься только у Маргариты, во сколько она может?"
parameters:
- name: id
in: path
description: 'ID of employee'
type: integer
required: true
- name: service_id
in: query
description: 'ID of the service'
type: integer
required: True
- name: date
in: query
description: необходимая дата, в формате YYYY-MM-DD.
type: string
format: date
required: True
responses:
200:
description: ok
tags:
- Employee
/employees/availableAtTime: get: summary: "список свободных Мастеров какого-то Салона, которые умеют какую-то услугу и которые свободны в какой-то момент времени." description: | список свободных Мастеров какого-то Салона, которые умеют какую-то услугу и которые свободны до или после какого-то времени. Нужно для второй/третей услуги в заказе. "С 12 до 13 я подстригаюсь, а ещё хочу побриться, кто свободен из мастеров до или после стрижки?"
Если в заказе сформированы две услуги в интервале 14:00-16:00, и клиент
добавляет услугу длительностью в 30 минут, то нужно вызать этот метод два раза:
на время 16:00 и на время 13:30.
**TODO**: Можно передать параметр `XXX`, который позволит искать свободных
мастеров не ровно в какое-то время, а с небольшим зазором. В примере выше,
мастера будут искаться в диапазоне 13:00-13:30 (xxx=before)
или в диапазоне 16:00-16:30 (xxx=after). Подлежит обсуждению.
parameters:
- name: salon_id
in: query
description: "ID of the salon"
required: true
type: integer
- name: service_id
in: query
description: 'ID of the service'
type: integer
- name: time
in: query
description: 'Время, когда мастера должны быть свободны'
type: string
responses:
200:
description: 'ok'
tags:
- Employee
/salon: get: summary: Список всех салонов responses: 200: description: Список салонов. Формт списка необходми обсудить с фронтом. tags: - Service /salon/{id}/categories: get: summary: Список всех залов/категорий салона. parameters: - name: id in: path description: salon_id type: integer required: True responses: 200: description: Список залов данного салона. Формт списка необходми обсудить с фронтом. tags: - Service
/salon/{id}/popularServices: get: summary: список популярных Услуг для Салона parameters: - name: id in: path description: salon_id type: integer required: True responses: 200: description: Список услуг популярных в данном салоне. Формт списка необходми обсудить с фронтом. tags: - Service
/service/findByCategory: get: summary: Список услуг, которые предоставляются в какой-то категорри parameters: - name: category_id in: query description: ID категории required: True type: integer responses: 200: description: Список услуг в каком-то зале. Формт списка необходми обсудить с фронтом. tags: - Service
/service/findByCustomerIp: get: summary: список услуг, которые были заказаны в последнее время с IP адреса клиента responses: 200: description: Список услуг в каком-то зале. Формт списка необходми обсудить с фронтом. tags: - Service
/service/{id}/related: get: summary: список услг, которые берут чаще всего одновременно с заказываемой parameters: - name: id in: path description: ID категории required: True type: integer - name: count in: query required: False type: integer description: Количество related услуг responses: 200: description: список услуг, которые берут чаще всего с этой tags: - Service
/done: post: summary: Создание записи со всеми выбранными услугами, мастерами и опциями description: | сюда надо передать все выбранные услуги, опции, мастеров, времена, контактные данные, и т.п. Формат передаваемых данных зависит от количества собранной информации на фронте.
responses:
201:
description: запись была создана
tags:
- Finish