{"openapi":"3.0.3","info":{"version":"2.3.0","title":"@qc-apps/api","description":"\n# Overview\n\nThe Q-Consultation API consists of various web resources and establishes an API that enhances the features of QuickBlox. You have the ability to interact with these resources directly by employing specific actions using standard HTTP protocols.\n\n> Should you require additional functionalities provided by QuickBlox, make use of [QuickBlox Server API](https://docs.quickblox.com/reference/overview).\n\nThe Q-Consultation API is constructed following RESTful principles, which are a defined set of guidelines for implementing and utilizing the HTTP protocol. Consequently, when you send HTTP requests, the received data is in the format of JSON payloads. Through the Server API, you can seamlessly integrate Q-Consultation's capabilities into your own application.\n\n# Base URL\n\nBase URL is a value identifying particular API resource. This URL remains constant for all requests and constitutes the first half of the complete request URL.\n\nThe second half of the resource URL is the endpoint representing a variable that must be set with appropriate values to access a specific resource. For example, `/auth/login`.\n\n# Headers\n\nA header is an integral part of each Server API request and response indicating information about request and response body and authorization. QuickBlox Server API provides two headers types:\n\n## Standard header\n\nA Content-Type API header that tells the server the media type of the request and is used for PUT and POST requests only. Thus, QuickBlox Server API supports `application/json` and `multipart/form-data` content type.\n\n## Authorization header\n\nThe Authorization header enables the server to determine whether the sender has the permission to access the requested resource or perform the operation.\nThis header specifies the authorization method.\nEach of the methods indicates which token should be passed in an `Authorization` HTTP header.\nAuthorization header must be in the format `Bearer <token>`.\n\nThere are 3 authorization methods available:\n\n- `apiKey` - `BEARER_TOKEN` set in app config. Used for API integration.\n- `providerSession` - provider session token.\n- `clientSession` - client session token.\n\n# Limits\n\nSince the Q-Consultation API is built upon QuickBlox, it shares the same limits.\n\nThe purpose of the rate limit is to ensure a high quality of QuickBlox service across all QuickBlox accounts, by limiting the number of API requests that an account can produce per second.\n\nIf you go over these limits when using REST based APIs, QuickBlox will start returning a HTTP 429 Too Many Requests error.\n\nRead more info about limits on [Plans page](https://quickblox.com/pricing/).\n\n| Basic | Startup | Growth | HIPAA | Enterprise                                                      |\n| ----- | ------- | ------ | ----- | --------------------------------------------------------------- |\n| 10 Mb | 25 Mb   | 50 Mb  | 50 Mb | [Contact our sales team](https://quickblox.com/enterprise/#get) |\n\n# Errors\n\nPossible API errors are as follows:\n\n| Code | Text | Description |\n| --- | --- | --- |\n| [400](https://en.wikipedia.org/wiki/Http_status_codes#400) | Bad Request | Missing or invalid parameter. Possible causes:  <br>- malformed request parameters. |\n| [401](https://en.wikipedia.org/wiki/Http_status_codes#401) | Unauthorized | Authorization is missing or incorrect. Possible causes:  <br>- a user tries to authorize with a wrong login or password.  <br>- a user uses invalid session token. |\n| [403](https://en.wikipedia.org/wiki/Http_status_codes#403) | Forbidden | Access has been refused. Possible causes:  <br>- a user tries to retrieve chat messages for a chat dialog while they are not in the occupants list. |\n| [404](https://en.wikipedia.org/wiki/Http_status_codes#404) | Not Found | The requested resource could not be found. Possible causes:  <br>- a user tries to retrieve chat messages for the invalid chat dialog ID.  <br>- a user tries to retrieve a custom object record with invalid ID. |\n| [422](https://en.wikipedia.org/wiki/Http_status_codes#422) | Unprocessable Entity | The request was well-formed but was unable to be followed due to validation errors. Possible causes:  <br>- create a user with the existent login or email.  <br>- provide values in the wrong format to create some object. |\n| [429](https://en.wikipedia.org/wiki/Http_status_codes#429) | Too Many Requests | Rate limit for your [current plan](https://quickblox.com/pricing/) is exceeded. |\n| [500](https://en.wikipedia.org/wiki/Http_status_codes#500) | Internal Server Error | Server encountered an error, try again later. |\n| [503](https://en.wikipedia.org/wiki/Http_status_codes#503) | Service Unavailable | Server is at capacity, try again later. |\n\n","license":{"name":"MIT","url":"https://github.com/QuickBlox/q-consultation/blob/master/LICENSE"}},"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"API Token. `BEARER_TOKEN` set in app config. Used for API integration."},"providerSession":{"type":"http","scheme":"bearer","description":"Provider session token."},"clientSession":{"type":"http","scheme":"bearer","description":"Client session token."}},"schemas":{"Error":{"title":"Error response","type":"object","properties":{"statusCode":{"title":"HTTP response status code","type":"integer"},"error":{"title":"HTTP response error","type":"string"},"message":{"title":"Error message","type":"string"}},"required":["statusCode","error","message"]},"QBUser":{"type":"object","properties":{"id":{"title":"User ID","description":"ID of the user. Generated automatically by the server after user creation","type":"integer"},"full_name":{"description":"User's full name","minLength":3,"maxLength":60,"type":"string"},"email":{"format":"email","description":"User's email","type":"string"},"created_at":{"format":"date-time","description":"Date in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format according to universal time. Format: `YYYY-MM-DDTHH:mm:ss.sssZ`.","type":"string"},"updated_at":{"format":"date-time","description":"Date in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format according to universal time. Format: `YYYY-MM-DDTHH:mm:ss.sssZ`.","type":"string"},"last_request_at":{"format":"date-time","description":"Date in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format according to universal time. Format: `YYYY-MM-DDTHH:mm:ss.sssZ`.","type":"string"},"custom_data":{"anyOf":[{"title":"Additional data","description":"This value is an JSON object converted to a string.","type":"string"},{"title":"Empty","type":"null"}]},"user_tags":{"anyOf":[{"title":"Tags","type":"string"},{"title":"Empty","type":"null"}]}},"required":["id","full_name","email","created_at","updated_at","last_request_at","custom_data","user_tags"]},"QCProvider":{"type":"object","allOf":[{"type":"object","properties":{"id":{"title":"User ID","description":"ID of the user. Generated automatically by the server after user creation","type":"integer"},"full_name":{"description":"User's full name","minLength":3,"maxLength":60,"type":"string"},"email":{"format":"email","description":"User's email","type":"string"},"created_at":{"format":"date-time","description":"Date in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format according to universal time. Format: `YYYY-MM-DDTHH:mm:ss.sssZ`.","type":"string"},"updated_at":{"format":"date-time","description":"Date in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format according to universal time. Format: `YYYY-MM-DDTHH:mm:ss.sssZ`.","type":"string"},"last_request_at":{"format":"date-time","description":"Date in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format according to universal time. Format: `YYYY-MM-DDTHH:mm:ss.sssZ`.","type":"string"}},"required":["id","full_name","email","created_at","updated_at","last_request_at"]},{"type":"object","properties":{"profession":{"description":"User's profession","type":"string"},"description":{"description":"Description of the user's profession","type":"string"},"language":{"description":"User's language","type":"string"}},"required":["profession"]}]},"QCClient":{"type":"object","allOf":[{"type":"object","properties":{"id":{"title":"User ID","description":"ID of the user. Generated automatically by the server after user creation","type":"integer"},"full_name":{"description":"User's full name","minLength":3,"maxLength":60,"type":"string"},"email":{"format":"email","description":"User's email","type":"string"},"created_at":{"format":"date-time","description":"Date in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format according to universal time. Format: `YYYY-MM-DDTHH:mm:ss.sssZ`.","type":"string"},"updated_at":{"format":"date-time","description":"Date in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format according to universal time. Format: `YYYY-MM-DDTHH:mm:ss.sssZ`.","type":"string"},"last_request_at":{"format":"date-time","description":"Date in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format according to universal time. Format: `YYYY-MM-DDTHH:mm:ss.sssZ`.","type":"string"}},"required":["id","full_name","email","created_at","updated_at","last_request_at"]},{"type":"object","properties":{"birthdate":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","title":"Date","description":"User's birthday. Format: yyyy-MM-dd","type":"string"},"gender":{"description":"User's gender","anyOf":[{"title":"male","type":"string","enum":["male"]},{"title":"female","type":"string","enum":["female"]}]},"address":{"description":"User's address","type":"string"},"language":{"description":"User's language","type":"string"}},"required":["birthdate","gender"]}]},"QBSession":{"type":"object","properties":{"_id":{"type":"string"},"application_id":{"type":"integer"},"created_at":{"format":"date-time","description":"Date in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format according to universal time. Format: `YYYY-MM-DDTHH:mm:ss.sssZ`.","type":"string"},"id":{"type":"integer"},"nonce":{"type":"string"},"token":{"type":"string"},"ts":{"type":"integer"},"updated_at":{"format":"date-time","description":"Date in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format according to universal time. Format: `YYYY-MM-DDTHH:mm:ss.sssZ`.","type":"string"},"user_id":{"title":"User ID","description":"ID of the user. Generated automatically by the server after user creation","type":"integer"}},"required":["_id","application_id","created_at","id","nonce","token","ts","updated_at","user_id"]},"QBDialog":{"type":"object","properties":{"_id":{"pattern":"^[a-z0-9]{24}$","title":"Dialog ID","type":"string"},"created_at":{"format":"date-time","description":"Date in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format according to universal time. Format: `YYYY-MM-DDTHH:mm:ss.sssZ`.","type":"string"},"data":{"type":"object","additionalProperties":{"type":"string"}},"last_message":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_message_date_sent":{"anyOf":[{"type":"integer"},{"type":"null"}]},"last_message_id":{"anyOf":[{"pattern":"^[a-z0-9]{24}$","title":"Message ID","type":"string"},{"type":"null"}]},"last_message_user_id":{"anyOf":[{"title":"User ID","description":"ID of the user. Generated automatically by the server after user creation","type":"integer"},{"type":"null"}]},"name":{"type":"string"},"occupants_ids":{"type":"array","items":{"title":"User ID","description":"ID of the user. Generated automatically by the server after user creation","type":"integer"}},"photo":{"type":"null"},"type":{"type":"integer"},"updated_at":{"format":"date-time","description":"Date in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format according to universal time. Format: `YYYY-MM-DDTHH:mm:ss.sssZ`.","type":"string"},"user_id":{"title":"User ID","description":"ID of the user. Generated automatically by the server after user creation","type":"integer"},"xmpp_room_jid":{"anyOf":[{"type":"string"},{"type":"null"}]},"unread_messages_count":{"anyOf":[{"type":"integer"},{"type":"null"}]},"joined":{"type":"boolean"}},"required":["_id","created_at","last_message","last_message_date_sent","last_message_id","last_message_user_id","name","occupants_ids","photo","type","updated_at","user_id","xmpp_room_jid","unread_messages_count"]},"QCAppointment":{"type":"object","allOf":[{"type":"object","properties":{"_id":{"pattern":"^[a-z0-9]{24}$","description":"ID of the custom object. Generated automatically by the server after creation","type":"string"},"user_id":{"title":"User ID","description":"ID of the user. Generated automatically by the server after user creation","type":"integer"},"created_at":{"type":"integer"},"updated_at":{"type":"integer"}},"required":["_id","user_id","created_at","updated_at"]},{"type":"object","properties":{"_parent_id":{"type":"null"},"priority":{"minimum":0,"maximum":2,"description":"The priority of the appointment in the queue","type":"integer"},"client_id":{"title":"User ID","description":"ID of the user. Generated automatically by the server after user creation","type":"integer"},"provider_id":{"title":"User ID","description":"ID of the user. Generated automatically by the server after user creation","type":"integer"},"dialog_id":{"pattern":"^[a-z0-9]{24}$","title":"Dialog ID","type":"string"},"description":{"description":"Description of the appointment","type":"string"},"notes":{"description":"Notes for appointment","anyOf":[{"type":"null"},{"type":"string"}]},"conclusion":{"description":"Conclusions for appointments","anyOf":[{"type":"null"},{"type":"string"}]},"date_end":{"description":"End date of the appointment","anyOf":[{"type":"null"},{"format":"date-time","description":"Date in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format according to universal time. Format: `YYYY-MM-DDTHH:mm:ss.sssZ`.","type":"string"}]},"language":{"description":"Language of the appointment","anyOf":[{"type":"null"},{"type":"string"}]}},"required":["_parent_id","priority","client_id","provider_id","dialog_id","description","notes","conclusion","date_end","language"]}]},"QCRecord":{"type":"object","allOf":[{"type":"object","properties":{"_id":{"pattern":"^[a-z0-9]{24}$","description":"ID of the custom object. Generated automatically by the server after creation","type":"string"},"user_id":{"title":"User ID","description":"ID of the user. Generated automatically by the server after user creation","type":"integer"},"created_at":{"type":"integer"},"updated_at":{"type":"integer"}},"required":["_id","user_id","created_at","updated_at"]},{"type":"object","properties":{"_parent_id":{"pattern":"^[a-z0-9]{24}$","description":"ID of the custom object. Generated automatically by the server after creation","type":"string"}},"required":["_parent_id"]},{"type":"object","properties":{"uid":{"type":"string"},"name":{"type":"string"},"transcription":{"type":"array","items":{"description":"Format: \"time|text\"","type":"string"}},"summary":{"type":"string"},"actions":{"type":"string"},"appointment_id":{"pattern":"^[a-z0-9]{24}$","description":"ID of the custom object. Generated automatically by the server after creation","type":"string"}}}]}}},"paths":{"/ai/audio-info":{"post":{"summary":"Get audio info","tags":["AI"],"description":"Get transcription, summary and actions for the audio","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"voice":{"title":"File","description":"This value represents a file submitted using a form with encoding set to `multipart/form-data`.","type":"object","properties":{"buffer":{"description":"Record buffer"},"filename":{"description":"Record filename","type":"string"},"encoding":{"description":"Record encoding","type":"string"},"mimetype":{"description":"Record mimetype","type":"string"}},"required":["buffer","filename","encoding","mimetype"]}},"required":["voice"]}}},"required":true},"security":[{"apiKey":[]},{"providerSession":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"transcription":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string"},"end":{"type":"string"},"text":{"type":"string"}},"required":["start","end","text"]}},"summary":{"type":"string"},"actions":{"type":"string"}}}}}},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}}},"/appointments":{"post":{"summary":"Create new appointment","tags":["Appointments"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"provider_id":{"title":"User ID","description":"ID of the user. Generated automatically by the server after user creation","type":"integer"},"client_id":{"title":"User ID","description":"ID of the user. Generated automatically by the server after user creation","type":"integer"},"description":{"description":"Description of the appointment","type":"string"}},"required":["provider_id","client_id","description"]}}},"required":true},"security":[{"apiKey":[]},{"providerSession":[]},{"clientSession":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QCAppointment"}}}},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}},"get":{"summary":"Get a list of all appointments","tags":["Appointments"],"description":"Retrieve a list of all users appointments using an apiKey","parameters":[{"schema":{"default":1000,"minimum":1,"type":"integer"},"in":"query","name":"limit","required":false,"description":"Limit search results to N records. Useful for pagination"},{"schema":{"default":0,"minimum":0,"type":"integer"},"in":"query","name":"skip","required":false,"description":"Skip N records in search results. Useful for pagination."},{"schema":{"anyOf":[{"title":"_id","type":"string","enum":["_id"]},{"title":"created_at","type":"string","enum":["created_at"]},{"title":"updated_at","type":"string","enum":["updated_at"]},{"title":"priority","type":"string","enum":["priority"]},{"title":"client_id","type":"string","enum":["client_id"]},{"title":"provider_id","type":"string","enum":["provider_id"]},{"title":"dialog_id","type":"string","enum":["dialog_id"]},{"title":"description","type":"string","enum":["description"]},{"title":"notes","type":"string","enum":["notes"]},{"title":"conclusion","type":"string","enum":["conclusion"]},{"title":"date_end","type":"string","enum":["date_end"]},{"title":"language","type":"string","enum":["language"]}]},"in":"query","name":"sort_desc","required":false,"description":"Returns appointments with sorting in ascending or descending order"},{"schema":{"anyOf":[{"title":"_id","type":"string","enum":["_id"]},{"title":"created_at","type":"string","enum":["created_at"]},{"title":"updated_at","type":"string","enum":["updated_at"]},{"title":"priority","type":"string","enum":["priority"]},{"title":"client_id","type":"string","enum":["client_id"]},{"title":"provider_id","type":"string","enum":["provider_id"]},{"title":"dialog_id","type":"string","enum":["dialog_id"]},{"title":"description","type":"string","enum":["description"]},{"title":"notes","type":"string","enum":["notes"]},{"title":"conclusion","type":"string","enum":["conclusion"]},{"title":"date_end","type":"string","enum":["date_end"]},{"title":"language","type":"string","enum":["language"]}]},"in":"query","name":"sort_asc","required":false,"description":"Returns appointments with sorting in ascending or descending order"},{"schema":{"minimum":0,"maximum":2,"type":"integer"},"in":"query","name":"priority","required":false,"description":"The priority of the appointment in the queue"},{"schema":{"title":"User ID","type":"integer"},"in":"query","name":"provider_id","required":false,"description":"ID of the user. Generated automatically by the server after user creation"},{"schema":{"title":"User ID","type":"integer"},"in":"query","name":"client_id","required":false,"description":"ID of the user. Generated automatically by the server after user creation"},{"schema":{"format":"date-time","type":"string"},"in":"query","name":"date_end[from]","required":false,"description":"Date in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format according to universal time. Format: `YYYY-MM-DDTHH:mm:ss.sssZ`."},{"schema":{"format":"date-time","type":"string"},"in":"query","name":"date_end[to]","required":false,"description":"Date in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format according to universal time. Format: `YYYY-MM-DDTHH:mm:ss.sssZ`."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/QCAppointment"}},"limit":{"default":1000,"minimum":1,"description":"Limit search results to N records. Useful for pagination","type":"integer"},"skip":{"default":0,"minimum":0,"description":"Skip N records in search results. Useful for pagination.","type":"integer"}},"required":["items","limit","skip"]}}}},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}}},"/appointments/my":{"get":{"summary":"Get a list of my appointments","tags":["Appointments"],"description":"Retrieve all user appointments list","parameters":[{"schema":{"default":1000,"minimum":1,"type":"integer"},"in":"query","name":"limit","required":false,"description":"Limit search results to N records. Useful for pagination"},{"schema":{"default":0,"minimum":0,"type":"integer"},"in":"query","name":"skip","required":false,"description":"Skip N records in search results. Useful for pagination."},{"schema":{"anyOf":[{"title":"_id","type":"string","enum":["_id"]},{"title":"created_at","type":"string","enum":["created_at"]},{"title":"updated_at","type":"string","enum":["updated_at"]},{"title":"priority","type":"string","enum":["priority"]},{"title":"client_id","type":"string","enum":["client_id"]},{"title":"provider_id","type":"string","enum":["provider_id"]},{"title":"dialog_id","type":"string","enum":["dialog_id"]},{"title":"description","type":"string","enum":["description"]},{"title":"notes","type":"string","enum":["notes"]},{"title":"conclusion","type":"string","enum":["conclusion"]},{"title":"date_end","type":"string","enum":["date_end"]},{"title":"language","type":"string","enum":["language"]}]},"in":"query","name":"sort_desc","required":false,"description":"Returns appointments with sorting in ascending or descending order"},{"schema":{"anyOf":[{"title":"_id","type":"string","enum":["_id"]},{"title":"created_at","type":"string","enum":["created_at"]},{"title":"updated_at","type":"string","enum":["updated_at"]},{"title":"priority","type":"string","enum":["priority"]},{"title":"client_id","type":"string","enum":["client_id"]},{"title":"provider_id","type":"string","enum":["provider_id"]},{"title":"dialog_id","type":"string","enum":["dialog_id"]},{"title":"description","type":"string","enum":["description"]},{"title":"notes","type":"string","enum":["notes"]},{"title":"conclusion","type":"string","enum":["conclusion"]},{"title":"date_end","type":"string","enum":["date_end"]},{"title":"language","type":"string","enum":["language"]}]},"in":"query","name":"sort_asc","required":false,"description":"Returns appointments with sorting in ascending or descending order"},{"schema":{"minimum":0,"maximum":2,"type":"integer"},"in":"query","name":"priority","required":false,"description":"The priority of the appointment in the queue"},{"schema":{"title":"User ID","type":"integer"},"in":"query","name":"provider_id","required":false,"description":"Only for `clientSession` Authorization"},{"schema":{"title":"User ID","type":"integer"},"in":"query","name":"client_id","required":false,"description":"Only for `providerSession` Authorization"},{"schema":{"format":"date-time","type":"string"},"in":"query","name":"date_end[from]","required":false,"description":"Date in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format according to universal time. Format: `YYYY-MM-DDTHH:mm:ss.sssZ`."},{"schema":{"format":"date-time","type":"string"},"in":"query","name":"date_end[to]","required":false,"description":"Date in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format according to universal time. Format: `YYYY-MM-DDTHH:mm:ss.sssZ`."}],"security":[{"providerSession":[]},{"clientSession":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/QCAppointment"}},"limit":{"default":1000,"minimum":1,"description":"Limit search results to N records. Useful for pagination","type":"integer"},"skip":{"default":0,"minimum":0,"description":"Skip N records in search results. Useful for pagination.","type":"integer"}},"required":["items","limit","skip"]}}}},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}}},"/auth/login":{"post":{"summary":"User login","tags":["Auth"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"description":"User's role as a provider or client","anyOf":[{"title":"client","type":"string","enum":["client"]},{"title":"provider","type":"string","enum":["provider"]}]},"email":{"format":"email","description":"User's email","type":"string"},"password":{"description":"User's password","type":"string"}},"required":["role","email","password"]}}},"required":true},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"session":{"$ref":"#/components/schemas/QBSession"},"data":{"$ref":"#/components/schemas/QBUser"}},"required":["session","data"]}}}},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}}},"/auth/logout":{"delete":{"summary":"User logout","tags":["Auth"],"security":[{"providerSession":[]},{"clientSession":[]}],"responses":{"204":{"description":"No content"},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}}},"/ai/dialog/{dialogId}/messages/{clientMessageId}/answer":{"get":{"summary":"Get Quick answer for dialog","tags":["AI","Chat"],"parameters":[{"schema":{"pattern":"^[a-z0-9]{24}$","title":"Dialog ID","type":"string"},"in":"path","name":"dialogId","required":true},{"schema":{"pattern":"^[a-z0-9]{24}$","title":"Message ID","type":"string"},"in":"path","name":"clientMessageId","required":true}],"security":[{"providerSession":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"answer":{"type":"string"}},"required":["answer"]}}}},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}}},"/ai/dialog/{dialogId}/rephrase":{"post":{"summary":"Rephrase text for dialog","tags":["AI","Chat"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"minLength":1,"type":"string"},"tone":{"example":"Professional Tone","anyOf":[{"title":"Professional Tone","description":"This would edit messages to sound more formal, using technical vocabulary, clear sentence structures, and maintaining a respectful tone. It would avoid colloquial language and ensure appropriate salutations and sign-offs","type":"string","enum":["Professional Tone"]},{"title":"Friendly Tone","description":"This would adjust messages to reflect a casual, friendly tone. It would incorporate casual language, use emoticons, exclamation points, and other informalities to make the message seem more friendly and approachable.","type":"string","enum":["Friendly Tone"]},{"title":"Encouraging Tone","description":"This tone would be useful for motivation and encouragement. It would include positive words, affirmations, and express support and belief in the recipient.","type":"string","enum":["Encouraging Tone"]},{"title":"Empathetic Tone","description":"This tone would be utilized to display understanding and empathy. It would involve softer language, acknowledging feelings, and demonstrating compassion and support.","type":"string","enum":["Empathetic Tone"]},{"title":"Neutral Tone","description":"For times when you want to maintain an even, unbiased, and objective tone. It would avoid extreme language and emotive words, opting for clear, straightforward communication.","type":"string","enum":["Neutral Tone"]},{"title":"Assertive Tone","description":"This tone is beneficial for making clear points, standing ground, or in negotiations. It uses direct language, is confident, and does not mince words.","type":"string","enum":["Assertive Tone"]},{"title":"Instructive Tone","description":"This tone would be useful for tutorials, guides, or other teaching and training materials. It is clear, concise, and walks the reader through steps or processes in a logical manner.","type":"string","enum":["Instructive Tone"]},{"title":"Persuasive Tone","description":"This tone can be used when trying to convince someone or argue a point. It uses persuasive language, powerful words, and logical reasoning.","type":"string","enum":["Persuasive Tone"]},{"title":"Sarcastic/Ironic Tone","description":"This tone can make the communication more humorous or show an ironic stance. It is harder to implement as it requires the AI to understand nuanced language and may not always be taken as intended by the reader.","type":"string","enum":["Sarcastic/Ironic Tone"]},{"title":"Poetic Tone","description":"This would add an artistic touch to messages, using figurative language, rhymes, and rhythm to create a more expressive text.","type":"string","enum":["Poetic Tone"]}]}},"required":["text","tone"]}}},"required":true},"parameters":[{"schema":{"pattern":"^[a-z0-9]{24}$","title":"Dialog ID","type":"string"},"in":"path","name":"dialogId","required":true}],"security":[{"providerSession":[]},{"clientSession":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"rephrasedText":{"type":"string"}},"required":["rephrasedText"]}}}},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}}},"/ai/dialog/{dialogId}/messages/{messageId}/translate":{"post":{"summary":"Translate message for user","tags":["AI","Chat"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"language":{"example":"Arabic","anyOf":[{"title":"Arabic","type":"string","enum":["Arabic"]},{"title":"Bangla","type":"string","enum":["Bangla"]},{"title":"Czech","type":"string","enum":["Czech"]},{"title":"Danish","type":"string","enum":["Danish"]},{"title":"German","type":"string","enum":["German"]},{"title":"Greek","type":"string","enum":["Greek"]},{"title":"English","type":"string","enum":["English"]},{"title":"Spanish","type":"string","enum":["Spanish"]},{"title":"Finnish","type":"string","enum":["Finnish"]},{"title":"French","type":"string","enum":["French"]},{"title":"Hebrew","type":"string","enum":["Hebrew"]},{"title":"Hindi","type":"string","enum":["Hindi"]},{"title":"Hungarian","type":"string","enum":["Hungarian"]},{"title":"Indonesian","type":"string","enum":["Indonesian"]},{"title":"Italian","type":"string","enum":["Italian"]},{"title":"Japanese","type":"string","enum":["Japanese"]},{"title":"Korean","type":"string","enum":["Korean"]},{"title":"Dutch","type":"string","enum":["Dutch"]},{"title":"Norwegian","type":"string","enum":["Norwegian"]},{"title":"Polish","type":"string","enum":["Polish"]},{"title":"Portuguese","type":"string","enum":["Portuguese"]},{"title":"Romanian","type":"string","enum":["Romanian"]},{"title":"Russian","type":"string","enum":["Russian"]},{"title":"Slovak","type":"string","enum":["Slovak"]},{"title":"Swedish","type":"string","enum":["Swedish"]},{"title":"Tamil","type":"string","enum":["Tamil"]},{"title":"Thai","type":"string","enum":["Thai"]},{"title":"Turkish","type":"string","enum":["Turkish"]},{"title":"Chinese","type":"string","enum":["Chinese"]},{"title":"Ukrainian","type":"string","enum":["Ukrainian"]}]}},"required":["language"]}}},"required":true},"parameters":[{"schema":{"pattern":"^[a-z0-9]{24}$","title":"Dialog ID","type":"string"},"in":"path","name":"dialogId","required":true},{"schema":{"pattern":"^[a-z0-9]{24}$","title":"Message ID","type":"string"},"in":"path","name":"messageId","required":true}],"security":[{"providerSession":[]},{"clientSession":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"translate":{"type":"string"}},"required":["translate"]}}}},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}}},"/ai/providers/suggestions":{"post":{"summary":"Get suggested providers by name or issue","tags":["AI","Users"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"topic":{"minLength":1,"type":"string"}},"required":["topic"]}}},"required":true},"security":[{"apiKey":[]},{"providerSession":[]},{"clientSession":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"providers":{"type":"array","items":{"$ref":"#/components/schemas/QBUser"}}},"required":["providers"]}}}},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}}},"/appointments/{id}":{"get":{"summary":"Get appointment by id","tags":["Appointments"],"parameters":[{"schema":{"pattern":"^[a-z0-9]{24}$","type":"string"},"in":"path","name":"id","required":true,"description":"ID of the custom object. Generated automatically by the server after creation"}],"security":[{"apiKey":[]},{"providerSession":[]},{"clientSession":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QCAppointment"}}}},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}},"patch":{"summary":"Update appointment by id","tags":["Appointments"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","properties":{}},{"type":"object","properties":{"priority":{"minimum":0,"maximum":2,"description":"The priority of the appointment in the queue","type":"integer"},"provider_id":{"title":"User ID","description":"ID of the user. Generated automatically by the server after user creation","type":"integer"},"description":{"description":"Description of the appointment","type":"string"},"notes":{"description":"Notes for appointment","anyOf":[{"type":"null"},{"type":"string"}]},"conclusion":{"description":"Conclusions for appointments","anyOf":[{"type":"null"},{"type":"string"}]},"date_end":{"description":"End date of the appointment","anyOf":[{"type":"null"},{"format":"date-time","description":"Date in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format according to universal time. Format: `YYYY-MM-DDTHH:mm:ss.sssZ`.","type":"string"}]},"language":{"description":"Language of the appointment","anyOf":[{"type":"null"},{"type":"string"}]}}}]}}}},"parameters":[{"schema":{"pattern":"^[a-z0-9]{24}$","type":"string"},"in":"path","name":"id","required":true,"description":"ID of the custom object. Generated automatically by the server after creation"}],"security":[{"apiKey":[]},{"providerSession":[]},{"clientSession":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QCAppointment"}}}},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}}},"/users/{id}":{"delete":{"summary":"Delete user by id","tags":["Users"],"description":"Delete a user by ID. The user can only be deleted using the apiKey","parameters":[{"schema":{"title":"User ID","type":"integer"},"in":"path","name":"id","required":true,"description":"ID of the user. Generated automatically by the server after user creation"}],"security":[{"apiKey":[]}],"responses":{"204":{"description":"No content"},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}},"get":{"summary":"Get user by id","tags":["Users"],"parameters":[{"schema":{"title":"User ID","type":"integer"},"in":"path","name":"id","required":true,"description":"ID of the user. Generated automatically by the server after user creation"}],"security":[{"apiKey":[]},{"providerSession":[]},{"clientSession":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QBUser"}}}},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}}},"/users/client":{"post":{"summary":"Create client","tags":["Users"],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"type":"object","allOf":[{"type":"object","properties":{"full_name":{"description":"User's full name","minLength":3,"maxLength":60,"type":"string"},"email":{"format":"email","description":"User's email","type":"string"}},"required":["full_name","email"]},{"type":"object","properties":{"birthdate":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","title":"Date","description":"User's birthday. Format: yyyy-MM-dd","type":"string"},"gender":{"description":"User's gender","anyOf":[{"title":"male","type":"string","enum":["male"]},{"title":"female","type":"string","enum":["female"]}]},"address":{"description":"User's address","type":"string"},"language":{"description":"User's language","type":"string"}},"required":["birthdate","gender"]}]},{"type":"object","properties":{"password":{"description":"User's password","type":"string"}},"required":["password"]}]}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"session":{"$ref":"#/components/schemas/QBSession"},"user":{"$ref":"#/components/schemas/QBUser"}},"required":["session","user"]}}}},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}},"patch":{"summary":"Update client profile","tags":["Users"],"description":"Update a client profile. A user can be updated only by themselves or an account owner","requestBody":{"content":{"application/json":{"schema":{"title":"With password","anyOf":[{"type":"object","allOf":[{"type":"object","properties":{"full_name":{"description":"User's full name","minLength":3,"maxLength":60,"type":"string"},"email":{"format":"email","description":"User's email","type":"string"}},"required":["full_name","email"]},{"type":"object","properties":{"birthdate":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","title":"Date","description":"User's birthday. Format: yyyy-MM-dd","type":"string"},"gender":{"description":"User's gender","anyOf":[{"title":"male","type":"string","enum":["male"]},{"title":"female","type":"string","enum":["female"]}]},"address":{"description":"User's address","type":"string"},"language":{"description":"User's language","type":"string"}},"required":["birthdate","gender"]}],"title":"Without password"},{"title":"With password","allOf":[{"type":"object","allOf":[{"type":"object","properties":{"full_name":{"description":"User's full name","minLength":3,"maxLength":60,"type":"string"},"email":{"format":"email","description":"User's email","type":"string"}},"required":["full_name","email"]},{"type":"object","properties":{"birthdate":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","title":"Date","description":"User's birthday. Format: yyyy-MM-dd","type":"string"},"gender":{"description":"User's gender","anyOf":[{"title":"male","type":"string","enum":["male"]},{"title":"female","type":"string","enum":["female"]}]},"address":{"description":"User's address","type":"string"},"language":{"description":"User's language","type":"string"}},"required":["birthdate","gender"]}]},{"type":"object","properties":{"password":{"description":"User's new password. Field old_password must be set to update password","type":"string"},"old_password":{"description":"Old user password (required only if a new password is provided)","type":"string"}},"required":["password","old_password"]}]}]}}}},"security":[{"clientSession":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QBUser"}}}},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}}},"/users/client/{id}":{"patch":{"summary":"Update client by id","tags":["Users"],"description":"Update a specific client profile by ID using an apiKey","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"type":"object","allOf":[{"type":"object","properties":{"full_name":{"description":"User's full name","minLength":3,"maxLength":60,"type":"string"},"email":{"format":"email","description":"User's email","type":"string"}},"required":["full_name","email"]},{"type":"object","properties":{"birthdate":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","title":"Date","description":"User's birthday. Format: yyyy-MM-dd","type":"string"},"gender":{"description":"User's gender","anyOf":[{"title":"male","type":"string","enum":["male"]},{"title":"female","type":"string","enum":["female"]}]},"address":{"description":"User's address","type":"string"},"language":{"description":"User's language","type":"string"}},"required":["birthdate","gender"]}]},{"type":"object","properties":{"password":{"description":"User's password","type":"string"}}}]}}}},"parameters":[{"schema":{"title":"User ID","type":"integer"},"in":"path","name":"id","required":true,"description":"ID of the user. Generated automatically by the server after user creation"}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QBUser"}}}},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}}},"/users/guest-client":{"post":{"summary":"Create Guest client","tags":["Users"],"description":"Creates a new guest client","requestBody":{"content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","properties":{"full_name":{"description":"User's full name","minLength":3,"maxLength":60,"type":"string"}},"required":["full_name"]},{"type":"object","properties":{}}]}}}},"security":[{"apiKey":[]},{"providerSession":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"session":{"$ref":"#/components/schemas/QBSession"},"user":{"$ref":"#/components/schemas/QBUser"}},"required":["session","user"]}}}},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}}},"/users/profile":{"get":{"summary":"Get user profile","tags":["Users"],"security":[{"providerSession":[]},{"clientSession":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QBUser"}}}},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}}},"/users/provider":{"post":{"summary":"Create provider","tags":["Users"],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"type":"object","allOf":[{"type":"object","properties":{"full_name":{"description":"User's full name","minLength":3,"maxLength":60,"type":"string"},"email":{"format":"email","description":"User's email","type":"string"}},"required":["full_name","email"]},{"type":"object","properties":{"profession":{"description":"User's profession","type":"string"},"description":{"description":"Description of the user's profession","type":"string"},"language":{"description":"User's language","type":"string"}},"required":["profession"]}]},{"type":"object","properties":{"password":{"description":"User's password","type":"string"}},"required":["password"]}]}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"session":{"$ref":"#/components/schemas/QBSession"},"user":{"$ref":"#/components/schemas/QBUser"}},"required":["session","user"]}}}},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}},"patch":{"summary":"Update provider profile","tags":["Users"],"description":"Update a provider profile. A user can be updated only by themselves or an account owner","requestBody":{"content":{"application/json":{"schema":{"title":"With password","anyOf":[{"type":"object","allOf":[{"type":"object","properties":{"full_name":{"description":"User's full name","minLength":3,"maxLength":60,"type":"string"},"email":{"format":"email","description":"User's email","type":"string"}}},{"type":"object","properties":{"profession":{"description":"User's profession","type":"string"},"description":{"description":"Description of the user's profession","type":"string"},"language":{"description":"User's language","type":"string"}}}],"title":"Without password"},{"title":"With password","allOf":[{"type":"object","allOf":[{"type":"object","properties":{"full_name":{"description":"User's full name","minLength":3,"maxLength":60,"type":"string"},"email":{"format":"email","description":"User's email","type":"string"}}},{"type":"object","properties":{"profession":{"description":"User's profession","type":"string"},"description":{"description":"Description of the user's profession","type":"string"},"language":{"description":"User's language","type":"string"}}}]},{"type":"object","properties":{"password":{"description":"User's new password. Field old_password must be set to update password","type":"string"},"old_password":{"description":"Old user password (required only if a new password is provided)","type":"string"}}}]}]}}}},"security":[{"providerSession":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QBUser"}}}},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}}},"/users/provider/{id}":{"patch":{"summary":"Update provider by id","tags":["Users"],"description":"Update a specific provider profile by ID using an apiKey","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"type":"object","allOf":[{"type":"object","properties":{"full_name":{"description":"User's full name","minLength":3,"maxLength":60,"type":"string"},"email":{"format":"email","description":"User's email","type":"string"}},"required":["full_name","email"]},{"type":"object","properties":{"profession":{"description":"User's profession","type":"string"},"description":{"description":"Description of the user's profession","type":"string"},"language":{"description":"User's language","type":"string"}},"required":["profession"]}]},{"type":"object","properties":{"password":{"description":"User's password","type":"string"}}}]}}}},"parameters":[{"schema":{"title":"User ID","type":"integer"},"in":"path","name":"id","required":true,"description":"ID of the user. Generated automatically by the server after user creation"}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QBUser"}}}},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}}},"/appointments/{id}/records":{"post":{"summary":"Create a record for the appointment","tags":["Appointments"],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"audio":{"title":"File","description":"This value represents a file submitted using a form with encoding set to `multipart/form-data`.","type":"object","properties":{"buffer":{"description":"Record buffer"},"filename":{"description":"Record filename","type":"string"},"encoding":{"description":"Record encoding","type":"string"},"mimetype":{"description":"Record mimetype","type":"string"}},"required":["buffer","filename","encoding","mimetype"]},"video":{"title":"File","description":"This value represents a file submitted using a form with encoding set to `multipart/form-data`.","type":"object","properties":{"buffer":{"description":"Record buffer"},"filename":{"description":"Record filename","type":"string"},"encoding":{"description":"Record encoding","type":"string"},"mimetype":{"description":"Record mimetype","type":"string"}},"required":["buffer","filename","encoding","mimetype"]}},"required":["audio"]}}},"required":true},"parameters":[{"schema":{"pattern":"^[a-z0-9]{24}$","type":"string"},"in":"path","name":"id","required":true,"description":"ID of the custom object. Generated automatically by the server after creation"}],"security":[{"apiKey":[]},{"providerSession":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QCRecord"}}}},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}},"get":{"summary":"Get a list of records for the appointment","tags":["Appointments"],"parameters":[{"schema":{"default":1000,"minimum":1,"type":"integer"},"in":"query","name":"limit","required":false,"description":"Limit search results to N records. Useful for pagination"},{"schema":{"default":0,"minimum":0,"type":"integer"},"in":"query","name":"skip","required":false,"description":"Skip N records in search results. Useful for pagination."},{"schema":{"anyOf":[{"title":"_id","type":"string","enum":["_id"]},{"title":"created_at","type":"string","enum":["created_at"]},{"title":"updated_at","type":"string","enum":["updated_at"]},{"title":"File uid","type":"string","enum":["uid"]},{"title":"File name","type":"string","enum":["name"]},{"title":"transcription","type":"string","enum":["transcription"]},{"title":"summary","type":"string","enum":["summary"]},{"title":"actions","type":"string","enum":["actions"]},{"title":"appointment_id","type":"string","enum":["appointment_id"]}]},"in":"query","name":"sort_desc","required":false,"description":"Returns records with sorting in ascending or descending order"},{"schema":{"anyOf":[{"title":"_id","type":"string","enum":["_id"]},{"title":"created_at","type":"string","enum":["created_at"]},{"title":"updated_at","type":"string","enum":["updated_at"]},{"title":"File uid","type":"string","enum":["uid"]},{"title":"File name","type":"string","enum":["name"]},{"title":"transcription","type":"string","enum":["transcription"]},{"title":"summary","type":"string","enum":["summary"]},{"title":"actions","type":"string","enum":["actions"]},{"title":"appointment_id","type":"string","enum":["appointment_id"]}]},"in":"query","name":"sort_asc","required":false,"description":"Returns records with sorting in ascending or descending order"},{"schema":{"pattern":"^[a-z0-9]{24}$","type":"string"},"in":"path","name":"id","required":true,"description":"ID of the custom object. Generated automatically by the server after creation"}],"security":[{"apiKey":[]},{"providerSession":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/QCRecord"}},"limit":{"default":1000,"minimum":1,"description":"Limit search results to N records. Useful for pagination","type":"integer"},"skip":{"default":0,"minimum":0,"description":"Skip N records in search results. Useful for pagination.","type":"integer"}},"required":["items","limit","skip"]}}}},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}}},"/appointments/{id}/records/{recordId}":{"get":{"summary":"Get a record for the appointment","tags":["Appointments"],"parameters":[{"schema":{"pattern":"^[a-z0-9]{24}$","type":"string"},"in":"path","name":"id","required":true,"description":"ID of the custom object. Generated automatically by the server after creation"},{"schema":{"pattern":"^[a-z0-9]{24}$","type":"string"},"in":"path","name":"recordId","required":true,"description":"ID of the custom object. Generated automatically by the server after creation"}],"security":[{"apiKey":[]},{"providerSession":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QCRecord"}}}},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}}},"/users/{id}/avatar":{"delete":{"summary":"Delete user avatar","tags":["Users"],"parameters":[{"schema":{"title":"User ID","type":"integer"},"in":"path","name":"id","required":true,"description":"ID of the user. Generated automatically by the server after user creation"}],"security":[{"apiKey":[]}],"responses":{"204":{"description":"No content"},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}},"get":{"summary":"Get user avatar","tags":["Users"],"parameters":[{"schema":{"title":"User ID","type":"integer"},"in":"path","name":"id","required":true,"description":"ID of the user. Generated automatically by the server after user creation"}],"security":[{"apiKey":[]},{"providerSession":[]},{"clientSession":[]}],"responses":{"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}},"put":{"summary":"Upload user avatar","tags":["Users"],"description":"Delete a user by ID. The user can only be deleted using the apiKey","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"title":"File","description":"This value represents a file submitted using a form with encoding set to `multipart/form-data`.","type":"object","properties":{"buffer":{"description":"Record buffer"},"filename":{"description":"Record filename","type":"string"},"encoding":{"description":"Record encoding","type":"string"},"mimetype":{"description":"Record mimetype","type":"string"}},"required":["buffer","filename","encoding","mimetype"]}},"required":["file"]}}},"required":true},"parameters":[{"schema":{"title":"User ID","type":"integer"},"in":"path","name":"id","required":true,"description":"ID of the user. Generated automatically by the server after user creation"}],"security":[{"apiKey":[]}],"responses":{"204":{"description":"No content"},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}}},"/users/profile/avatar":{"delete":{"summary":"Delete user avatar","tags":["Users"],"security":[{"providerSession":[]},{"clientSession":[]}],"responses":{"204":{"description":"No content"},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}},"get":{"summary":"Get user avatar","tags":["Users"],"security":[{"providerSession":[]},{"clientSession":[]}],"responses":{"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}},"put":{"summary":"Upload user avatar","tags":["Users"],"description":"Delete a user by ID. The user can only be deleted using the apiKey","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"title":"File","description":"This value represents a file submitted using a form with encoding set to `multipart/form-data`.","type":"object","properties":{"buffer":{"description":"Record buffer"},"filename":{"description":"Record filename","type":"string"},"encoding":{"description":"Record encoding","type":"string"},"mimetype":{"description":"Record mimetype","type":"string"}},"required":["buffer","filename","encoding","mimetype"]}},"required":["file"]}}},"required":true},"security":[{"providerSession":[]},{"clientSession":[]}],"responses":{"204":{"description":"No content"},"4XX":{"description":"Client error responses","content":{"application/json":{"schema":{"description":"Client error responses","$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server error responses","content":{"application/json":{"schema":{"description":"Server error responses","$ref":"#/components/schemas/Error"}}}}}}}},"tags":[]}