2021-11-03 10:38:40 +03:00
|
|
|
openapi: 3.0.3
|
2021-11-03 09:40:09 +03:00
|
|
|
info:
|
2021-11-04 11:34:04 +03:00
|
|
|
title: Easy!Appointments API
|
|
|
|
version: 1.0.0
|
|
|
|
description: These are the OpenAPI specs that describe the REST API of Easy!Appointments.
|
|
|
|
termsOfService: https://easyappointments.org/terms-and-conditions
|
|
|
|
contact:
|
|
|
|
name: Easy!Appointments
|
|
|
|
url: https://easyappointments.org
|
|
|
|
email: info@easyappointments.org
|
|
|
|
license:
|
|
|
|
name: GPL-3.0
|
|
|
|
url: https://www.gnu.org/licenses/gpl-3.0.en.html
|
2021-11-03 09:40:09 +03:00
|
|
|
externalDocs:
|
2021-11-04 11:34:04 +03:00
|
|
|
description: Find out more about Easy!Appointments
|
|
|
|
url: https://easyappointments.org/docs.html
|
2021-11-03 09:40:09 +03:00
|
|
|
servers:
|
2021-11-04 11:34:04 +03:00
|
|
|
- url: https://demo.easyappointments.org/index.php/api/v1/
|
2021-11-03 09:40:09 +03:00
|
|
|
tags:
|
2021-11-04 11:34:04 +03:00
|
|
|
- name: admins
|
|
|
|
- name: providers
|
|
|
|
- name: secretaries
|
|
|
|
- name: customers
|
|
|
|
- name: availabilities
|
|
|
|
- name: unavailabilities
|
|
|
|
- name: appointments
|
|
|
|
- name: services
|
|
|
|
- name: categories
|
|
|
|
- name: settings
|
2021-11-03 09:40:09 +03:00
|
|
|
paths:
|
2021-11-04 11:34:04 +03:00
|
|
|
/availabilities:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- availabilities
|
|
|
|
summary: Gets availability
|
|
|
|
parameters:
|
|
|
|
- name: providerId
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
- name: serviceId
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
- name: date
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/Availabilities'
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
/appointments:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- appointments
|
|
|
|
summary: Get all appointments
|
|
|
|
parameters:
|
|
|
|
- name: page
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
- name: length
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
- name: sort
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
- name: q
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
- name: aggregates
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/AppointmentCollection'
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
post:
|
|
|
|
tags:
|
|
|
|
- appointments
|
|
|
|
summary: Create an appointment
|
|
|
|
requestBody:
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/AppointmentPayload'
|
|
|
|
required: false
|
|
|
|
responses:
|
|
|
|
'201':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/AppointmentEntry'
|
|
|
|
x-codegen-request-body-name: body
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
/appointments/{appointmentId}:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- appointments
|
|
|
|
summary: Get an appointment
|
|
|
|
parameters:
|
|
|
|
- name: appointmentId
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/AppointmentEntry'
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
put:
|
|
|
|
tags:
|
|
|
|
- appointments
|
|
|
|
summary: Update an appointment
|
|
|
|
parameters:
|
|
|
|
- name: appointmentId
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
requestBody:
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/AppointmentPayload'
|
|
|
|
required: false
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/AppointmentEntry'
|
|
|
|
x-codegen-request-body-name: body
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
delete:
|
|
|
|
tags:
|
|
|
|
- appointments
|
|
|
|
summary: Delete an appointment
|
|
|
|
parameters:
|
|
|
|
- name: appointmentId
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
responses:
|
|
|
|
'204':
|
|
|
|
description: success
|
|
|
|
'404':
|
|
|
|
description: not found
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
/unavailabilities:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- unavailabilities
|
|
|
|
summary: Get all unavailabilities
|
|
|
|
parameters:
|
|
|
|
- name: page
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
- name: length
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
- name: sort
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
- name: q
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
post:
|
|
|
|
tags:
|
|
|
|
- unavailabilities
|
|
|
|
summary: Create an unavailability
|
|
|
|
requestBody:
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/UnavailabilityCreate'
|
|
|
|
required: false
|
|
|
|
responses:
|
|
|
|
'201':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/Unavailability'
|
|
|
|
x-codegen-request-body-name: body
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
/unavailabilities/{unavailabilityId}:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- unavailabilities
|
|
|
|
summary: Get an unavailability
|
|
|
|
parameters:
|
|
|
|
- name: unavailabilityId
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/Unavailability'
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
put:
|
|
|
|
tags:
|
|
|
|
- unavailabilities
|
|
|
|
summary: Update an unavailability
|
|
|
|
parameters:
|
|
|
|
- name: unavailabilityId
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
requestBody:
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/UnavailabilityUpdate'
|
|
|
|
required: false
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/Unavailability'
|
|
|
|
x-codegen-request-body-name: body
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
delete:
|
|
|
|
tags:
|
|
|
|
- unavailabilities
|
|
|
|
summary: Delete an unavailability
|
|
|
|
parameters:
|
|
|
|
- name: unavailabilityId
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
responses:
|
|
|
|
'204':
|
|
|
|
description: success
|
|
|
|
'404':
|
|
|
|
description: not found
|
|
|
|
content: {}
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
/customers:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- customers
|
|
|
|
summary: Get all customers
|
|
|
|
parameters:
|
|
|
|
- name: page
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
- name: length
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
- name: sort
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
- name: q
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
post:
|
|
|
|
tags:
|
|
|
|
- customers
|
|
|
|
summary: Create a customer
|
|
|
|
requestBody:
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/CustomerCreate'
|
|
|
|
required: false
|
|
|
|
responses:
|
|
|
|
'201':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/Customer'
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
x-codegen-request-body-name: body
|
|
|
|
/customers/{customerId}:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- customers
|
|
|
|
summary: Get a customer
|
|
|
|
parameters:
|
|
|
|
- name: customerId
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/Customer'
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
put:
|
|
|
|
tags:
|
|
|
|
- customers
|
|
|
|
summary: Update a customer
|
|
|
|
parameters:
|
|
|
|
- name: customerId
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
requestBody:
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/CustomerUpdate'
|
|
|
|
required: false
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/Customer'
|
|
|
|
x-codegen-request-body-name: body
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
delete:
|
|
|
|
tags:
|
|
|
|
- customers
|
|
|
|
summary: Delete a customer
|
|
|
|
parameters:
|
|
|
|
- name: customerId
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
responses:
|
|
|
|
'204':
|
|
|
|
description: success
|
|
|
|
'404':
|
|
|
|
description: not found
|
|
|
|
content: {}
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
/services:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- services
|
|
|
|
summary: Get all services
|
|
|
|
parameters:
|
|
|
|
- name: page
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
- name: length
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
- name: sort
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
- name: q
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
post:
|
|
|
|
tags:
|
|
|
|
- services
|
|
|
|
summary: Create a service
|
|
|
|
requestBody:
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/ServiceCreate'
|
|
|
|
required: false
|
|
|
|
responses:
|
|
|
|
'201':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/Service'
|
|
|
|
x-codegen-request-body-name: body
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
/services/{serviceId}:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- services
|
|
|
|
summary: Get a service
|
|
|
|
parameters:
|
|
|
|
- name: serviceId
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/Service'
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
put:
|
|
|
|
tags:
|
|
|
|
- services
|
|
|
|
summary: Update a service
|
|
|
|
parameters:
|
|
|
|
- name: serviceId
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
requestBody:
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/ServiceUpdate'
|
|
|
|
required: false
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/Service'
|
|
|
|
x-codegen-request-body-name: body
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
delete:
|
|
|
|
tags:
|
|
|
|
- services
|
|
|
|
summary: Delete a service
|
|
|
|
parameters:
|
|
|
|
- name: serviceId
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
responses:
|
|
|
|
'204':
|
|
|
|
description: success
|
|
|
|
'404':
|
|
|
|
description: not found
|
|
|
|
content: {}
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
/categories:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- categories
|
|
|
|
summary: Get all categories
|
|
|
|
parameters:
|
|
|
|
- name: page
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
- name: length
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
- name: sort
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
- name: q
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
post:
|
|
|
|
tags:
|
|
|
|
- categories
|
|
|
|
summary: Create a category
|
|
|
|
requestBody:
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/CategoryCreate'
|
|
|
|
required: false
|
|
|
|
responses:
|
|
|
|
'201':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/Category'
|
|
|
|
x-codegen-request-body-name: body
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
/categories/{categoryId}:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- categories
|
|
|
|
summary: Get a category
|
|
|
|
parameters:
|
|
|
|
- name: categoryId
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/Category'
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
put:
|
|
|
|
tags:
|
|
|
|
- categories
|
|
|
|
summary: Update a category
|
|
|
|
parameters:
|
|
|
|
- name: categoryId
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
requestBody:
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/CategoryUpdate'
|
|
|
|
required: false
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/Category'
|
|
|
|
x-codegen-request-body-name: body
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
delete:
|
|
|
|
tags:
|
|
|
|
- categories
|
|
|
|
summary: Delete a category
|
|
|
|
parameters:
|
|
|
|
- name: categoryId
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
responses:
|
|
|
|
'204':
|
|
|
|
description: success
|
|
|
|
'404':
|
|
|
|
description: not found
|
|
|
|
content: {}
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
/admins:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- admins
|
|
|
|
summary: Get all admins
|
|
|
|
parameters:
|
|
|
|
- name: page
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
- name: length
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
- name: sort
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
- name: q
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
- name: fields
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/AdminAll'
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
post:
|
|
|
|
tags:
|
|
|
|
- admins
|
|
|
|
summary: Create an admin
|
|
|
|
requestBody:
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/AdminCreate'
|
|
|
|
required: true
|
|
|
|
responses:
|
|
|
|
'201':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/Admin'
|
|
|
|
x-codegen-request-body-name: body
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
/admins/{adminId}:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- admins
|
|
|
|
summary: Get an admin
|
|
|
|
parameters:
|
|
|
|
- name: adminId
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/Admin'
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
put:
|
|
|
|
tags:
|
|
|
|
- admins
|
|
|
|
summary: Update an admin
|
|
|
|
parameters:
|
|
|
|
- name: adminId
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
requestBody:
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/AdminUpdate'
|
|
|
|
required: false
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/Admin'
|
|
|
|
x-codegen-request-body-name: body
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
delete:
|
|
|
|
tags:
|
|
|
|
- admins
|
|
|
|
summary: Delete an admin
|
|
|
|
parameters:
|
|
|
|
- name: adminId
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
responses:
|
|
|
|
'204':
|
|
|
|
description: success
|
|
|
|
'404':
|
|
|
|
description: Not Found
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
/providers:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- providers
|
|
|
|
summary: Get all providers
|
|
|
|
parameters:
|
|
|
|
- name: page
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
- name: length
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
- name: sort
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
- name: q
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
post:
|
|
|
|
tags:
|
|
|
|
- providers
|
|
|
|
summary: Create a provider
|
|
|
|
requestBody:
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/ProviderCreate'
|
|
|
|
required: false
|
|
|
|
responses:
|
|
|
|
'201':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/Provider'
|
|
|
|
x-codegen-request-body-name: body
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
/providers/{providerId}:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- providers
|
|
|
|
summary: Get a provider
|
|
|
|
parameters:
|
|
|
|
- name: providerId
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/Provider'
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
put:
|
|
|
|
tags:
|
|
|
|
- providers
|
|
|
|
summary: Update a provider
|
|
|
|
parameters:
|
|
|
|
- name: providerId
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
requestBody:
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/ProviderUpdate'
|
|
|
|
required: false
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/Provider'
|
|
|
|
x-codegen-request-body-name: body
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
delete:
|
|
|
|
tags:
|
|
|
|
- providers
|
|
|
|
summary: Delete a provider
|
|
|
|
parameters:
|
|
|
|
- name: providerId
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
responses:
|
|
|
|
'204':
|
|
|
|
description: success
|
|
|
|
'404':
|
|
|
|
description: not found
|
|
|
|
content: {}
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
/secretaries:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- secretaries
|
|
|
|
summary: Get all secretaries
|
|
|
|
parameters:
|
|
|
|
- name: page
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
- name: length
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
- name: sort
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
- name: q
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
post:
|
|
|
|
tags:
|
|
|
|
- secretaries
|
|
|
|
summary: Create a secretary
|
|
|
|
requestBody:
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/SecretaryCreate'
|
|
|
|
required: false
|
|
|
|
responses:
|
|
|
|
'201':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/Secretary'
|
|
|
|
x-codegen-request-body-name: body
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
/secretaries/{secretaryId}:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- secretaries
|
|
|
|
summary: Get a secretary
|
|
|
|
parameters:
|
|
|
|
- name: secretaryId
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/Secretary'
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
put:
|
|
|
|
tags:
|
|
|
|
- secretaries
|
|
|
|
summary: Update a secretary
|
|
|
|
parameters:
|
|
|
|
- name: secretaryId
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
requestBody:
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/SecretaryUpdate'
|
|
|
|
required: false
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/Secretary'
|
|
|
|
x-codegen-request-body-name: body
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
delete:
|
|
|
|
tags:
|
|
|
|
- secretaries
|
|
|
|
summary: Delete a secretary
|
|
|
|
parameters:
|
|
|
|
- name: secretaryId
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
responses:
|
|
|
|
'204':
|
|
|
|
description: success
|
|
|
|
'404':
|
|
|
|
description: not found
|
|
|
|
content: {}
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
/settings:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- settings
|
|
|
|
summary: Get all settings
|
|
|
|
parameters:
|
|
|
|
- name: page
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
- name: length
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
- name: sort
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
- name: q
|
|
|
|
in: query
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
/settings/{settingName}:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- settings
|
|
|
|
summary: Get a setting
|
|
|
|
parameters:
|
|
|
|
- name: settingName
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/Setting'
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
|
|
|
put:
|
|
|
|
tags:
|
|
|
|
- settings
|
|
|
|
summary: Update a setting
|
|
|
|
parameters:
|
|
|
|
- name: settingName
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
requestBody:
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/SettingUpdate'
|
|
|
|
required: false
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: success
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: '#/components/schemas/Setting'
|
|
|
|
x-codegen-request-body-name: body
|
|
|
|
security:
|
|
|
|
- BearerToken: []
|
|
|
|
- BasicAuth: []
|
2021-11-03 09:40:09 +03:00
|
|
|
components:
|
2021-11-04 11:34:04 +03:00
|
|
|
schemas:
|
|
|
|
Availabilities:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
type: string
|
|
|
|
Appointment:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: integer
|
|
|
|
book:
|
|
|
|
type: string
|
|
|
|
start:
|
|
|
|
type: string
|
|
|
|
end:
|
|
|
|
type: string
|
|
|
|
hash:
|
|
|
|
type: string
|
|
|
|
location:
|
|
|
|
type: string
|
|
|
|
notes:
|
|
|
|
type: string
|
|
|
|
customerId:
|
|
|
|
type: integer
|
|
|
|
providerId:
|
|
|
|
type: integer
|
|
|
|
serviceId:
|
|
|
|
type: integer
|
|
|
|
googleCalendarId:
|
|
|
|
type: string
|
|
|
|
example:
|
|
|
|
id: 1
|
|
|
|
book: '2021-01-01 12:00:00'
|
|
|
|
start: '2021-01-01 17:00:00'
|
|
|
|
end: '2021-01-01 18:00:00'
|
|
|
|
hash: apTWVbSvBJXR
|
|
|
|
location: Test Street 1A
|
|
|
|
notes: This is an appointment.
|
|
|
|
customerId: 5
|
|
|
|
providerId: 2
|
|
|
|
serviceId: 6
|
|
|
|
googleCalendarId: null
|
|
|
|
AppointmentCreate:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
start:
|
|
|
|
type: string
|
|
|
|
end:
|
|
|
|
type: string
|
|
|
|
location:
|
|
|
|
type: string
|
|
|
|
status:
|
|
|
|
type: string
|
|
|
|
notes:
|
|
|
|
type: string
|
|
|
|
customerId:
|
|
|
|
type: integer
|
|
|
|
providerId:
|
|
|
|
type: integer
|
|
|
|
serviceId:
|
|
|
|
type: integer
|
|
|
|
example:
|
|
|
|
start: '2021-01-01 17:00:00'
|
|
|
|
end: '2021-01-01 18:00:00'
|
|
|
|
location: Test Street 1A
|
|
|
|
notes: This is an appointment.
|
|
|
|
customerId: 5
|
|
|
|
providerId: 2
|
|
|
|
serviceId: 6
|
|
|
|
AppointmentUpdate:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: integer
|
|
|
|
book:
|
|
|
|
type: string
|
|
|
|
start:
|
|
|
|
type: string
|
|
|
|
end:
|
|
|
|
type: string
|
|
|
|
hash:
|
|
|
|
type: string
|
|
|
|
location:
|
|
|
|
type: string
|
|
|
|
status:
|
|
|
|
type: string
|
|
|
|
notes:
|
|
|
|
type: string
|
|
|
|
customerId:
|
|
|
|
type: integer
|
|
|
|
providerId:
|
|
|
|
type: integer
|
|
|
|
serviceId:
|
|
|
|
type: integer
|
|
|
|
googleCalendarId:
|
|
|
|
type: string
|
|
|
|
example:
|
|
|
|
start: '2021-01-01 17:00:00'
|
|
|
|
end: '2021-01-01 18:00:00'
|
|
|
|
location: Test Street 1A
|
|
|
|
notes: This is an appointment.
|
|
|
|
customerId: 5
|
|
|
|
providerId: 2
|
|
|
|
serviceId: 6
|
|
|
|
Unavailability:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: integer
|
|
|
|
book:
|
|
|
|
type: string
|
|
|
|
start:
|
|
|
|
type: string
|
|
|
|
end:
|
|
|
|
type: string
|
|
|
|
notes:
|
|
|
|
type: string
|
|
|
|
providerId:
|
|
|
|
type: integer
|
|
|
|
example:
|
|
|
|
id: 1
|
|
|
|
book: '2021-01-01 12:00:00'
|
|
|
|
start: '2021-01-01 17:00:00'
|
|
|
|
end: '2021-01-01 17:00:00'
|
|
|
|
notes: This is an unavailability.
|
|
|
|
providerId: 2
|
|
|
|
UnavailabilityCreate:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
start:
|
|
|
|
type: string
|
|
|
|
end:
|
|
|
|
type: string
|
|
|
|
notes:
|
|
|
|
type: string
|
|
|
|
providerId:
|
|
|
|
type: integer
|
|
|
|
example:
|
|
|
|
start: '2021-01-01 17:00:00'
|
|
|
|
end: '2021-01-01 17:00:00'
|
|
|
|
notes: This is an unavailability.
|
|
|
|
providerId: 2
|
|
|
|
UnavailabilityUpdate:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
start:
|
|
|
|
type: string
|
|
|
|
end:
|
|
|
|
type: string
|
|
|
|
notes:
|
|
|
|
type: string
|
|
|
|
providerId:
|
|
|
|
type: integer
|
|
|
|
example:
|
|
|
|
start: '2021-01-01 17:00:00'
|
|
|
|
end: '2021-01-01 17:00:00'
|
|
|
|
notes: This is an unavailability.
|
|
|
|
providerId: 2
|
|
|
|
Customer:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: integer
|
|
|
|
firstName:
|
|
|
|
type: string
|
|
|
|
lastName:
|
|
|
|
type: string
|
|
|
|
email:
|
|
|
|
type: string
|
|
|
|
phone:
|
|
|
|
type: string
|
|
|
|
address:
|
|
|
|
type: string
|
|
|
|
city:
|
|
|
|
type: string
|
|
|
|
zip:
|
|
|
|
type: string
|
|
|
|
notes:
|
|
|
|
type: string
|
|
|
|
example:
|
|
|
|
id: 1
|
|
|
|
firstName: John
|
|
|
|
lastName: Doe
|
|
|
|
email: john@example.org
|
|
|
|
phone: Test Street 1A
|
|
|
|
city: Some Place
|
|
|
|
zip: '12345'
|
|
|
|
notes: This is a customer
|
|
|
|
CustomerCreate:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
firstName:
|
|
|
|
type: string
|
|
|
|
lastName:
|
|
|
|
type: string
|
|
|
|
email:
|
|
|
|
type: string
|
|
|
|
phone:
|
|
|
|
type: string
|
|
|
|
address:
|
|
|
|
type: string
|
|
|
|
city:
|
|
|
|
type: string
|
|
|
|
zip:
|
|
|
|
type: string
|
|
|
|
notes:
|
|
|
|
type: string
|
|
|
|
example:
|
|
|
|
firstName: John
|
|
|
|
lastName: Doe
|
|
|
|
email: john@example.org
|
|
|
|
phone: Test Street 1A
|
|
|
|
city: Some Place
|
|
|
|
zip: '12345'
|
|
|
|
notes: This is a customer
|
|
|
|
CustomerUpdate:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
firstName:
|
|
|
|
type: string
|
|
|
|
lastName:
|
|
|
|
type: string
|
|
|
|
email:
|
|
|
|
type: string
|
|
|
|
phone:
|
|
|
|
type: string
|
|
|
|
address:
|
|
|
|
type: string
|
|
|
|
city:
|
|
|
|
type: string
|
|
|
|
zip:
|
|
|
|
type: string
|
|
|
|
notes:
|
|
|
|
type: string
|
|
|
|
example:
|
|
|
|
firstName: John
|
|
|
|
lastName: Doe
|
|
|
|
email: john@example.org
|
|
|
|
phone: Test Street 1A
|
|
|
|
city: Some Place
|
|
|
|
zip: '12345'
|
|
|
|
notes: This is a customer
|
|
|
|
Service:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: integer
|
|
|
|
name:
|
|
|
|
type: string
|
|
|
|
duration:
|
|
|
|
type: integer
|
|
|
|
price:
|
|
|
|
type: number
|
|
|
|
format: float
|
|
|
|
currency:
|
|
|
|
type: string
|
|
|
|
description:
|
|
|
|
type: string
|
|
|
|
availabilitiesType:
|
|
|
|
type: string
|
|
|
|
attendantsNumber:
|
|
|
|
type: integer
|
|
|
|
categoryId:
|
|
|
|
type: integer
|
|
|
|
example:
|
|
|
|
id: 1
|
|
|
|
name: Test Service
|
|
|
|
duration: 30
|
|
|
|
price: 10
|
|
|
|
currency: USD
|
|
|
|
description: This is a test service.
|
|
|
|
availabilitiesType: Flexible
|
|
|
|
attendantsNumber: 1
|
|
|
|
categoryId: null
|
|
|
|
ServiceCreate:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
name:
|
|
|
|
type: string
|
|
|
|
duration:
|
|
|
|
type: integer
|
|
|
|
price:
|
|
|
|
type: number
|
|
|
|
currency:
|
|
|
|
type: string
|
|
|
|
description:
|
|
|
|
type: string
|
|
|
|
availabilitiesType:
|
|
|
|
type: string
|
|
|
|
attendantsNumber:
|
|
|
|
type: integer
|
|
|
|
categoryId:
|
|
|
|
type: integer
|
|
|
|
example:
|
|
|
|
name: Test Service
|
|
|
|
duration: 30
|
|
|
|
price: 10
|
|
|
|
currency: USD
|
|
|
|
description: This is a test service.
|
|
|
|
availabilitiesType: Flexible
|
|
|
|
attendantsNumber: 1
|
|
|
|
categoryId: null
|
|
|
|
ServiceUpdate:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
name:
|
|
|
|
type: string
|
|
|
|
duration:
|
|
|
|
type: integer
|
|
|
|
price:
|
|
|
|
type: number
|
|
|
|
currency:
|
|
|
|
type: string
|
|
|
|
description:
|
|
|
|
type: string
|
|
|
|
availabilitiesType:
|
|
|
|
type: string
|
|
|
|
attendantsNumber:
|
|
|
|
type: integer
|
|
|
|
categoryId:
|
|
|
|
type: integer
|
|
|
|
example:
|
|
|
|
name: Test Service
|
|
|
|
duration: 30
|
|
|
|
price: 10
|
|
|
|
currency: USD
|
|
|
|
description: This is a test service.
|
|
|
|
availabilitiesType: Flexible
|
|
|
|
attendantsNumber: 1
|
|
|
|
categoryId: null
|
|
|
|
Category:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: integer
|
|
|
|
name:
|
|
|
|
type: string
|
|
|
|
description:
|
|
|
|
type: string
|
|
|
|
example:
|
|
|
|
id: 1
|
|
|
|
name: Test Category
|
|
|
|
description: This is a test category.
|
|
|
|
CategoryCreate:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
name:
|
|
|
|
type: string
|
|
|
|
description:
|
|
|
|
type: string
|
|
|
|
example:
|
|
|
|
name: Test Category
|
|
|
|
description: This is a test category.
|
|
|
|
CategoryUpdate:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
name:
|
|
|
|
type: string
|
|
|
|
description:
|
|
|
|
type: string
|
|
|
|
example:
|
|
|
|
name: Test Category
|
|
|
|
description: This is a test category.
|
|
|
|
Admin:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: integer
|
|
|
|
firstName:
|
|
|
|
type: string
|
|
|
|
lastName:
|
|
|
|
type: string
|
|
|
|
email:
|
|
|
|
type: string
|
|
|
|
mobile:
|
|
|
|
type: string
|
|
|
|
phone:
|
|
|
|
type: string
|
|
|
|
address:
|
|
|
|
type: string
|
|
|
|
city:
|
|
|
|
type: string
|
|
|
|
zip:
|
|
|
|
type: string
|
|
|
|
notes:
|
|
|
|
type: string
|
|
|
|
timezone:
|
|
|
|
type: string
|
|
|
|
settings:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
username:
|
|
|
|
type: string
|
|
|
|
password:
|
|
|
|
type: string
|
|
|
|
format: password
|
|
|
|
notifications:
|
|
|
|
type: boolean
|
|
|
|
calendarView:
|
|
|
|
type: string
|
|
|
|
example:
|
|
|
|
id: 1
|
|
|
|
firstName: John
|
|
|
|
lastName: Doe
|
|
|
|
email: john@example.org
|
|
|
|
mobile: '+10000000000'
|
|
|
|
phone: '+10000000000'
|
|
|
|
address: Test Street 1A
|
|
|
|
city: Some Place
|
|
|
|
zip: '12345'
|
|
|
|
notes: This is a test admin.
|
|
|
|
timezone: UTC
|
|
|
|
settings:
|
|
|
|
username: johndoe
|
|
|
|
password: johndoe
|
|
|
|
notifications: true
|
|
|
|
calendarView: default
|
|
|
|
AdminCreate:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
firstName:
|
|
|
|
type: string
|
|
|
|
lastName:
|
|
|
|
type: string
|
|
|
|
email:
|
|
|
|
type: string
|
|
|
|
mobile:
|
|
|
|
type: string
|
|
|
|
phone:
|
|
|
|
type: string
|
|
|
|
address:
|
|
|
|
type: string
|
|
|
|
city:
|
|
|
|
type: string
|
|
|
|
zip:
|
|
|
|
type: string
|
|
|
|
notes:
|
|
|
|
type: string
|
|
|
|
timezone:
|
|
|
|
type: string
|
|
|
|
settings:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
username:
|
|
|
|
type: string
|
|
|
|
password:
|
|
|
|
type: string
|
|
|
|
format: password
|
|
|
|
notifications:
|
|
|
|
type: boolean
|
|
|
|
calendarView:
|
|
|
|
type: string
|
|
|
|
example:
|
|
|
|
firstName: John
|
|
|
|
lastName: Doe
|
|
|
|
email: john@example.org
|
|
|
|
mobile: '+10000000000'
|
|
|
|
phone: '+10000000000'
|
|
|
|
address: Test Street 1A
|
|
|
|
city: Some Place
|
|
|
|
zip: '12345'
|
|
|
|
notes: This is a test admin.
|
|
|
|
timezone: UTC
|
|
|
|
settings:
|
|
|
|
username: johndoe
|
|
|
|
password: johndoe
|
|
|
|
notifications: true
|
|
|
|
calendarView: default
|
|
|
|
AdminUpdate:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
firstName:
|
|
|
|
type: string
|
|
|
|
lastName:
|
|
|
|
type: string
|
|
|
|
email:
|
|
|
|
type: string
|
|
|
|
mobile:
|
|
|
|
type: string
|
|
|
|
phone:
|
|
|
|
type: string
|
|
|
|
address:
|
|
|
|
type: string
|
|
|
|
city:
|
|
|
|
type: string
|
|
|
|
zip:
|
|
|
|
type: string
|
|
|
|
notes:
|
|
|
|
type: string
|
|
|
|
timezone:
|
|
|
|
type: string
|
|
|
|
settings:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
username:
|
|
|
|
type: string
|
|
|
|
password:
|
|
|
|
type: string
|
|
|
|
format: password
|
|
|
|
notifications:
|
|
|
|
type: boolean
|
|
|
|
calendarView:
|
|
|
|
type: string
|
|
|
|
example:
|
|
|
|
firstName: John
|
|
|
|
lastName: Doe
|
|
|
|
email: john@example.org
|
|
|
|
mobile: '+10000000000'
|
|
|
|
phone: '+10000000000'
|
|
|
|
address: Test Street 1A
|
|
|
|
city: Some Place
|
|
|
|
zip: '12345'
|
|
|
|
notes: This is a test admin.
|
|
|
|
timezone: UTC
|
|
|
|
settings:
|
|
|
|
username: johndoe
|
|
|
|
password: johndoe
|
|
|
|
notifications: true
|
|
|
|
calendarView: default
|
|
|
|
AdminAll:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
$ref: '#/components/schemas/Admin'
|
|
|
|
Provider:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: integer
|
|
|
|
firstName:
|
|
|
|
type: string
|
|
|
|
lastName:
|
|
|
|
type: string
|
|
|
|
email:
|
|
|
|
type: string
|
|
|
|
mobile:
|
|
|
|
type: string
|
|
|
|
phone:
|
|
|
|
type: string
|
|
|
|
address:
|
|
|
|
type: string
|
|
|
|
city:
|
|
|
|
type: string
|
|
|
|
zip:
|
|
|
|
type: string
|
|
|
|
notes:
|
|
|
|
type: string
|
|
|
|
timezone:
|
|
|
|
type: string
|
|
|
|
services:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
type: integer
|
|
|
|
settings:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
username:
|
|
|
|
type: string
|
|
|
|
password:
|
|
|
|
type: string
|
|
|
|
notifications:
|
|
|
|
type: boolean
|
|
|
|
calendarView:
|
|
|
|
type: string
|
|
|
|
googleSync:
|
|
|
|
type: boolean
|
|
|
|
googleCalendar:
|
|
|
|
type: string
|
|
|
|
googleToken:
|
|
|
|
type: string
|
|
|
|
syncFutureDays:
|
|
|
|
type: string
|
|
|
|
syncPastDays:
|
|
|
|
type: string
|
|
|
|
workingPlan:
|
|
|
|
type: string
|
|
|
|
example:
|
|
|
|
id: 1
|
|
|
|
firstName: John
|
|
|
|
lastName: Doe
|
|
|
|
email: john@example.org
|
|
|
|
mobile: '+10000000000'
|
|
|
|
phone: '+10000000000'
|
|
|
|
address: Test Street 1A
|
|
|
|
city: Some Place
|
|
|
|
zip: '12345'
|
|
|
|
notes: This is a test provider.
|
|
|
|
timezone: UTC
|
|
|
|
settings:
|
|
|
|
username: johndoe
|
|
|
|
password: johndoe
|
|
|
|
notifications: true
|
|
|
|
calendarView: default
|
|
|
|
googleSync: false
|
|
|
|
googleCalendar: null
|
|
|
|
googleToken: null
|
|
|
|
syncFutureDays: 90
|
|
|
|
syncPastDays: 30
|
|
|
|
workingPlan:
|
|
|
|
sunday: null
|
|
|
|
monday:
|
|
|
|
start: '09:00'
|
|
|
|
end: '17:00'
|
|
|
|
breaks: []
|
|
|
|
tuesday:
|
|
|
|
start: '09:00'
|
|
|
|
end: '17:00'
|
|
|
|
breaks: []
|
|
|
|
wednesday:
|
|
|
|
start: '09:00'
|
|
|
|
end: '17:00'
|
|
|
|
breaks: []
|
|
|
|
thursday:
|
|
|
|
start: '09:00'
|
|
|
|
end: '17:00'
|
|
|
|
breaks: []
|
|
|
|
friday:
|
|
|
|
start: '09:00'
|
|
|
|
end: '17:00'
|
|
|
|
breaks: []
|
|
|
|
saturday: null
|
|
|
|
ProviderCreate:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
firstName:
|
|
|
|
type: string
|
|
|
|
lastName:
|
|
|
|
type: string
|
|
|
|
email:
|
|
|
|
type: string
|
|
|
|
mobile:
|
|
|
|
type: string
|
|
|
|
phone:
|
|
|
|
type: string
|
|
|
|
address:
|
|
|
|
type: string
|
|
|
|
city:
|
|
|
|
type: string
|
|
|
|
zip:
|
|
|
|
type: string
|
|
|
|
notes:
|
|
|
|
type: string
|
|
|
|
timezone:
|
|
|
|
type: string
|
|
|
|
services:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
type: integer
|
|
|
|
settings:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
username:
|
|
|
|
type: string
|
|
|
|
password:
|
|
|
|
type: string
|
|
|
|
format: password
|
|
|
|
notifications:
|
|
|
|
type: boolean
|
|
|
|
calendarView:
|
|
|
|
type: string
|
|
|
|
googleSync:
|
|
|
|
type: boolean
|
|
|
|
googleCalendar:
|
|
|
|
type: string
|
|
|
|
googleToken:
|
|
|
|
type: string
|
|
|
|
syncFutureDays:
|
|
|
|
type: string
|
|
|
|
syncPastDays:
|
|
|
|
type: string
|
|
|
|
workingPlan:
|
|
|
|
type: string
|
|
|
|
example:
|
|
|
|
firstName: John
|
|
|
|
lastName: Doe
|
|
|
|
email: john@example.org
|
|
|
|
mobile: '+10000000000'
|
|
|
|
phone: '+10000000000'
|
|
|
|
address: Test Street 1A
|
|
|
|
city: Some Place
|
|
|
|
zip: '12345'
|
|
|
|
notes: This is a test provider.
|
|
|
|
timezone: UTC
|
|
|
|
settings:
|
|
|
|
username: johndoe
|
|
|
|
password: johndoe
|
|
|
|
notifications: true
|
|
|
|
calendarView: default
|
|
|
|
googleSync: false
|
|
|
|
googleCalendar: null
|
|
|
|
googleToken: null
|
|
|
|
syncFutureDays: 90
|
|
|
|
syncPastDays: 30
|
|
|
|
workingPlan:
|
|
|
|
sunday: null
|
|
|
|
monday:
|
|
|
|
start: '09:00'
|
|
|
|
end: '17:00'
|
|
|
|
breaks: []
|
|
|
|
tuesday:
|
|
|
|
start: '09:00'
|
|
|
|
end: '17:00'
|
|
|
|
breaks: []
|
|
|
|
wednesday:
|
|
|
|
start: '09:00'
|
|
|
|
end: '17:00'
|
|
|
|
breaks: []
|
|
|
|
thursday:
|
|
|
|
start: '09:00'
|
|
|
|
end: '17:00'
|
|
|
|
breaks: []
|
|
|
|
friday:
|
|
|
|
start: '09:00'
|
|
|
|
end: '17:00'
|
|
|
|
breaks: []
|
|
|
|
saturday: null
|
|
|
|
ProviderUpdate:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
firstName:
|
|
|
|
type: string
|
|
|
|
lastName:
|
|
|
|
type: string
|
|
|
|
email:
|
|
|
|
type: string
|
|
|
|
mobile:
|
|
|
|
type: string
|
|
|
|
phone:
|
|
|
|
type: string
|
|
|
|
address:
|
|
|
|
type: string
|
|
|
|
city:
|
|
|
|
type: string
|
|
|
|
zip:
|
|
|
|
type: string
|
|
|
|
notes:
|
|
|
|
type: string
|
|
|
|
timezone:
|
|
|
|
type: string
|
|
|
|
services:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
type: integer
|
|
|
|
settings:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
username:
|
|
|
|
type: string
|
|
|
|
password:
|
|
|
|
type: string
|
|
|
|
format: password
|
|
|
|
notifications:
|
|
|
|
type: boolean
|
|
|
|
calendarView:
|
|
|
|
type: string
|
|
|
|
googleSync:
|
|
|
|
type: boolean
|
|
|
|
googleCalendar:
|
|
|
|
type: string
|
|
|
|
googleToken:
|
|
|
|
type: string
|
|
|
|
syncFutureDays:
|
|
|
|
type: string
|
|
|
|
syncPastDays:
|
|
|
|
type: string
|
|
|
|
workingPlan:
|
|
|
|
type: string
|
|
|
|
example:
|
|
|
|
firstName: John
|
|
|
|
lastName: Doe
|
|
|
|
email: john@example.org
|
|
|
|
mobile: '+10000000000'
|
|
|
|
phone: '+10000000000'
|
|
|
|
address: Test Street 1A
|
|
|
|
city: Some Place
|
|
|
|
zip: '12345'
|
|
|
|
notes: This is a test provider.
|
|
|
|
timezone: UTC
|
|
|
|
settings:
|
|
|
|
username: johndoe
|
|
|
|
password: johndoe
|
|
|
|
notifications: true
|
|
|
|
calendarView: default
|
|
|
|
googleSync: false
|
|
|
|
googleCalendar: null
|
|
|
|
googleToken: null
|
|
|
|
syncFutureDays: 90
|
|
|
|
syncPastDays: 30
|
|
|
|
workingPlan:
|
|
|
|
sunday: null
|
|
|
|
monday:
|
|
|
|
start: '09:00'
|
|
|
|
end: '17:00'
|
|
|
|
breaks: []
|
|
|
|
tuesday:
|
|
|
|
start: '09:00'
|
|
|
|
end: '17:00'
|
|
|
|
breaks: []
|
|
|
|
wednesday:
|
|
|
|
start: '09:00'
|
|
|
|
end: '17:00'
|
|
|
|
breaks: []
|
|
|
|
thursday:
|
|
|
|
start: '09:00'
|
|
|
|
end: '17:00'
|
|
|
|
breaks: []
|
|
|
|
friday:
|
|
|
|
start: '09:00'
|
|
|
|
end: '17:00'
|
|
|
|
breaks: []
|
|
|
|
saturday: null
|
|
|
|
Secretary:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: integer
|
|
|
|
firstName:
|
|
|
|
type: string
|
|
|
|
lastName:
|
|
|
|
type: string
|
|
|
|
email:
|
|
|
|
type: string
|
|
|
|
mobile:
|
|
|
|
type: string
|
|
|
|
phone:
|
|
|
|
type: string
|
|
|
|
address:
|
|
|
|
type: string
|
|
|
|
city:
|
|
|
|
type: string
|
|
|
|
zip:
|
|
|
|
type: string
|
|
|
|
notes:
|
|
|
|
type: string
|
|
|
|
timezone:
|
|
|
|
type: string
|
|
|
|
providers:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
type: integer
|
|
|
|
settings:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
username:
|
|
|
|
type: string
|
|
|
|
password:
|
|
|
|
type: string
|
|
|
|
format: password
|
|
|
|
notifications:
|
|
|
|
type: boolean
|
|
|
|
calendarView:
|
|
|
|
type: string
|
|
|
|
example:
|
|
|
|
id: 1
|
|
|
|
firstName: John
|
|
|
|
lastName: Doe
|
|
|
|
email: john@example.org
|
|
|
|
mobile: '+10000000000'
|
|
|
|
phone: '+10000000000'
|
|
|
|
address: Test Street 1A
|
|
|
|
city: Some Place
|
|
|
|
zip: '12345'
|
|
|
|
notes: This is a test service.
|
|
|
|
timezone: UTC
|
|
|
|
settings:
|
|
|
|
username: johndoe
|
|
|
|
password: johndoe
|
|
|
|
notifications: true
|
|
|
|
calendarView: default
|
|
|
|
SecretaryCreate:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
firstName:
|
|
|
|
type: string
|
|
|
|
lastName:
|
|
|
|
type: string
|
|
|
|
email:
|
|
|
|
type: string
|
|
|
|
mobile:
|
|
|
|
type: string
|
|
|
|
phone:
|
|
|
|
type: string
|
|
|
|
address:
|
|
|
|
type: string
|
|
|
|
city:
|
|
|
|
type: string
|
|
|
|
zip:
|
|
|
|
type: string
|
|
|
|
notes:
|
|
|
|
type: string
|
|
|
|
timezone:
|
|
|
|
type: string
|
|
|
|
settings:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
username:
|
|
|
|
type: string
|
|
|
|
password:
|
|
|
|
type: string
|
|
|
|
format: password
|
|
|
|
notifications:
|
|
|
|
type: boolean
|
|
|
|
calendarView:
|
|
|
|
type: string
|
|
|
|
example:
|
|
|
|
firstName: John
|
|
|
|
lastName: Doe
|
|
|
|
email: john@example.org
|
|
|
|
mobile: '+10000000000'
|
|
|
|
phone: '+10000000000'
|
|
|
|
address: Test Street 1A
|
|
|
|
city: Some Place
|
|
|
|
zip: '12345'
|
|
|
|
notes: This is a test service.
|
|
|
|
timezone: UTC
|
|
|
|
settings:
|
|
|
|
username: johndoe
|
|
|
|
password: johndoe
|
|
|
|
notifications: true
|
|
|
|
calendarView: default
|
|
|
|
SecretaryUpdate:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
firstName:
|
|
|
|
type: string
|
|
|
|
lastName:
|
|
|
|
type: string
|
|
|
|
email:
|
|
|
|
type: string
|
|
|
|
mobile:
|
|
|
|
type: string
|
|
|
|
phone:
|
|
|
|
type: string
|
|
|
|
address:
|
|
|
|
type: string
|
|
|
|
city:
|
|
|
|
type: string
|
|
|
|
zip:
|
|
|
|
type: string
|
|
|
|
notes:
|
|
|
|
type: string
|
|
|
|
timezone:
|
|
|
|
type: string
|
|
|
|
settings:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
username:
|
|
|
|
type: string
|
|
|
|
password:
|
|
|
|
type: string
|
|
|
|
format: password
|
|
|
|
notifications:
|
|
|
|
type: boolean
|
|
|
|
calendarView:
|
|
|
|
type: string
|
|
|
|
example:
|
|
|
|
firstName: John
|
|
|
|
lastName: Doe
|
|
|
|
email: john@example.org
|
|
|
|
mobile: '+10000000000'
|
|
|
|
phone: '+10000000000'
|
|
|
|
address: Test Street 1A
|
|
|
|
city: Some Place
|
|
|
|
zip: '12345'
|
|
|
|
notes: This is a test service.
|
|
|
|
timezone: UTC
|
|
|
|
settings:
|
|
|
|
username: johndoe
|
|
|
|
password: johndoe
|
|
|
|
notifications: true
|
|
|
|
calendarView: default
|
|
|
|
Setting:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
name:
|
|
|
|
type: string
|
|
|
|
value:
|
|
|
|
type: string
|
|
|
|
example:
|
|
|
|
name: company_name
|
|
|
|
value: ACME Inc
|
|
|
|
SettingUpdate:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
value:
|
|
|
|
type: string
|
|
|
|
example:
|
|
|
|
value: ACME Inc
|
|
|
|
securitySchemes:
|
|
|
|
BearerToken:
|
|
|
|
type: http
|
|
|
|
scheme: bearer
|
|
|
|
description: >-
|
|
|
|
You can generate the API key from the settings page to authorize with
|
|
|
|
Bearer Token.
|
|
|
|
BasicAuth:
|
|
|
|
type: http
|
|
|
|
scheme: basic
|
|
|
|
description: >-
|
|
|
|
You can use the credentials of an admin user to authorize with Basic
|
|
|
|
Auth.
|