{
    "openapi": "3.0.0",
    "info": {
        "title": "Digitail API",
        "description": "Digitail API",
        "contact": {
            "email": "developer@digitail.io"
        },
        "license": {
            "name": "Apache 2.0",
            "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
        },
        "version": "1.0.0"
    },
    "servers": [
        {
            "url": "https://developer.digitail.io",
            "description": "Sandbox server (uses test data)"
        },
        {
            "url": "https://vet.digitail.io",
            "description": "Production server (uses live data)"
        }
    ],
    "paths": {
        "/api/v1/auth/me": {
            "get": {
                "tags": [
                    "Authentication"
                ],
                "summary": "Get the logged-in User (Vet)",
                "description": "Get the logged-in User (Vet)",
                "parameters": [
                    {
                        "name": "include[]",
                        "in": "query",
                        "description": "Additional info to include. You can use multiple, comma separated.  Possible options: clinic,clinic.chatUser,multipleClinic,employee,employee.chatUser",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "clinic",
                                    "clinic.chatUser",
                                    "multipleClinic",
                                    "employee",
                                    "employee.chatUser"
                                ]
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "Me",
                                            "description": "General information about the logged in user.",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "first_name": {
                                                    "type": "string",
                                                    "example": "Sarah"
                                                },
                                                "last_name": {
                                                    "type": "string",
                                                    "example": "Connolly"
                                                },
                                                "full_name": {
                                                    "type": "string",
                                                    "example": "Sarah Connolly"
                                                },
                                                "email": {
                                                    "type": "string",
                                                    "example": "vet@example.com"
                                                },
                                                "name_with_title": {
                                                    "type": "string",
                                                    "example": "DVM Sarah Connolly"
                                                },
                                                "video_link": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "profile_picture": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": "https://dev-1-public-digitail.s3.eu-central-1.amazonaws.com/ionut/uploads/KXy8Rlv2vluiZYqwRCy2"
                                                },
                                                "employee": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer",
                                                            "example": 2
                                                        },
                                                        "chat_user": {
                                                            "$ref": "#/paths/~1api~1v1~1auth~1me/get/responses/200/content/application~1json/schema/properties/data/properties/clinic/properties/chat_user"
                                                        }
                                                    }
                                                },
                                                "clinic": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer",
                                                            "example": 766
                                                        },
                                                        "name": {
                                                            "type": "string",
                                                            "example": "Animal Hospital of All Pets"
                                                        },
                                                        "logo": {
                                                            "type": "string",
                                                            "example": "https://dev-1-public-digitail.s3.eu-central-1.amazonaws.com/ionut/uploads/KXy8Rlv2vluiZYqwRCy2"
                                                        },
                                                        "preferences": {
                                                            "type": "object",
                                                            "properties": {
                                                                "language_locale": {
                                                                    "type": "string",
                                                                    "example": "en-us"
                                                                },
                                                                "timezone": {
                                                                    "type": "string",
                                                                    "example": "America/New_York"
                                                                },
                                                                "date_format": {
                                                                    "type": "string",
                                                                    "example": "m-d-Y"
                                                                },
                                                                "datetime_format": {
                                                                    "type": "string",
                                                                    "example": "m-d-Y g:i A"
                                                                },
                                                                "discount_reason_required": {
                                                                    "type": "string",
                                                                    "nullable": true,
                                                                    "example": null
                                                                }
                                                            }
                                                        },
                                                        "hasClinicLegalInfo": {
                                                            "type": "boolean",
                                                            "example": true
                                                        },
                                                        "hasOnlinePaymentEnabled": {
                                                            "type": "boolean",
                                                            "example": true
                                                        },
                                                        "chat_user": {
                                                            "type": "object",
                                                            "title": "ChatUser",
                                                            "description": "User Data for CometChat",
                                                            "properties": {
                                                                "name": {
                                                                    "type": "string",
                                                                    "example": "DVM Sarah Connolly"
                                                                },
                                                                "uid": {
                                                                    "type": "string",
                                                                    "example": "e58ed763-928c-4155-bee9-fdbaaadc15f3"
                                                                },
                                                                "is_active": {
                                                                    "type": "boolean",
                                                                    "description": "If the user is active in comet-chat",
                                                                    "example": true
                                                                },
                                                                "is_verified": {
                                                                    "type": "boolean",
                                                                    "description": "If the user has a verified comet-chat account",
                                                                    "example": true
                                                                },
                                                                "user": {
                                                                    "type": "object",
                                                                    "description": "One of the following: Vet, Clinic, PetParent"
                                                                }
                                                            }
                                                        },
                                                        "care_credit_merchant": {
                                                            "type": "object",
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer",
                                                                    "example": 1
                                                                },
                                                                "is_active": {
                                                                    "type": "boolean",
                                                                    "example": true
                                                                }
                                                            }
                                                        },
                                                        "default_payment_provider_account": {
                                                            "type": "object",
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer",
                                                                    "example": 1
                                                                },
                                                                "provider": {
                                                                    "type": "string",
                                                                    "enum": [
                                                                        "dsp",
                                                                        "stripe_standard",
                                                                        "scratchpay",
                                                                        "paysafe"
                                                                    ]
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/appointments": {
            "get": {
                "tags": [
                    "Appointments"
                ],
                "summary": "Get all Appointments",
                "description": "Permissions needed: VIEW_APPOINTMENTS\nGet all appointments in a given interval for a given clinic and vet\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1files/get/parameters/6"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/1"
                    },
                    {
                        "name": "filter[patient_id]",
                        "in": "query",
                        "description": "Ids of the patients that are related to the entity",
                        "style": "form",
                        "explode": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    },
                    {
                        "name": "filter[visit_type_id]",
                        "description": "Filter by visit type ID",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[date_before]",
                        "in": "query",
                        "description": "Date before(Y-m-d)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[date_after]",
                        "in": "query",
                        "description": "Date after(Y-m-d)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[statuses]",
                        "in": "query",
                        "description": "Statuses of appointments to fetch. Options `0` - Pending `1` - Pending Client Approval `2` - Pending Clinic Approval `3` - Rescheduled Clinic Approval `4` - Rescheduled Client Approval `5` - Confirmed `6` - Canceled By Client `7` - Canceled By Clinic' `8` - Automatically Created' `9` - No Show\n",
                        "required": false,
                        "explode": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    },
                    {
                        "name": "filter[patient.owners.id]",
                        "in": "query",
                        "description": "Pet Parent ID",
                        "required": false,
                        "style": "form",
                        "explode": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    },
                    {
                        "name": "filter[date_between]",
                        "in": "query",
                        "description": "Dates Between (start_date, end_date), format: YYYY-MM-DD",
                        "required": false,
                        "style": "form",
                        "explode": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    {
                        "name": "filter[last_fetched]",
                        "in": "query",
                        "description": "Last Appointment Fetched",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include. You can use multiple, comma separated. Options:   patient,patient.species,patient.breed,patient.crossBreed,patient.owners,patient.owners.appDownloadNotification,patient.owners.clients,room,event,\nservices (service-packages), clinic,clinic.rooms,vet,vet.vetRolesAll,requests,notes,consentForms,consentForms.printableFile,visitType,visitType.tailsIntakeRule",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Sort by. You can use multiple, comma separated. Options: datetime_start_utc",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1tags/get/parameters/5"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/11"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1api~1v1~1appointments/post/responses/200/content/application~1json/schema/properties/data"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "post": {
                "tags": [
                    "Appointments"
                ],
                "summary": "Create an Appointment",
                "description": "Permissions needed: CREATE_APPOINTMENTS\n<strong>Create Appointment</strong> <br/> <br/>  Start Date and End Date is set as is format(2022-10-20 10:09:00), no alterations are done, so queries will return the exact date and time that was set. <br/> - Status enum is visible under the appointments change status method <br/> - record_id, room_id and examination_id must be set as null if not used.\n",
                "parameters": [
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include. You can use multiple, comma separated. Options:   patient,patient.species,patient.breed,patient.crossBreed,patient.owners,patient.owners.appDownloadNotification,patient.owners.clients,room,event,\nclinic,clinic.rooms,vet,vet.vetRolesAll,requests,notes,visitType,paymentDeposits.paymentLinks",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "title": "AppointmentRequestBodyStore",
                                "description": "Appointment Create/Update Request Body",
                                "required": [
                                    "clinic_id",
                                    "vet_id",
                                    "patient_id",
                                    "visit_type_id",
                                    "datetime_start_utc",
                                    "datetime_end_utc"
                                ],
                                "properties": {
                                    "clinic_id": {
                                        "description": "Clinic Id",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "vet_id": {
                                        "description": "Vet Id",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "patient_id": {
                                        "description": "Pet id",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "visit_type_id": {
                                        "description": "Id of the VisitType",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "observations": {
                                        "description": "Observations",
                                        "type": "string",
                                        "example": ""
                                    },
                                    "status": {
                                        "type": "integer",
                                        "enum": [
                                            1,
                                            2,
                                            3,
                                            4,
                                            5,
                                            6,
                                            7,
                                            8,
                                            9
                                        ],
                                        "example": 1,
                                        "description": "`1` - Pending Client Approval `2` - Pending Clinic Approval `3` - Rescheduled Clinic Approval `4` - Rescheduled Client Approval `5` - Confirmed `6` - Canceled By Client `7` - Canceled By Clinic' `8` - Automatically Created' `9` - No Show\n"
                                    },
                                    "notification_message": {
                                        "description": "Notification message",
                                        "type": "string",
                                        "example": ""
                                    },
                                    "reminder_notifications": {
                                        "description": "Reminder notifications",
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "title": "ReminderNotification",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "period": {
                                                    "type": "integer",
                                                    "example": 2,
                                                    "description": "Reminder will be sent X days/weeks/months (period_type) before the appointment"
                                                },
                                                "period_type": {
                                                    "type": "integer",
                                                    "enum": [
                                                        0,
                                                        1,
                                                        2
                                                    ],
                                                    "example": 2,
                                                    "description": "* `0` - Day, * `1` - Week, * `2` - Month,\n"
                                                },
                                                "notification_type": {
                                                    "type": "integer",
                                                    "enum": [
                                                        0,
                                                        1,
                                                        2
                                                    ],
                                                    "example": 1,
                                                    "description": "* `0` - Upcoming Reminder, * `1` - Recommended Reminder, * `2` - Product Reminder,\n"
                                                }
                                            }
                                        },
                                        "example": [
                                            {
                                                "id": 1,
                                                "period": 1,
                                                "periodType": 0,
                                                "notificationType": 0
                                            },
                                            {
                                                "id": 2,
                                                "period": 1,
                                                "periodType": 1,
                                                "notificationType": 0
                                            }
                                        ]
                                    },
                                    "record_id": {
                                        "description": "Record ID - set null if not used",
                                        "type": "integer",
                                        "nullable": true,
                                        "example": null
                                    },
                                    "room_id": {
                                        "description": "Room ID - set null if not used",
                                        "type": "integer",
                                        "nullable": true,
                                        "example": null
                                    },
                                    "examination_id": {
                                        "description": "Examination ID - set null if not used",
                                        "type": "integer",
                                        "nullable": true,
                                        "example": null
                                    },
                                    "printable_file_ids": {
                                        "description": "Consent forms",
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "example": [
                                            1,
                                            2
                                        ]
                                    },
                                    "video_link": {
                                        "nullable": true,
                                        "description": "Video link",
                                        "type": "string",
                                        "example": null
                                    },
                                    "datetime_start_utc": {
                                        "description": "Start Date in UTC ISO Zulu format",
                                        "type": "string",
                                        "example": "2022-06-16T13:42:38Z"
                                    },
                                    "datetime_end_utc": {
                                        "description": "End Date in UTC ISO Zulu format",
                                        "type": "string",
                                        "example": "2022-06-16T14:42:38Z"
                                    },
                                    "service_package_ids": {
                                        "description": "Service package ids",
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "example": [
                                            1,
                                            2
                                        ]
                                    },
                                    "user_note": {
                                        "description": "Notes introduced by the pet parent",
                                        "type": "string",
                                        "example": "Daisy has not been feeling well"
                                    },
                                    "recurrence": {
                                        "description": "recurrence defined by RFC 5545",
                                        "type": "string",
                                        "nullable": true,
                                        "example": "FREQ=DAILY;COUNT=10"
                                    },
                                    "source": {
                                        "type": "integer",
                                        "description": "`0` - Added by clinic `1` - Requested via Web `2` - Requested via App\n"
                                    },
                                    "requires_payment_deposit": {
                                        "type": "boolean"
                                    },
                                    "pet_parent": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "email": {
                                                "type": "string"
                                            },
                                            "send_email": {
                                                "type": "boolean"
                                            },
                                            "name": {
                                                "type": "string"
                                            },
                                            "last_name": {
                                                "type": "string"
                                            },
                                            "phone": {
                                                "type": "string",
                                                "description": "Phone number in E.164 format",
                                                "example": "+16175551212"
                                            },
                                            "send_sms": {
                                                "type": "boolean"
                                            },
                                            "address": {
                                                "type": "string"
                                            },
                                            "address_2": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "pet": {
                                        "type": "object",
                                        "properties": {
                                            "nickname": {
                                                "type": "string"
                                            },
                                            "species_id": {
                                                "type": "integer"
                                            },
                                            "breed_id": {
                                                "type": "integer"
                                            },
                                            "birthday_is_estimated": {
                                                "type": "boolean"
                                            },
                                            "birthdate": {
                                                "type": "string",
                                                "example": "1990-01-01"
                                            },
                                            "gender": {
                                                "type": "string",
                                                "enum": [
                                                    "male",
                                                    "female",
                                                    "unknown"
                                                ]
                                            },
                                            "hormonal_status": {
                                                "type": "integer",
                                                "enum": [
                                                    0,
                                                    1,
                                                    2
                                                ]
                                            }
                                        }
                                    },
                                    "drop_off": {
                                        "type": "object",
                                        "nullable": true,
                                        "description": "Drop-off scheduling data. Required when visit type has drop-off enabled.",
                                        "properties": {
                                            "time": {
                                                "type": "string",
                                                "description": "Drop-off time in HH:mm format",
                                                "example": "09:00"
                                            },
                                            "vet_id": {
                                                "type": "integer",
                                                "description": "Vet ID who handles the drop-off",
                                                "example": 1
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "Appointment",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "event_id": {
                                                    "type": "integer",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "clinic_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "room_id": {
                                                    "type": "integer",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "guest": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "pet_id": {
                                                    "type": "integer",
                                                    "nullable": true,
                                                    "example": 1
                                                },
                                                "record_id": {
                                                    "type": "integer",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "status": {
                                                    "type": "string",
                                                    "enum": [
                                                        "1",
                                                        "2",
                                                        "3",
                                                        "4",
                                                        "5",
                                                        "6",
                                                        "7",
                                                        "8",
                                                        "9"
                                                    ],
                                                    "example": "1",
                                                    "description": "`1` - Pending Client Approval `2` - Pending Clinic Approval `3` - Rescheduled Clinic Approval `4` - Rescheduled Client Approval `5` - Confirmed `6` - Canceled By Client `7` - Canceled By Clinic' `8` - Automatically Created' `9` - No Show\n"
                                                },
                                                "datetime": {
                                                    "type": "string",
                                                    "example": "2022-06-16 15:12:38"
                                                },
                                                "end_datetime": {
                                                    "type": "string",
                                                    "example": "2022-06-16 15:42:38"
                                                },
                                                "datetime_start_utc": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "example": "2023-12-01T09:00:00.000000Z"
                                                },
                                                "datetime_end_utc": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "example": "2023-12-01T10:00:00.000000Z"
                                                },
                                                "observations": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": ""
                                                },
                                                "user_note": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "pet_name": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "owner_name": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "patient": {
                                                    "$ref": "#/paths/~1api~1v1~1pets/post/responses/201/content/application~1json/schema/properties/data"
                                                },
                                                "room": {
                                                    "$ref": "#/paths/~1api~1v1~1clinic~1%7Bid%7D/get/responses/200/content/application~1json/schema/properties/data/properties/rooms/items",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "event": {
                                                    "nullable": true,
                                                    "example": null,
                                                    "type": "object",
                                                    "title": "Event",
                                                    "description": "A scheduled event in a clinic. Viewable on the calendar.",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer",
                                                            "example": 1
                                                        },
                                                        "address_id": {
                                                            "type": "integer",
                                                            "example": 1
                                                        },
                                                        "clinic_id": {
                                                            "type": "integer",
                                                            "example": 1
                                                        },
                                                        "capacity": {
                                                            "type": "integer",
                                                            "example": 25
                                                        },
                                                        "date": {
                                                            "type": "string",
                                                            "format": "date-time",
                                                            "example": "2022-06-16 15:12:38"
                                                        },
                                                        "name": {
                                                            "type": "string",
                                                            "example": "Event Name"
                                                        },
                                                        "preferences": {
                                                            "type": "string",
                                                            "enum": [
                                                                "capacity-based",
                                                                "schedule-based"
                                                            ]
                                                        },
                                                        "appointments_number": {
                                                            "type": "integer",
                                                            "example": 5
                                                        },
                                                        "visit_types": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/paths/~1api~1v1~1records/post/responses/201/content/application~1json/schema/properties/data/properties/visit_types/items"
                                                            }
                                                        }
                                                    }
                                                },
                                                "vet": {
                                                    "$ref": "#/paths/~1api~1v1~1vets~1%7Bid%7D/get/responses/200/content/application~1json/schema/properties/data",
                                                    "example": {
                                                        "id": 1,
                                                        "first_name": "Serena Heaney",
                                                        "last_name": "Oren Hettinger",
                                                        "full_name": "Serena Heaney Oren Hettinger",
                                                        "name_with_title": "Serena Heaney Oren Hettinger",
                                                        "avatar": "http://digitail.test/images/profilepic.jpg",
                                                        "job_title": null,
                                                        "active": true
                                                    }
                                                },
                                                "owner_email": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "owner_phone": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "reminder_notifications": {
                                                    "type": "object",
                                                    "properties": {
                                                        "items": {
                                                            "$ref": "#/paths/~1api~1v1~1appointments/post/requestBody/content/application~1json/schema/properties/reminder_notifications/items"
                                                        }
                                                    },
                                                    "example": [
                                                        {
                                                            "id": 1,
                                                            "period": 1,
                                                            "periodType": 0,
                                                            "notificationType": 0
                                                        },
                                                        {
                                                            "id": 2,
                                                            "period": 1,
                                                            "periodType": 1,
                                                            "notificationType": 0
                                                        }
                                                    ]
                                                },
                                                "newRequests": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object"
                                                    },
                                                    "example": []
                                                },
                                                "consentForms": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object"
                                                    },
                                                    "example": []
                                                },
                                                "video_link": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": "https://example.com/1234235345.mp4"
                                                },
                                                "notification_message": {
                                                    "type": "string"
                                                },
                                                "cancellation_reason": {
                                                    "type": "string",
                                                    "nullable": true
                                                },
                                                "recurrence": {
                                                    "description": "recurrence defined by RFC 5545",
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": "FREQ=DAILY;COUNT=10"
                                                },
                                                "has_google_cal_error": {
                                                    "type": "boolean",
                                                    "nullable": true
                                                },
                                                "duration": {
                                                    "type": "integer"
                                                },
                                                "occasion": {
                                                    "type": "string",
                                                    "nullable": true
                                                },
                                                "token": {
                                                    "type": "string"
                                                },
                                                "visit_type_id": {
                                                    "type": "integer",
                                                    "nullable": true
                                                },
                                                "visit_type": {
                                                    "nullable": true,
                                                    "$ref": "#/paths/~1api~1v1~1records/post/responses/201/content/application~1json/schema/properties/data/properties/visit_types/items"
                                                },
                                                "last_confirmed_at": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "nullable": true,
                                                    "example": "2023-12-01T09:00:00.000000Z"
                                                },
                                                "confirmed_by": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "enum": [
                                                        "client",
                                                        "staff"
                                                    ],
                                                    "example": "client"
                                                },
                                                "confirmation_source": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "enum": [
                                                        "phone",
                                                        "sms_reminder",
                                                        "email_reminder",
                                                        "pet_portal",
                                                        "public_calendar",
                                                        "crm"
                                                    ],
                                                    "example": "sms_reminder"
                                                },
                                                "reconfirmed": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "is_reschedulable": {
                                                    "type": "boolean",
                                                    "nullable": true
                                                },
                                                "is_cancelable": {
                                                    "type": "boolean",
                                                    "nullable": true
                                                },
                                                "drop_off": {
                                                    "type": "object",
                                                    "nullable": true,
                                                    "description": "Drop-off scheduling data. Present when dropOff is included.",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer",
                                                            "example": 1
                                                        },
                                                        "time": {
                                                            "type": "string",
                                                            "description": "Drop-off time in HH:mm format",
                                                            "example": "09:00"
                                                        },
                                                        "vet_id": {
                                                            "type": "integer",
                                                            "example": 1
                                                        },
                                                        "appointment_id": {
                                                            "type": "integer",
                                                            "example": 1
                                                        },
                                                        "vet": {
                                                            "type": "object",
                                                            "nullable": true,
                                                            "description": "Vet resource, present when dropOff.vet is included"
                                                        },
                                                        "datetime": {
                                                            "type": "string",
                                                            "nullable": true,
                                                            "description": "Full UTC datetime computed from appointment date + drop-off time",
                                                            "example": "2023-12-01T09:00:00Z"
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    }
                }
            }
        },
        "/api/v1/appointments/{id}": {
            "get": {
                "tags": [
                    "Appointments"
                ],
                "summary": "Retrieve an Appointment",
                "description": "Permissions needed: VIEW_APPOINTMENTS\nGet an individual appointment by id\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include. You can use multiple, comma separated. Options:   patient,patient.species,patient.breed,patient.crossBreed,patient.owners,patient.owners.appDownloadNotification,patient.owners.clients,room,event,\nclinic,clinic.rooms,vet,vet.vetRolesAll,requests,notes,visitType,visitType.tailsIntakeRule",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/paths/~1api~1v1~1appointments/post/responses/200/content/application~1json/schema/properties/data"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "put": {
                "tags": [
                    "Appointments"
                ],
                "summary": "Update an Appointment",
                "description": "Permissions needed: EDIT_APPOINTMENTS\nUpdate a singular a appointment. Cant do partial updates of resource\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include. You can use multiple, comma separated. Options:   patient,patient.species,patient.breed,patient.crossBreed,patient.owners,patient.owners.appDownloadNotification,patient.owners.clients,room,event,\nclinic,clinic.rooms,vet,vet.vetRolesAll,requests,notes,visitType",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "title": "AppointmentRequestBodyUpdate",
                                "description": "Appointment Create/Update Request Body",
                                "properties": {
                                    "clinic_id": {
                                        "description": "Clinic Id.",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "vet_id": {
                                        "description": "Vet Id.",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "patient_id": {
                                        "description": "Pet id",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "visit_type_id": {
                                        "description": "Id of the VisitType",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "datetime_start_utc": {
                                        "description": "Start Date in UTC ISO Zulu format",
                                        "type": "string",
                                        "example": "2022-06-16T13:42:38Z"
                                    },
                                    "datetime_end_utc": {
                                        "description": "End Date in UTC ISO Zulu format",
                                        "type": "string",
                                        "example": "2022-06-16T14:42:38Z"
                                    },
                                    "observations": {
                                        "description": "Observations",
                                        "type": "string",
                                        "example": ""
                                    },
                                    "status": {
                                        "type": "integer",
                                        "enum": [
                                            1,
                                            2,
                                            3,
                                            4,
                                            5,
                                            6,
                                            7,
                                            8,
                                            9
                                        ],
                                        "example": 1,
                                        "description": "`1` - Pending Client Approval `2` - Pending Clinic Approval `3` - Rescheduled Clinic Approval `4` - Rescheduled Client Approval `5` - Confirmed `6` - Canceled By Client `7` - Canceled By Clinic' `8` - Automatically Created' `9` - No Show\n"
                                    },
                                    "notification_message": {
                                        "description": "Notification message",
                                        "type": "string",
                                        "example": ""
                                    },
                                    "reminder_notifications": {
                                        "description": "Reminder notifications",
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/paths/~1api~1v1~1appointments/post/requestBody/content/application~1json/schema/properties/reminder_notifications/items"
                                        },
                                        "example": [
                                            {
                                                "id": 1,
                                                "period": 1,
                                                "periodType": 0,
                                                "notificationType": 0
                                            },
                                            {
                                                "id": 2,
                                                "period": 1,
                                                "periodType": 1,
                                                "notificationType": 0
                                            }
                                        ]
                                    },
                                    "record_id": {
                                        "description": "Record ID - set null if not used",
                                        "type": "integer",
                                        "nullable": true,
                                        "example": null
                                    },
                                    "room_id": {
                                        "description": "Room ID - set null if not used",
                                        "type": "integer",
                                        "nullable": true,
                                        "example": null
                                    },
                                    "examination_id": {
                                        "description": "Examination ID - set null if not used",
                                        "type": "integer",
                                        "nullable": true,
                                        "example": null
                                    },
                                    "printable_file_ids": {
                                        "description": "Consent forms",
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "example": [
                                            1,
                                            2
                                        ]
                                    },
                                    "video_link": {
                                        "nullable": true,
                                        "description": "Video link",
                                        "type": "string",
                                        "example": null
                                    },
                                    "user_note": {
                                        "description": "Notes introduced by the pet parent",
                                        "type": "string",
                                        "example": "Daisy has not been feeling well"
                                    },
                                    "recurrence": {
                                        "description": "recurrence defined by RFC 5545",
                                        "type": "string",
                                        "nullable": true,
                                        "example": "FREQ=DAILY;COUNT=10"
                                    },
                                    "recurrence_update_mode": {
                                        "description": "Recurrence update mode",
                                        "type": "string",
                                        "enum": [
                                            "this",
                                            "this_and_following",
                                            "all"
                                        ]
                                    },
                                    "requires_payment_deposit": {
                                        "type": "boolean"
                                    },
                                    "drop_off": {
                                        "type": "object",
                                        "nullable": true,
                                        "description": "Drop-off scheduling data. Required when visit type has drop-off enabled.",
                                        "properties": {
                                            "time": {
                                                "type": "string",
                                                "description": "Drop-off time in HH:mm format",
                                                "example": "09:00"
                                            },
                                            "vet_id": {
                                                "type": "integer",
                                                "description": "Vet ID who handles the drop-off",
                                                "example": 1
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/paths/~1api~1v1~1appointments/post/responses/200/content/application~1json/schema/properties/data"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    }
                }
            }
        },
        "/api/v1/appointment/{id}/change-status": {
            "put": {
                "tags": [
                    "Appointments"
                ],
                "summary": "Change Appointment status",
                "description": "Permissions needed: EDIT_APPOINTMENTS\nShorthand version of appointment update endpoint for changing just status.\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "status": {
                                        "type": "integer",
                                        "enum": [
                                            1,
                                            2,
                                            3,
                                            4,
                                            5,
                                            6,
                                            7,
                                            8,
                                            9
                                        ],
                                        "example": 1,
                                        "description": "`0` - Pending `1` - Pending Client Approval `2` - Pending Clinic Approval `3` - Rescheduled Clinic Approval `4` - Rescheduled Client Approval `5` - Confirmed `6` - Canceled By Client `7` - Canceled By Clinic' `8` - Automatically Created' `9` - No Show\n"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/paths/~1api~1v1~1appointments/post/responses/200/content/application~1json/schema/properties/data"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "204": {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/responses/204"
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "example": {
                                        "message": "The given data was invalid.",
                                        "errors": {
                                            "status": [
                                                "This value is invalid"
                                            ]
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/appointments-count-by-status": {
            "get": {
                "tags": [
                    "Appointments"
                ],
                "summary": "List Appointments count by status",
                "description": "Permissions needed: VIEW_APPOINTMENTS\nReturn count of all appointments of the clinic grouped by their status\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1files/get/parameters/0"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/0"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "pendingCount": {
                                            "type": "integer",
                                            "example": 2
                                        },
                                        "canceledCount": {
                                            "type": "integer",
                                            "example": 0
                                        },
                                        "missedCount": {
                                            "type": "integer",
                                            "example": 7
                                        },
                                        "recommendedCount": {
                                            "type": "integer",
                                            "example": 0
                                        },
                                        "confirmedCount": {
                                            "type": "integer",
                                            "example": 0
                                        },
                                        "allCount": {
                                            "type": "integer",
                                            "example": 9
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "$ref": "#/paths/~1api~1v1~1files/post/responses/422"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    }
                }
            }
        },
        "/api/v1/appointments/{id}/cancel": {
            "post": {
                "tags": [
                    "Appointments"
                ],
                "summary": "Cancel an Appointment",
                "description": "Permissions needed: EDIT_APPOINTMENTS\nShorthand version of appointment update endpoint for changing just status to cancelled.\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "observations": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "notification_message": {
                                        "type": "string",
                                        "example": null
                                    },
                                    "cancellation_reason": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "recurrence_update_mode": {
                                        "description": "Recurrence update mode",
                                        "type": "string",
                                        "enum": [
                                            "this",
                                            "this_and_following",
                                            "all"
                                        ]
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/paths/~1api~1v1~1appointments/post/responses/200/content/application~1json/schema/properties/data"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/paths/~1api~1v1~1files/post/responses/422"
                    }
                }
            }
        },
        "/api/v1/appointments/{id}/confirm": {
            "post": {
                "tags": [
                    "Appointments"
                ],
                "summary": "Confirm an Appointment",
                "description": "Permissions needed: EDIT_APPOINTMENTS\n\n  Shorthand version of appointment update endpoint for changing just status to cancelled.\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "responses": {
                    "204": {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/responses/204"
                    },
                    "422": {
                        "$ref": "#/paths/~1api~1v1~1files/post/responses/422"
                    }
                }
            }
        },
        "/api/v1/breeds": {
            "get": {
                "tags": [
                    "Breeds"
                ],
                "summary": "List all Breeds",
                "description": "Permissions needed: NONE\nReturns list of breeds\n",
                "security": [],
                "parameters": [
                    {
                        "name": "filter[species_id]",
                        "in": "query",
                        "description": "Id of the related Species",
                        "required": false,
                        "style": "form",
                        "explode": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[search]",
                        "in": "query",
                        "description": "search by name",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1tags/get/parameters/5"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "title": "Breed",
                                                "description": "The breed of the pet",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "label": {
                                                        "type": "string",
                                                        "example": "Bull Terrier"
                                                    },
                                                    "breed": {
                                                        "type": "string",
                                                        "description": "Breed translated in the vet language",
                                                        "example": "Bull Terrier"
                                                    },
                                                    "species_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    }
                                                }
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links"
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/client-communications": {
            "get": {
                "tags": [
                    "Client Communication"
                ],
                "summary": "Get a list of all Communications with a specific PetParent",
                "description": "Get all appointments",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/0"
                    },
                    {
                        "name": "filter[user_id]",
                        "in": "query",
                        "description": "Id of the related PetParent",
                        "style": "form",
                        "explode": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[patient_ids]",
                        "in": "query",
                        "description": "Ids of the patients that are related to the entity",
                        "style": "form",
                        "explode": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    },
                    {
                        "name": "filter[date_between]",
                        "in": "query",
                        "description": "Dates between when the entity was created",
                        "style": "form",
                        "explode": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    {
                        "name": "filter[content]",
                        "in": "query",
                        "description": "Filter subject and content",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[email]",
                        "in": "query",
                        "description": "Destination email or users email",
                        "style": "form",
                        "explode": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[phone]",
                        "in": "query",
                        "description": "Destination phone or users phone",
                        "required": false,
                        "style": "form",
                        "explode": false,
                        "schema": null
                    },
                    {
                        "name": "filter[channels]",
                        "in": "query",
                        "description": "The channels of the Client Communcations, array of values from CommunicationChannelEnum (e.g. phone, other, email, sms)",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "phone",
                                    "other",
                                    "email",
                                    "sms"
                                ]
                            }
                        }
                    },
                    {
                        "name": "filter[types]",
                        "in": "query",
                        "description": "The types of the Client Communcations, array of values from CommunicationTypeEnum.\n\n`inbound` additionally returns threads whose replies contain an inbound\nmessage. Results are thread roots, and an inbound email only ever exists as a\nreply, so it would otherwise be unreachable through this filter.\n",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "direct",
                                    "reminder",
                                    "notification",
                                    "inbound",
                                    "client_statement_notification"
                                ]
                            }
                        }
                    },
                    {
                        "name": "filter[statuses]",
                        "in": "query",
                        "description": "The statuses of the Client Communcations, array of values from CommunicationStatusEnum",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "processing",
                                    "delivered",
                                    "undelivered",
                                    "skipped",
                                    "opened",
                                    "clicked",
                                    "unknown"
                                ]
                            }
                        }
                    },
                    {
                        "name": "filter[is_attached]",
                        "in": "query",
                        "description": "- `true` - return only communications that are associated with a record.\n\n- `false` - return only communications that are not associated with a record.\n",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include. You can use multiple, comma separated.",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "user",
                                    "user.chatUser",
                                    "contactPerson",
                                    "clinic",
                                    "record",
                                    "vet",
                                    "patients.pet",
                                    "replies",
                                    "replies.vet"
                                ]
                            }
                        }
                    },
                    {
                        "name": "slim_resource",
                        "in": "query",
                        "description": "Return a slim version for related record",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1tags/get/parameters/5"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/11"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1api~1v1~1client-communications/post/responses/201/content/application~1json/schema/properties/data"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links"
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "$ref": "#/paths/~1api~1v1~1files/post/responses/422"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "post": {
                "tags": [
                    "Client Communication"
                ],
                "summary": "Log a new Client Communication history",
                "description": "Manually register a new communication between a Clinic and a PetParent",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "user_id": {
                                        "description": "Id of the PetParent that the Clinic communicates to.",
                                        "type": "integer"
                                    },
                                    "patient_ids": {
                                        "description": "Id of the patients related to the communication.",
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        }
                                    },
                                    "clinic_id": {
                                        "description": "Id of the Clinic from where the communication is made from.",
                                        "type": "integer"
                                    },
                                    "channel": {
                                        "description": "The channel of the communication. Enum. One of phone, other, sms, email. API limited only to phone & other.",
                                        "enum": [
                                            "phone",
                                            "other"
                                        ],
                                        "type": "string"
                                    },
                                    "subject": {
                                        "description": "The subject of communication.",
                                        "type": "string"
                                    },
                                    "content": {
                                        "description": "The content of communication. (required for email)",
                                        "type": "string"
                                    },
                                    "destination": {
                                        "description": "Where the communication is sent to ( only for sms/email/phone ).",
                                        "type": "string"
                                    },
                                    "communicated_at": {
                                        "description": "The communicated_at when the communication was made.",
                                        "type": "string"
                                    },
                                    "message_id": {
                                        "description": "The id used for identifying attachments when channel is mail.",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "ClientCommunication",
                                            "properties": {
                                                "type": {
                                                    "type": "string",
                                                    "example": "Phone"
                                                },
                                                "subject": {
                                                    "type": "string",
                                                    "example": "Subject"
                                                },
                                                "content": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": "Longer content related to the communication"
                                                },
                                                "communicated_at": {
                                                    "type": "string",
                                                    "example": "2022-07-21T14:18:33.258907Z"
                                                },
                                                "replied_to_id": {
                                                    "type": "integer",
                                                    "nullable": true,
                                                    "description": "Id of the root communication this is a reply to.",
                                                    "example": 123
                                                },
                                                "last_reply_at": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "description": "Timestamp of the last reply in the thread (only on root communications).",
                                                    "example": "2022-07-21T15:30:00.000000Z"
                                                },
                                                "is_seen": {
                                                    "type": "boolean",
                                                    "description": "Whether the clinic has opened this message on the pet timeline. Only inbound email replies are ever created unseen; everything else is seen from the start.",
                                                    "example": true
                                                },
                                                "unseen_replies_count": {
                                                    "type": "integer",
                                                    "description": "Number of unseen replies in this thread (only when the replies relation is included).",
                                                    "example": 2
                                                },
                                                "replies": {
                                                    "type": "array",
                                                    "description": "List of replies to this communication (when included).",
                                                    "items": {
                                                        "$ref": "#/paths/~1api~1v1~1client-communications/post/responses/201/content/application~1json/schema/properties/data"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "$ref": "#/paths/~1api~1v1~1files/post/responses/422"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/clinic/{id}": {
            "get": {
                "tags": [
                    "Clinics"
                ],
                "summary": "Retrieve a Clinic",
                "description": "Permissions needed: NONE\nENDPOINT: api/v1/clinic/{id} to be deprecated in favor of api/v1/clinics/{id}\nGet all details associated with a specific clinic.\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include. You can use multiple, comma separated. Options: country,owner, reminderPeriods",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "Clinic",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Animal Hospital of All Pets"
                                                },
                                                "address": {
                                                    "type": "string",
                                                    "example": "Yigal Alon St 126, Tel Aviv-Yafo, 6744332, Israel"
                                                },
                                                "phone": {
                                                    "type": "string",
                                                    "example": "555-555 5555"
                                                },
                                                "email": {
                                                    "type": "string",
                                                    "example": "clinic@example.com"
                                                },
                                                "street": {
                                                    "type": "string",
                                                    "example": "Yigal Alon Street"
                                                },
                                                "street_number": {
                                                    "type": "string",
                                                    "example": 126
                                                },
                                                "region": {
                                                    "type": "string",
                                                    "example": "Tel Aviv District"
                                                },
                                                "timezone": {
                                                    "type": "string",
                                                    "example": "Asia/Jerusalem"
                                                },
                                                "zip": {
                                                    "type": "string",
                                                    "example": 6744332
                                                },
                                                "country": {
                                                    "$ref": "#/paths/~1api~1v1~1public~1clinics~1%7Bslug%7D/get/responses/200/content/application~1json/schema/properties/data/properties/country",
                                                    "nullable": true
                                                },
                                                "owner": {
                                                    "$ref": "#/paths/~1api~1v1~1vets~1%7Bid%7D/get/responses/200/content/application~1json/schema/properties/data",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "vets": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/paths/~1api~1v1~1vets~1%7Bid%7D/get/responses/200/content/application~1json/schema/properties/data"
                                                    },
                                                    "example": []
                                                },
                                                "hasGroup": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "group_id": {
                                                    "type": "integer",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "rooms": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "nullable": true,
                                                        "title": "Room",
                                                        "description": "A room in a clinic where appointments can be made. Used for organizational purposes.",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "clinic_id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "example": "Consultation Room 1"
                                                            }
                                                        }
                                                    },
                                                    "example": []
                                                },
                                                "reminders": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/paths/~1api~1v1~1appointments/post/requestBody/content/application~1json/schema/properties/reminder_notifications/items"
                                                    },
                                                    "example": []
                                                },
                                                "meetings_link": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": "https://meetings.example.com"
                                                },
                                                "token": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "cash_register_notes": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "sms_enabled": {
                                                    "type": "integer"
                                                },
                                                "appointment_sms": {
                                                    "type": "integer"
                                                },
                                                "appointment_email": {
                                                    "type": "integer"
                                                },
                                                "reminder_appointment_sms": {
                                                    "type": "integer"
                                                },
                                                "reminder_appointment_email": {
                                                    "type": "integer"
                                                },
                                                "reminder_health_plan_sms": {
                                                    "type": "integer"
                                                },
                                                "reminder_health_plan_email": {
                                                    "type": "integer"
                                                },
                                                "first_availability_not_before": {
                                                    "type": "integer"
                                                },
                                                "has_intake": {
                                                    "type": "integer"
                                                },
                                                "website": {
                                                    "type": "string",
                                                    "nullable": true
                                                },
                                                "gtm_id": {
                                                    "type": "string",
                                                    "nullable": true
                                                },
                                                "public_notice": {
                                                    "type": "string",
                                                    "nullable": true
                                                },
                                                "latitude": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "nullable": true
                                                },
                                                "longitude": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "nullable": true
                                                },
                                                "logo": {
                                                    "type": "string",
                                                    "nullable": true
                                                },
                                                "slug": {
                                                    "type": "string",
                                                    "nullable": true
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/files": {
            "get": {
                "tags": [
                    "Files"
                ],
                "summary": "List all Files",
                "description": "Permissions needed: ACCESS_PATIENTS\nReturns list of all files associated with a pet or owner\n",
                "parameters": [
                    {
                        "name": "filter[pet_id]",
                        "in": "query",
                        "description": "Pet ID",
                        "style": "form",
                        "explode": false,
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[owner_id]",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[record_id]",
                        "in": "query",
                        "explode": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[has_record]",
                        "in": "query",
                        "explode": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "filter[allowed_extensions]",
                        "in": "query",
                        "explode": true,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1vets/get/parameters/3"
                    },
                    {
                        "name": "filter[clinic_id]",
                        "in": "query",
                        "description": "Id of the clinics from where the entity was created",
                        "style": "form",
                        "explode": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include(vet, record, record.visitTypes)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Sorting(ex: 'real_name', 'updated_at')",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1tags/get/parameters/5"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/11"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1api~1v1~1files/post/responses/201/content/application~1json/schema/properties/data"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links"
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "post": {
                "tags": [
                    "Files"
                ],
                "summary": "Create a File",
                "description": "Permissions needed: ACCESS_PATIENTS\nUpload a new file and attach it to a pet\n",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "payload": {
                                        "type": "object",
                                        "description": "send it as a stringified JSON",
                                        "properties": {
                                            "pet_id": {
                                                "type": "integer",
                                                "example": 1,
                                                "required": true
                                            },
                                            "record_id": {
                                                "type": "integer",
                                                "example": 1,
                                                "required": false
                                            }
                                        }
                                    },
                                    "file": {
                                        "type": "string",
                                        "format": "binary"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "File",
                                            "description": "A file that was uploaded to the system and that is linked to a pet. No more than 10MB in size. The file can be a photo, a document, a video, etc. A file can also be associated or not with a record.",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "pet_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "clinic_id": {
                                                    "type": "integer",
                                                    "example": 766
                                                },
                                                "file_id": {
                                                    "type": "integer",
                                                    "description": "The id of the record that the uploaded file is associated to.",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "image.jpg"
                                                },
                                                "name_without_extension": {
                                                    "type": "string",
                                                    "example": "image"
                                                },
                                                "extension": {
                                                    "type": "string",
                                                    "example": "jpg"
                                                },
                                                "thumbnail": {
                                                    "type": "string",
                                                    "example": "https://vet.digitail.io/images/files/jpg.svg"
                                                },
                                                "updated_at": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "example": "2021-10-05T12:52:53.000000Z"
                                                },
                                                "download_url": {
                                                    "type": "string",
                                                    "example": "https://vet.digitail.io/api/v1/files/1/download"
                                                },
                                                "preview_url": {
                                                    "type": "string",
                                                    "example": "https://vet.digitail.io/api/v1/files/1/preview"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "title": "Unprocessable Content",
                        "description": "This response is sent when a request fails validation. The format is identical on all endpoints.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The name field is required. (and 1 more error)"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "field1": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                },
                                                "field2": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                }
                                            },
                                            "example": {
                                                "name": [
                                                    "The name field is required."
                                                ],
                                                "email": [
                                                    "The email field is required.",
                                                    "The email field must be a valid email address."
                                                ]
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/files/{id}": {
            "put": {
                "tags": [
                    "Files"
                ],
                "summary": "Update a File",
                "description": "Permissions needed: ACCESS_PATIENTS\nUpdate an existing files name.\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "My file"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/paths/~1api~1v1~1files/post/responses/201/content/application~1json/schema/properties/data"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "$ref": "#/paths/~1api~1v1~1files/post/responses/422"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Files"
                ],
                "summary": "Delete a File",
                "description": "Permissions needed: ACCESS_PATIENTS\nCompletely delete a file from storage\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "responses": {
                    "204": {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/responses/204"
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/files/{id}/preview": {
            "get": {
                "tags": [
                    "Files"
                ],
                "summary": "Preview a File",
                "description": "Preview a file",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "text/html": {}
                        },
                        "title": "OK",
                        "description": "The request has succeeded. The client can read the result of the request in the body and the headers of the response."
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/files/{id}/download": {
            "get": {
                "tags": [
                    "Files"
                ],
                "summary": "Download a File",
                "description": "Download a file from storage",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "responses": {
                    "200": {
                        "$ref": "#/paths/~1api~1v1~1files~1%7Bid%7D~1preview/get/responses/200",
                        "content": {
                            "image/*": {},
                            "application/pdf": {}
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/integrations/labs/orders": {
            "get": {
                "tags": [
                    "Labs"
                ],
                "summary": "Get all LabOrders",
                "description": "Returns a list of lab orders for a clinic and optioanally includes their results.\n\nPermissions required:\n- VIEW_CHECKUPS\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/0"
                    },
                    {
                        "name": "filter[file_case_id]",
                        "in": "query",
                        "description": "ID of the filecase from where the entity was created",
                        "style": "form",
                        "explode": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1invoices/get/parameters/2"
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "A comma-separated list of additional data to include in the response.\n\n`result` - include result metadata\n\n`result.tests` - include discrete results\n\n`result.file` - include result file\n",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "result",
                                "result.tests",
                                "result.file"
                            ]
                        },
                        "example": "result,result.tests,result.file"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "title": "LabOrder",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "lab": {
                                                        "type": "object",
                                                        "title": "Lab",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "name": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        "example": {
                                                            "id": 1,
                                                            "name": "Antech"
                                                        }
                                                    },
                                                    "clinic_id": {
                                                        "type": "integer"
                                                    },
                                                    "file_case_id": {
                                                        "type": "integer"
                                                    },
                                                    "vet_id": {
                                                        "type": "integer"
                                                    },
                                                    "order_ext_id": {
                                                        "type": "integer"
                                                    },
                                                    "status": {
                                                        "type": "string",
                                                        "enum": [
                                                            "none",
                                                            "pending",
                                                            "partial",
                                                            "completed",
                                                            "failed",
                                                            "cancelled"
                                                        ]
                                                    },
                                                    "ordered_tests": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "code": {
                                                                    "type": "string"
                                                                },
                                                                "name": {
                                                                    "type": "string"
                                                                }
                                                            }
                                                        }
                                                    },
                                                    "details": {
                                                        "type": "object",
                                                        "properties": {
                                                            "ordering_ui_url": {
                                                                "type": "string"
                                                            },
                                                            "is_editable": {
                                                                "type": "boolean"
                                                            },
                                                            "has_requisition_form": {
                                                                "type": "boolean"
                                                            },
                                                            "result_url": {
                                                                "type": "string"
                                                            }
                                                        }
                                                    },
                                                    "result": {
                                                        "type": "object",
                                                        "title": "LabResult",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "ext_id": {
                                                                "type": "string"
                                                            },
                                                            "reported_at": {
                                                                "type": "string",
                                                                "format": "date-time"
                                                            },
                                                            "file": {
                                                                "type": "object",
                                                                "title": "LabResultFile",
                                                                "properties": {
                                                                    "name": {
                                                                        "type": "string"
                                                                    },
                                                                    "url": {
                                                                        "type": "string"
                                                                    }
                                                                }
                                                            },
                                                            "tests": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "object",
                                                                    "title": "LabResultTest",
                                                                    "properties": {
                                                                        "id": {
                                                                            "type": "integer"
                                                                        },
                                                                        "code": {
                                                                            "type": "string"
                                                                        },
                                                                        "name": {
                                                                            "type": "string"
                                                                        },
                                                                        "conclusion": {
                                                                            "type": "string"
                                                                        },
                                                                        "other_conclusion": {
                                                                            "type": "string"
                                                                        },
                                                                        "result": {
                                                                            "type": "string"
                                                                        },
                                                                        "unit": {
                                                                            "type": "string"
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/invoices": {
            "get": {
                "tags": [
                    "Invoices"
                ],
                "summary": "List all Invoices",
                "description": "Permissions needed: VIEW_INVOICES_CASHING\nReturns list of Invoices\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/0"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/2"
                    },
                    {
                        "name": "filter[pet_id]",
                        "in": "query",
                        "description": "Pet ID",
                        "style": "form",
                        "explode": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[sale_id]",
                        "in": "query",
                        "description": "Sale ID",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[series]",
                        "in": "query",
                        "description": "Invoice series",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[number]",
                        "in": "query",
                        "description": "Invoice number (Required if series is provided)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[updated_from]",
                        "in": "query",
                        "description": "Updated after the datetime (use iso8601 format - 2020-08-16T08:56:44.000000Z). Updated at and created at are returned in UTC in the response",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date-time"
                        }
                    },
                    {
                        "name": "filter[updated_to]",
                        "in": "query",
                        "description": "Updated at less or equal than the datetime (use iso8601 format - 2020-08-16T08:56:44.000000Z). Updated at and created at are returned in UTC in the response",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date-time"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Order by field(s) (created_at,updated_at) Use a minus before for descending order -updated_at",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include. You can use multiple, comma separated. Options: sale, sale.vet, sale.customer, sale.customer.legalEntity, sale.customer.country, sale.payments, sale.file, sale.treatments, sale.soldServices, sale.record",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "detailed",
                        "in": "query",
                        "description": "Set to true to get the full invoice details (this significantly increases the response size and response time)",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1tags/get/parameters/5"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "oneOf": [
                                                    {
                                                        "type": "object",
                                                        "title": "Invoice",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "clinic_id": {
                                                                "type": "string",
                                                                "example": "1"
                                                            },
                                                            "sale_id": {
                                                                "type": "string",
                                                                "example": "2"
                                                            },
                                                            "series": {
                                                                "type": "string",
                                                                "example": "DGT"
                                                            },
                                                            "date": {
                                                                "type": "string",
                                                                "example": "2022-07-18"
                                                            },
                                                            "number": {
                                                                "type": "string",
                                                                "example": "1"
                                                            },
                                                            "total": {
                                                                "type": "string",
                                                                "example": "250.00"
                                                            },
                                                            "created_at": {
                                                                "type": "string",
                                                                "example": "2022-07-18T08:58:36.000000Z"
                                                            },
                                                            "updated_at": {
                                                                "type": "string",
                                                                "example": "2022-07-18T08:58:36.000000Z"
                                                            },
                                                            "series_no": {
                                                                "type": "string",
                                                                "example": "DGT-1"
                                                            },
                                                            "sale": {
                                                                "$ref": "#/paths/~1api~1v1~1sales/post/responses/200/content/application~1json/schema/properties/data",
                                                                "nullable": true,
                                                                "example": null
                                                            }
                                                        }
                                                    },
                                                    {
                                                        "type": "object",
                                                        "title": "InvoiceDetailed",
                                                        "description": "A more detailed version of the Invoice which contains information about the products and services that were sold as well as a more debunked version of the totals involved in the sale.",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "clinic_id": {
                                                                "type": "string",
                                                                "example": "1"
                                                            },
                                                            "sale_id": {
                                                                "type": "string",
                                                                "example": "2"
                                                            },
                                                            "series": {
                                                                "type": "string",
                                                                "example": "DGT"
                                                            },
                                                            "date": {
                                                                "type": "string",
                                                                "example": "2022-07-18"
                                                            },
                                                            "number": {
                                                                "type": "string",
                                                                "example": "1"
                                                            },
                                                            "created_at": {
                                                                "type": "string",
                                                                "example": "2022-07-18T08:58:36.000000Z"
                                                            },
                                                            "updated_at": {
                                                                "type": "string",
                                                                "example": "2022-07-18T08:58:36.000000Z"
                                                            },
                                                            "series_no": {
                                                                "type": "string",
                                                                "example": "DGT-1"
                                                            },
                                                            "sale": {
                                                                "$ref": "#/paths/~1api~1v1~1sales/post/responses/200/content/application~1json/schema/properties/data"
                                                            },
                                                            "vet": {
                                                                "$ref": "#/paths/~1api~1v1~1vets~1%7Bid%7D~1colleagues-calendar-order/get/responses/200/content/application~1json/schema/properties/data/items"
                                                            },
                                                            "generalDiscount": {
                                                                "type": "string",
                                                                "description": "same as global_discount",
                                                                "example": "0.00"
                                                            },
                                                            "global_discount": {
                                                                "type": "string",
                                                                "description": "same as generalDiscount",
                                                                "example": "0.00"
                                                            },
                                                            "total": {
                                                                "type": "string",
                                                                "example": "250.00"
                                                            },
                                                            "subtotal": {
                                                                "type": "string",
                                                                "example": "250.00"
                                                            },
                                                            "amount_due": {
                                                                "type": "string",
                                                                "example": "250.00"
                                                            },
                                                            "vat": {
                                                                "type": "string",
                                                                "deprecated": true,
                                                                "description": "Deprecated alias of `tax_amount`. A tax amount, not a percentage. Use `tax_amount` instead.",
                                                                "example": "0.00"
                                                            },
                                                            "tax_amount": {
                                                                "type": "string",
                                                                "example": "0.00"
                                                            },
                                                            "hide_details": {
                                                                "type": "boolean",
                                                                "example": false
                                                            },
                                                            "hide_total": {
                                                                "type": "boolean",
                                                                "example": false
                                                            },
                                                            "totalDiscount": {
                                                                "type": "string",
                                                                "description": "same as items_discount",
                                                                "example": "0.00"
                                                            },
                                                            "items_discount": {
                                                                "type": "string",
                                                                "description": "same as totalDiscount",
                                                                "example": "0.00"
                                                            },
                                                            "products": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "object",
                                                                    "title": "ProductInvoiceData",
                                                                    "properties": {
                                                                        "name": {
                                                                            "type": "string",
                                                                            "example": "Product 1"
                                                                        },
                                                                        "discount": {
                                                                            "type": "string",
                                                                            "example": "-"
                                                                        },
                                                                        "discount_value": {
                                                                            "type": "string",
                                                                            "example": "0.00"
                                                                        },
                                                                        "discount_type": {
                                                                            "type": "integer",
                                                                            "enum": [
                                                                                0,
                                                                                1
                                                                            ],
                                                                            "description": "`0` - fixed  `1` - percentage\n",
                                                                            "example": 0
                                                                        },
                                                                        "subtotalWithDiscount": {
                                                                            "type": "string",
                                                                            "example": "230.00"
                                                                        },
                                                                        "vat": {
                                                                            "type": "string",
                                                                            "deprecated": true,
                                                                            "description": "Deprecated. Use `effective_tax_percentage` instead.",
                                                                            "example": "0.00"
                                                                        },
                                                                        "effective_tax_percentage": {
                                                                            "type": "number",
                                                                            "format": "float",
                                                                            "description": "Tax percentage applied to the line, summed from its tax rates.",
                                                                            "example": 19
                                                                        },
                                                                        "category": {
                                                                            "type": "string",
                                                                            "example": "Category 1"
                                                                        },
                                                                        "unit": {
                                                                            "type": "string",
                                                                            "example": "-"
                                                                        },
                                                                        "quantity": {
                                                                            "type": "string",
                                                                            "example": "1"
                                                                        },
                                                                        "unitPrice": {
                                                                            "type": "string",
                                                                            "example": "230.00"
                                                                        },
                                                                        "subtotalPrice": {
                                                                            "type": "string",
                                                                            "example": "230.00"
                                                                        },
                                                                        "vatValue": {
                                                                            "type": "string",
                                                                            "example": "0.00 (0%)"
                                                                        },
                                                                        "totalPrice": {
                                                                            "type": "string",
                                                                            "example": "230.00"
                                                                        }
                                                                    }
                                                                }
                                                            },
                                                            "services": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "object",
                                                                    "title": "ServiceInvoiceData",
                                                                    "properties": {
                                                                        "name": {
                                                                            "type": "string",
                                                                            "example": "Service"
                                                                        },
                                                                        "quantity": {
                                                                            "type": "string",
                                                                            "example": "1"
                                                                        },
                                                                        "discount": {
                                                                            "type": "string",
                                                                            "example": "-"
                                                                        },
                                                                        "discount_value": {
                                                                            "type": "string",
                                                                            "example": "0.00"
                                                                        },
                                                                        "discount_type": {
                                                                            "type": "integer",
                                                                            "enum": [
                                                                                0,
                                                                                1
                                                                            ],
                                                                            "description": "`0` - fixed  `1` - percentage\n",
                                                                            "example": 0
                                                                        },
                                                                        "subtotalWithDiscount": {
                                                                            "type": "string",
                                                                            "example": "20.00"
                                                                        },
                                                                        "vat": {
                                                                            "type": "string",
                                                                            "deprecated": true,
                                                                            "description": "Deprecated. Use `effective_tax_percentage` instead.",
                                                                            "example": "0.00"
                                                                        },
                                                                        "effective_tax_percentage": {
                                                                            "type": "number",
                                                                            "format": "float",
                                                                            "description": "Tax percentage applied to the line, summed from its tax rates.",
                                                                            "example": 19
                                                                        },
                                                                        "unitPrice": {
                                                                            "type": "string",
                                                                            "example": "20.00"
                                                                        },
                                                                        "subtotalPrice": {
                                                                            "type": "string",
                                                                            "example": "20.00"
                                                                        },
                                                                        "vatValue": {
                                                                            "type": "string",
                                                                            "example": "0.00 (0%)"
                                                                        },
                                                                        "totalPrice": {
                                                                            "type": "string",
                                                                            "example": "20.00"
                                                                        },
                                                                        "visibleProducts": {
                                                                            "type": "array",
                                                                            "items": {
                                                                                "type": "object"
                                                                            },
                                                                            "example": []
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                ]
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links"
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/invoices/{id}": {
            "get": {
                "tags": [
                    "Invoices"
                ],
                "summary": "Retrieve an Invoice",
                "description": "Permissions needed: VIEW_INVOICES_CASHING\nReturns a invoice with all its details\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include. You can use multiple, comma separated. Options: sale, sale.customer, sale.customer.legalEntity, sale.customer.country, sale.payments",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "oneOf": [
                                                    {
                                                        "$ref": "#/paths/~1api~1v1~1invoices/get/responses/200/content/application~1json/schema/properties/data/items/oneOf/0"
                                                    },
                                                    {
                                                        "$ref": "#/paths/~1api~1v1~1invoices/get/responses/200/content/application~1json/schema/properties/data/items/oneOf/1"
                                                    }
                                                ]
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/invoice/{id}/pdf/preview": {
            "get": {
                "tags": [
                    "Invoices"
                ],
                "summary": "Retrieve Invoice HTML Preview",
                "description": "Permissions needed: VIEW_INVOICES_CASHING\nGet Invoice HTML Preview\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "text/html": {}
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/invoices/{id}/sendPdf": {
            "get": {
                "tags": [
                    "Invoices"
                ],
                "summary": "Send Invoice PDF",
                "description": "Permissions needed: ACCESS_PATIENTS, SEND_PATIENT_DOCUMENTS\nSend Invoice Pdf to a pet parent and/or a list of emails.\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "client_id",
                        "in": "query",
                        "description": "Id of the related PetParent",
                        "style": "form",
                        "explode": false,
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "example": 1
                        }
                    },
                    {
                        "name": "emails[]",
                        "in": "query",
                        "description": "Emails to send the invoice to",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            },
                            "example": "user@email.com"
                        }
                    },
                    {
                        "name": "include_payment_link",
                        "in": "query",
                        "description": "If present and value is true the invoice message will contain the payment link.",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/responses/204"
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "description": "Validation errors. See the errors object ",
                        "content": {
                            "application/json": {
                                "example": {
                                    "message": "The given data was invalid.",
                                    "errors": {
                                        "client_id": [
                                            "The selected client id is invalid."
                                        ]
                                    }
                                }
                            }
                        }
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/patients/{pet}/file-case/{fileCase}/pdf": {
            "get": {
                "tags": [
                    "Records",
                    "Pets"
                ],
                "summary": "Export Record PDF",
                "description": "Permissions needed: ACCESS_PATIENTS, VIEW_CHECKUPS\nReceive a pdf file with the summary of a record\n",
                "parameters": [
                    {
                        "name": "pet",
                        "in": "path",
                        "description": "The id of the pet whose records are being requested",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "fileCase",
                        "in": "path",
                        "description": "The id of the record whose pdf is being requested",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "title": "OK PDF",
                        "description": "The response is a PDF file.",
                        "content": {
                            "application/pdf": {}
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/pet-archive-types": {
            "get": {
                "tags": [
                    "Pets Archive"
                ],
                "summary": "List all ArchiveTypes",
                "description": "Permissions needed: NONE\nGet the list of Pets Archive Types\n",
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "title": "PetArchiveType",
                                                "description": "The reason why a pet was archived",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Deceased"
                                                    },
                                                    "translation_slug": {
                                                        "type": "string",
                                                        "example": "strings.deceased"
                                                    },
                                                    "translation_label": {
                                                        "type": "string",
                                                        "example": "Deceased"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/pet-parents": {
            "get": {
                "tags": [
                    "Pet Parents"
                ],
                "summary": "List all PetParents",
                "description": "Permissions needed: NONE\nReturns a filtered & ordered list of all pet parents\n",
                "parameters": [
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional relations to include",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "chatUser",
                                    "clients"
                                ]
                            }
                        }
                    },
                    {
                        "name": "filter[has_app]",
                        "in": "query",
                        "description": "If the pet parent has the app downloaded or not",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "filter[phone]",
                        "in": "query",
                        "description": "Partial phone filter",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[email]",
                        "in": "query",
                        "description": "Filter by email address",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[belongs_to_clinic]",
                        "in": "query",
                        "description": "Filter only by the pet parent that are associated to specific clinics. Default to current active clinic if omitted",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            },
                            "example": [
                                1
                            ]
                        }
                    },
                    {
                        "name": "add_address_metadata",
                        "in": "query",
                        "description": "Set to 1 to get the full address details",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[updated_from]",
                        "in": "query",
                        "description": "Updated after the datetime (use iso8601 format - 2020-08-16T08:56:44.000000Z). Updated at and created at are returned in UTC in the response",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date-time"
                        }
                    },
                    {
                        "name": "filter[updated_to]",
                        "in": "query",
                        "description": "Updated at less or equal than the datetime (use iso8601 format - 2020-08-16T08:56:44.000000Z). Updated at and created at are returned in UTC in the response",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date-time"
                        }
                    },
                    {
                        "name": "filter[query]",
                        "in": "query",
                        "description": "Search by name, last name, email.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1tags/get/parameters/5"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1api~1v1~1pet-parents/post/responses/201/content/application~1json/schema/properties/data"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links"
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "post": {
                "tags": [
                    "Pet Parents"
                ],
                "summary": "Create a PetParent",
                "description": "Permissions needed: CREATE_PATIENTS\nCreate a new pet parent.  If the cross-clinic account validation feature is enabled, the email must be unique globally.  If an existing account is found with the same email, and the feature is active, validation will fail.\n",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name",
                                    "last_name",
                                    "terms_and_conditions"
                                ],
                                "properties": {
                                    "clinic_id": {
                                        "description": "Clinic id.",
                                        "type": "integer",
                                        "example": 1,
                                        "nullable": false
                                    },
                                    "name": {
                                        "type": "string",
                                        "example": "John"
                                    },
                                    "last_name": {
                                        "type": "string",
                                        "example": "Doe"
                                    },
                                    "email": {
                                        "type": "string",
                                        "example": "john@example.com"
                                    },
                                    "password": {
                                        "type": "string",
                                        "description": "If omitted, a random password will be generated and sent to the user  on creation and the old one will be kept on update.",
                                        "example": "password"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "description": "Phone number in E.164 format",
                                        "example": "+16175551212",
                                        "nullable": false
                                    },
                                    "secondary_phone": {
                                        "type": "string",
                                        "description": "Phone number in E.164 format",
                                        "example": "+16175551212",
                                        "nullable": true
                                    },
                                    "google_place_id": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "address": {
                                        "type": "string",
                                        "example": "Flowers St. 300, Palo Alto, 123456, USA",
                                        "nullable": true
                                    },
                                    "address2": {
                                        "type": "string",
                                        "example": "Flowers St 123",
                                        "nullable": true
                                    },
                                    "city": {
                                        "type": "string",
                                        "example": "Palo Alto",
                                        "nullable": true
                                    },
                                    "birthdate": {
                                        "type": "string",
                                        "example": "1990-01-01",
                                        "nullable": true
                                    },
                                    "zip_code": {
                                        "type": "string",
                                        "example": "123456",
                                        "nullable": true
                                    },
                                    "street": {
                                        "type": "string",
                                        "example": "Flowers St.",
                                        "nullable": true
                                    },
                                    "street_number": {
                                        "type": "string",
                                        "example": "123",
                                        "nullable": true
                                    },
                                    "region": {
                                        "type": "string",
                                        "example": "California",
                                        "nullable": true
                                    },
                                    "region_short_code": {
                                        "type": "string",
                                        "example": "CA",
                                        "nullable": true
                                    },
                                    "country_id": {
                                        "type": "string",
                                        "example": "US",
                                        "nullable": true
                                    },
                                    "latitude": {
                                        "type": "string",
                                        "example": "37.4419",
                                        "nullable": true
                                    },
                                    "longitude": {
                                        "type": "string",
                                        "example": "122.1430",
                                        "nullable": true
                                    },
                                    "cnp": {
                                        "type": "string",
                                        "example": "1234567890123",
                                        "nullable": true
                                    },
                                    "terms_and_conditions": {
                                        "type": "boolean",
                                        "example": true
                                    },
                                    "observations": {
                                        "type": "string",
                                        "example": "happy",
                                        "nullable": true
                                    },
                                    "tag_ids": {
                                        "type": "array",
                                        "nullable": true,
                                        "items": {
                                            "type": "integer"
                                        }
                                    },
                                    "enable_chat_without_app": {
                                        "type": "boolean",
                                        "example": false,
                                        "nullable": true
                                    },
                                    "referral_source_type": {
                                        "type": "string",
                                        "nullable": true,
                                        "enum": [
                                            "google_search",
                                            "social_media",
                                            "referral",
                                            "walk_in",
                                            "local_event",
                                            "paid_ad",
                                            "blog",
                                            "signage",
                                            "walk_by",
                                            "online_reviews",
                                            "vet_referral",
                                            "other"
                                        ]
                                    },
                                    "referral_source_details": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "avatar": {
                                        "type": "string",
                                        "format": "binary"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "PetParent",
                                            "description": "PetParent = User = Customer = Owner. PetParent is the preferred term.",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "John"
                                                },
                                                "last_name": {
                                                    "type": "string",
                                                    "example": "Doe"
                                                },
                                                "email": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": "john@example.com"
                                                },
                                                "phone": {
                                                    "type": "string",
                                                    "description": "In E164 format",
                                                    "example": "+19772480544"
                                                },
                                                "secondary_phone": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "description": "In E164 format",
                                                    "example": "+19772480544"
                                                },
                                                "chatUid": {
                                                    "type": "string",
                                                    "example": "cjfiem-c9hg-apzm-23sod",
                                                    "nullable": true
                                                },
                                                "has_app": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "has_app_date": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": "2020-06-12 15:45:43"
                                                },
                                                "enable_chat_without_app": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "created_at": {
                                                    "type": "string",
                                                    "example": "2020-06-12 15:45:43"
                                                },
                                                "updated_at": {
                                                    "type": "string",
                                                    "example": "2020-06-12 15:45:43"
                                                },
                                                "address": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": "Flowers St. 300, Palo Alto, 123456, USA"
                                                },
                                                "address_2": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": ""
                                                },
                                                "city": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": "Buenos Aires"
                                                },
                                                "birthdate": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "nullable": true,
                                                    "example": "1990-04-04"
                                                },
                                                "observations": {
                                                    "type": "string",
                                                    "example": "happy",
                                                    "nullable": true
                                                },
                                                "cnp": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": "1234567890123"
                                                },
                                                "chip_number": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": "99281028"
                                                },
                                                "discounts": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "title": "Discount",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 10
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "example": "digitail disc10"
                                                            },
                                                            "description": {
                                                                "type": "string",
                                                                "nullable": true,
                                                                "example": "digitail disc10"
                                                            },
                                                            "discount": {
                                                                "type": "integer",
                                                                "nullable": true,
                                                                "example": 10
                                                            },
                                                            "discount_type": {
                                                                "type": "integer",
                                                                "enum": [
                                                                    0,
                                                                    1
                                                                ],
                                                                "description": "`0` - fixed  `1` - percentage\n"
                                                            },
                                                            "apply_on_cogs": {
                                                                "type": "boolean",
                                                                "example": false
                                                            },
                                                            "discount_products": {
                                                                "type": "number",
                                                                "nullable": true,
                                                                "example": 10
                                                            },
                                                            "discount_type_products": {
                                                                "type": "integer",
                                                                "enum": [
                                                                    0,
                                                                    1
                                                                ],
                                                                "description": "`0` - fixed  `1` - percentage\n"
                                                            },
                                                            "discount_services": {
                                                                "type": "number",
                                                                "nullable": true,
                                                                "example": 10
                                                            },
                                                            "discount_type_services": {
                                                                "type": "integer",
                                                                "enum": [
                                                                    0,
                                                                    1
                                                                ],
                                                                "description": "`0` - fixed  `1` - percentage\n"
                                                            },
                                                            "enabled": {
                                                                "type": "boolean",
                                                                "example": true
                                                            }
                                                        }
                                                    }
                                                },
                                                "address_meta_data": {
                                                    "type": "object",
                                                    "properties": {
                                                        "zip_code": {
                                                            "type": "string",
                                                            "example": "123456"
                                                        },
                                                        "city": {
                                                            "type": "string",
                                                            "example": "Palo Alto"
                                                        },
                                                        "street": {
                                                            "type": "string",
                                                            "example": "Flowers St."
                                                        },
                                                        "street_number": {
                                                            "type": "string",
                                                            "example": "1990"
                                                        },
                                                        "region": {
                                                            "type": "string",
                                                            "example": "California"
                                                        },
                                                        "region_short_code": {
                                                            "type": "string",
                                                            "example": "CA"
                                                        },
                                                        "country_id": {
                                                            "type": "integer",
                                                            "example": 6
                                                        },
                                                        "latitude": {
                                                            "type": "string",
                                                            "example": "37.4419"
                                                        },
                                                        "longitude": {
                                                            "type": "string",
                                                            "example": "122.1430"
                                                        },
                                                        "address_2": {
                                                            "type": "string",
                                                            "example": ""
                                                        }
                                                    }
                                                },
                                                "current_client_id": {
                                                    "type": "integer",
                                                    "nullable": true,
                                                    "example": 30
                                                },
                                                "clients": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "title": "Client",
                                                        "description": "relationship between pet parent and clinic",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "clinic_id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "referral_source_type": {
                                                                "type": "string",
                                                                "nullable": true,
                                                                "enum": [
                                                                    "google_search",
                                                                    "social_media",
                                                                    "referral",
                                                                    "walk_in",
                                                                    "local_event",
                                                                    "paid_ad",
                                                                    "blog",
                                                                    "signage",
                                                                    "walk_by",
                                                                    "online_reviews",
                                                                    "vet_referral",
                                                                    "other"
                                                                ]
                                                            },
                                                            "referral_source_details": {
                                                                "type": "string",
                                                                "nullable": true
                                                            }
                                                        }
                                                    }
                                                },
                                                "preferences": {
                                                    "type": "object",
                                                    "nullable": true
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "$ref": "#/paths/~1api~1v1~1files/post/responses/422"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/pet-parents/{id}": {
            "get": {
                "tags": [
                    "Pet Parents"
                ],
                "summary": "Retrieve a PetParent",
                "description": "Permissions needed: NONE\nReturns a pet parent record\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Include Additional info (ex: 'discounts', 'preferences')",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/paths/~1api~1v1~1pet-parents/post/responses/201/content/application~1json/schema/properties/data"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "patch": {
                "tags": [
                    "Pet Parents"
                ],
                "summary": "Update a PetParent",
                "description": "Permissions needed: UPDATE_PATIENTS\nUpdate pet parent info\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/paths/~1api~1v1~1pet-parents/post/requestBody/content/application~1json/schema"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/paths/~1api~1v1~1pet-parents/post/responses/201/content/application~1json/schema/properties/data"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/pets": {
            "get": {
                "tags": [
                    "Pets"
                ],
                "summary": "List all Pets",
                "description": "Permissions needed: ACCESS_PATIENTS\nReturns list of Pets\n",
                "parameters": [
                    {
                        "name": "filter[clinic_id]",
                        "in": "query",
                        "description": "ID of the clinic from where the entity was created",
                        "style": "form",
                        "explode": false,
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[vet_id]",
                        "in": "query",
                        "description": "Id of the vet that performed/owns the entity",
                        "style": "form",
                        "explode": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[owner_id]",
                        "in": "query",
                        "description": "Id of the related PetParent",
                        "style": "form",
                        "explode": false,
                        "schema": {
                            "type": "integer",
                            "example": 1
                        }
                    },
                    {
                        "name": "filter[id]",
                        "in": "query",
                        "description": "Pet ID",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[nickname]",
                        "in": "query",
                        "description": "Pet nickname",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[updated_from]",
                        "in": "query",
                        "description": "Updated after the datetime (use iso8601 format - 2020-08-16T08:56:44.000000Z). Updated at and created at are returned in UTC in the response",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date-time"
                        }
                    },
                    {
                        "name": "filter[updated_to]",
                        "in": "query",
                        "description": "Updated at less or equal than the datetime (use iso8601 format - 2020-08-16T08:56:44.000000Z). Updated at and created at are returned in UTC in the response",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date-time"
                        }
                    },
                    {
                        "name": "filter[birthday_between]",
                        "in": "query",
                        "description": "Date range for pet birthday, format is 'YYYY-MM-DD,YYYY-MM-DD' (e.g. '2021-02-01,2021-02-29'). This will return pets born between the two dates.",
                        "schema": {
                            "type": "string",
                            "example": "2021-02-01,2021-02-29"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include. You can use multiple, comma separated. Options: species,breed,trupanionSpecies,trupanionBreed,crossBreed,owners,clinics,vetPetRequests.clinic,patients,patients.archiveType",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Order by field(s)(ex: 'nickname,created_at,name-archived-last -> order by nickname with archived pets at the end')",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1tags/get/parameters/5"
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Number of items to retrieve per page",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 15
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1api~1v1~1pets/post/responses/201/content/application~1json/schema/properties/data"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "title": "PaginationLinks",
                                            "properties": {
                                                "first": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "last": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": "https://developer.digitail.io/api/v1/entities?page=10"
                                                },
                                                "prev": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "next": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": "https://developer.digitail.io/api/v1/entities?page=2"
                                                }
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "title": "PaginationMeta",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "from": {
                                                    "type": "integer",
                                                    "example": 1,
                                                    "nullable": true
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "example": 10
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": "string",
                                                                "nullable": true,
                                                                "example": "&laquo; Previous"
                                                            }
                                                        }
                                                    },
                                                    "example": [
                                                        {
                                                            "url": null,
                                                            "label": "&laquo; Previous",
                                                            "active": false
                                                        },
                                                        {
                                                            "url": "https://developer.digitail.io/api/v1/entities?page=1",
                                                            "label": "1",
                                                            "active": true
                                                        },
                                                        {
                                                            "url": "https://developer.digitail.io/api/v1/entities?page=2",
                                                            "label": "Next &raquo;",
                                                            "active": true
                                                        }
                                                    ]
                                                },
                                                "path": {
                                                    "type": "string",
                                                    "example": "https://developer.digitail.io/api/v1/entities"
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "example": 15
                                                },
                                                "to": {
                                                    "type": "integer",
                                                    "example": 10,
                                                    "nullable": true
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "example": 145
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "title": "Bad Request",
                        "description": "The request was invalid or contained data that was not allowed.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Requested filter(s) `filter1` are not allowed. Allowed filter(s) are date, query, ..."
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "title": "Unauthorized",
                        "description": "The authorization token is missing or invalid.",
                        "content": {
                            "application/json": {}
                        }
                    },
                    "403": {
                        "title": "Forbidden",
                        "description": "The user is not authorized to perform the requested operation.",
                        "content": {
                            "application/json": {}
                        }
                    },
                    "429": {
                        "title": "Too Many Requests",
                        "description": "The user has sent too many requests in a given amount of time (\"rate limiting\"). Max 200 requests per minute.",
                        "content": {
                            "application/json": {}
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Pets"
                ],
                "summary": "Create a Pet",
                "description": "Permissions needed: CREATE_PATIENTS\nCreate a pet\n",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "vet_id",
                                    "owner_id",
                                    "clinic_id",
                                    "birthday",
                                    "nickname",
                                    "species_id",
                                    "breed_id",
                                    "gender",
                                    "hormonal_status"
                                ],
                                "type": "object",
                                "properties": {
                                    "clinic_id": {
                                        "description": "Clinic id.",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "vet_id": {
                                        "description": "Vet id.",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "owner_id": {
                                        "description": "Owner Id.",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "nickname": {
                                        "description": "Nickname",
                                        "type": "string",
                                        "example": "Fluffy"
                                    },
                                    "birthday": {
                                        "description": "Birthday (Y-m-d)",
                                        "type": "string",
                                        "example": "2017-11-28"
                                    },
                                    "avatar": {
                                        "description": "Profile picture.",
                                        "type": "string",
                                        "format": "binary",
                                        "example": "avatar.jpg"
                                    },
                                    "species_id": {
                                        "nullable": true,
                                        "description": "Species Id.",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "breed_id": {
                                        "description": "Breed ID.",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "crossbreed": {
                                        "description": "Set to true if crossbreed. Do not send empty value, omit the key completely",
                                        "type": "boolean"
                                    },
                                    "crossbreed_details": {
                                        "description": "Crossbreed id (see breeds endpoint) Do not send empty value, omit the key completely",
                                        "type": "string"
                                    },
                                    "color": {
                                        "description": "Color",
                                        "type": "string",
                                        "example": "Pink"
                                    },
                                    "color_mask": {
                                        "description": "Color mask",
                                        "nullable": true,
                                        "type": "array",
                                        "items": {
                                            "type": "integer",
                                            "example": 1
                                        }
                                    },
                                    "distinctive_marks": {
                                        "description": "Distinctive marks",
                                        "type": "string",
                                        "example": "One spot on right ear"
                                    },
                                    "gender": {
                                        "description": "Gender",
                                        "type": "string",
                                        "enum": [
                                            "male",
                                            "female",
                                            "unknown"
                                        ]
                                    },
                                    "observations": {
                                        "description": "Observations (Pet notes)",
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "chip_number": {
                                        "description": "Chip number",
                                        "type": "string",
                                        "nullable": true,
                                        "example": "123456789"
                                    },
                                    "microchip_location": {
                                        "description": "Microchip  Location",
                                        "type": "string",
                                        "nullable": true,
                                        "example": "Neck"
                                    },
                                    "insurance_number": {
                                        "description": "Insurance Number",
                                        "type": "string",
                                        "nullable": true,
                                        "example": "123456789"
                                    },
                                    "insurance_provider": {
                                        "description": "Insurance Provider",
                                        "type": "string",
                                        "nullable": true,
                                        "example": "Petplan"
                                    },
                                    "policy_id": {
                                        "description": "Policy ID",
                                        "type": "string",
                                        "nullable": true,
                                        "example": "POLICY-123"
                                    },
                                    "passport": {
                                        "description": "Passport",
                                        "type": "string",
                                        "nullable": true,
                                        "example": "123456789"
                                    },
                                    "description": {
                                        "description": "Description",
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "constitution": {
                                        "description": "Constitution",
                                        "type": "string"
                                    },
                                    "conformation": {
                                        "description": "Conformation",
                                        "type": "string"
                                    },
                                    "allergies": {
                                        "description": "Allergies",
                                        "type": "string"
                                    },
                                    "blood_type_id": {
                                        "description": "Blood Type Id (see blood-types endpoint) Do not send empty value, omit the key completely",
                                        "type": "integer"
                                    },
                                    "hormonal_status": {
                                        "description": "Hormonal Status (0=neutered,1=normal,2=unknown)",
                                        "type": "integer",
                                        "enum": [
                                            0,
                                            1,
                                            2
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "Pet",
                                            "description": "A pet is an individual entity unique in all of Figitail. A pet can have a single PetParent, multiple contact persons and can be present on multiple clinics. The linkage between a pet and a clinics is called a patient.",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "nickname": {
                                                    "type": "string",
                                                    "example": "Fritz"
                                                },
                                                "species_id": {
                                                    "type": "string",
                                                    "example": "1"
                                                },
                                                "breed_id": {
                                                    "type": "string",
                                                    "example": "1"
                                                },
                                                "trupanion_species": {
                                                    "type": "object",
                                                    "nullable": true,
                                                    "description": "Trupanion species mapping. Present when include=trupanionSpecies is used.",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer",
                                                            "example": 1
                                                        },
                                                        "external_id": {
                                                            "type": "integer",
                                                            "example": 1
                                                        },
                                                        "name": {
                                                            "type": "string",
                                                            "example": "Dog"
                                                        }
                                                    }
                                                },
                                                "trupanion_breed": {
                                                    "type": "object",
                                                    "nullable": true,
                                                    "description": "Trupanion breed mapping. Present when include=trupanionBreed is used.",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer",
                                                            "example": 1
                                                        },
                                                        "external_id": {
                                                            "type": "integer",
                                                            "example": 101
                                                        },
                                                        "name": {
                                                            "type": "string",
                                                            "example": "Golden Retriever"
                                                        }
                                                    }
                                                },
                                                "observations": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": ""
                                                },
                                                "gender": {
                                                    "type": "string",
                                                    "enum": [
                                                        "male",
                                                        "female",
                                                        "unknown"
                                                    ],
                                                    "example": "male"
                                                },
                                                "microchip": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "crossbreed": {
                                                    "type": "string",
                                                    "enum": [
                                                        "0",
                                                        "1"
                                                    ],
                                                    "example": "0"
                                                },
                                                "crossbreed_details_id": {
                                                    "type": "integer",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "crossbreed_details": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "label": {
                                                            "type": "string"
                                                        },
                                                        "breed": {
                                                            "type": "string"
                                                        },
                                                        "species_id": {
                                                            "type": "integer"
                                                        }
                                                    }
                                                },
                                                "color": {
                                                    "type": "string",
                                                    "example": "NavajoWhite"
                                                },
                                                "distinctive_marks": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "birthday": {
                                                    "type": "string",
                                                    "format": "date",
                                                    "example": "1983-03-29"
                                                },
                                                "gender_string": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "chip_number": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "microchip_location": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "insurance_number": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "passport": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": ""
                                                },
                                                "profile_picture": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": "https://dev-1-public-digitail.s3.eu-central-1.amazonaws.com/ionut/uploads/KXy8Rlv2vluiZYqwRCy2"
                                                },
                                                "description": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": "Lorem ipsum"
                                                },
                                                "constitution": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "conformation": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "weight": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "weight_evolution": {
                                                    "type": "integer",
                                                    "nullable": true,
                                                    "enum": [
                                                        0,
                                                        1,
                                                        -1
                                                    ]
                                                },
                                                "allergies": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "nr_recs": {
                                                    "type": "integer",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "blood_type": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "hormonal_status": {
                                                    "type": "integer",
                                                    "enum": [
                                                        0,
                                                        1,
                                                        2
                                                    ],
                                                    "example": 0,
                                                    "description": "0: 'Unknown' 1: 'Intact' 2: 'Neutered'\n"
                                                },
                                                "age": {
                                                    "type": "string",
                                                    "example": "38 Years, 3 Months, 19 Days"
                                                },
                                                "age_breakdown": {
                                                    "type": "object",
                                                    "properties": {
                                                        "years": {
                                                            "type": "integer",
                                                            "example": 38
                                                        },
                                                        "months": {
                                                            "type": "integer",
                                                            "example": 3
                                                        },
                                                        "days": {
                                                            "type": "integer",
                                                            "example": 19
                                                        }
                                                    }
                                                },
                                                "patientNumber": {
                                                    "type": "string",
                                                    "example": "mxc-1 #jwq-1"
                                                },
                                                "is_verified": {
                                                    "type": "string",
                                                    "enum": [
                                                        "0",
                                                        "1"
                                                    ],
                                                    "example": "1"
                                                },
                                                "breeder": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "archive": {
                                                    "type": "object",
                                                    "nullable": true,
                                                    "title": "Archive",
                                                    "description": "Slim resource for archive, usually attached to other resources. Same as PetArchive",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer",
                                                            "example": 1
                                                        },
                                                        "reason": {
                                                            "type": "string",
                                                            "example": "The patient was archived because..."
                                                        },
                                                        "type": {
                                                            "type": "string",
                                                            "enum": [
                                                                "Deceased",
                                                                "Moved away",
                                                                "Change of owner",
                                                                "Other"
                                                            ],
                                                            "example": "Deceased"
                                                        }
                                                    }
                                                },
                                                "patients": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "title": "Patient",
                                                        "description": "The patient entity represents the many-to-many link between a Pet and a Clinic. It holds information that is specific to the relationship between the pet and the clinic, such as the pet's status at that clinic, the internal number.",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "pet_id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "clinic_id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "number": {
                                                                "type": "string",
                                                                "nullable": true,
                                                                "example": "DGT-102"
                                                            },
                                                            "archived_at": {
                                                                "type": "string",
                                                                "nullable": true,
                                                                "format": "date-time",
                                                                "example": "2020-08-16T08:56:44.000000Z"
                                                            },
                                                            "archive_type_id": {
                                                                "type": "integer",
                                                                "nullable": true,
                                                                "example": 1
                                                            },
                                                            "archive_reason": {
                                                                "type": "string",
                                                                "nullable": true,
                                                                "example": "Pet deceased"
                                                            }
                                                        }
                                                    }
                                                },
                                                "birthday_estimated": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "rabic_tag_number": {
                                                    "type": "string",
                                                    "example": "12109384"
                                                },
                                                "updated_at": {
                                                    "type": "string",
                                                    "example": "2020-06-12 15:45:43"
                                                },
                                                "insurance": {
                                                    "type": "object",
                                                    "title": "Insurance",
                                                    "description": "Pet insurance information",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer",
                                                            "example": 1
                                                        },
                                                        "pet_id": {
                                                            "type": "integer",
                                                            "example": 100
                                                        },
                                                        "provider": {
                                                            "type": "string",
                                                            "example": "trupanion"
                                                        },
                                                        "policy_id": {
                                                            "type": "string",
                                                            "nullable": true,
                                                            "example": "abc-123-def"
                                                        },
                                                        "edo_status": {
                                                            "type": "string",
                                                            "nullable": true,
                                                            "enum": [
                                                                "pending",
                                                                "active",
                                                                "failed",
                                                                "pending_reconfirmation"
                                                            ],
                                                            "description": "`pending` - Certificate issued, awaiting activation\n`active` - Certificate activated\n`failed` - Certificate failed or expired\n`pending_reconfirmation` - Pending reconfirmation by the pet owner\n",
                                                            "example": "active"
                                                        },
                                                        "edo_last_sent_at": {
                                                            "type": "string",
                                                            "format": "date-time",
                                                            "nullable": true,
                                                            "example": "2026-05-05T10:00:00Z"
                                                        },
                                                        "edo_activated_at": {
                                                            "type": "string",
                                                            "format": "date-time",
                                                            "nullable": true,
                                                            "example": "2026-05-06T09:00:00Z"
                                                        },
                                                        "edo_reconfirmed_at": {
                                                            "type": "string",
                                                            "format": "date-time",
                                                            "nullable": true,
                                                            "example": null
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/pets/{id}": {
            "get": {
                "tags": [
                    "Pets"
                ],
                "summary": "Retrieve a Pet",
                "description": "Permissions needed: ACCESS_PATIENTS\nReturns a Pet record\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include. You can use multiple, comma separated. Options: species,breed,trupanionSpecies,trupanionBreed,crossBreed,owners,owners.clients,owners.chatUser,clinics,vetPetRequests.clinic",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "append",
                        "in": "query",
                        "description": "Additional attributes to include(comma separated attributes. Ex: <i>hormonalStatusString,mandatoryScheme,weightEvolution<i/>)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/paths/~1api~1v1~1pets/post/responses/201/content/application~1json/schema/properties/data"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "post": {
                "tags": [
                    "Pets"
                ],
                "summary": "Update a Pet",
                "description": "Permissions needed: UPDATE_PATIENTS\nUpdate Pet by ID, empty values will overwrite, omit key to leave unchanged\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "X-HTTP-METHOD-OVERRIDE",
                        "in": "header",
                        "description": "PATCH header",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "default": "PATCH"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "allOf": [
                                    {
                                        "$ref": "#/paths/~1api~1v1~1pets~1%7Bid%7D/patch/requestBody/content/application~1json/schema"
                                    },
                                    {
                                        "type": "object",
                                        "properties": {
                                            "avatar": {
                                                "description": "Profile picture.",
                                                "type": "string",
                                                "format": "binary",
                                                "example": "avatar.jpg"
                                            }
                                        }
                                    }
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/paths/~1api~1v1~1pets/post/responses/201/content/application~1json/schema/properties/data"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "patch": {
                "tags": [
                    "Pets"
                ],
                "summary": "Update a Pet (JSON)",
                "description": "Permissions needed: UPDATE_PATIENTS\nUpdate Pet by ID, empty values will overwrite, omit key to leave unchanged.\nFor text-only updates (no photo). To upload a new avatar, use the multipart/form-data operation on this same path instead, since file uploads are not delivered on a native PATCH request body.\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "nickname": {
                                        "description": "Nickname",
                                        "type": "string",
                                        "example": "Fluffy"
                                    },
                                    "birthday": {
                                        "description": "Birthday (Y-m-d)",
                                        "type": "string",
                                        "example": "2017-11-28"
                                    },
                                    "species_id": {
                                        "nullable": true,
                                        "description": "Species Id.",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "breed_id": {
                                        "description": "Breed ID.",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "crossbreed": {
                                        "description": "Set to true if crossbreed. Do not send empty value, omit the key completely",
                                        "type": "boolean"
                                    },
                                    "crossbreed_details": {
                                        "description": "Crossbreed id (see breeds endpoint) Do not send empty value, omit the key completely",
                                        "type": "string"
                                    },
                                    "color": {
                                        "description": "Color",
                                        "type": "string",
                                        "example": "Pink"
                                    },
                                    "color_mask": {
                                        "description": "Color mask",
                                        "nullable": true,
                                        "type": "array",
                                        "items": {
                                            "type": "integer",
                                            "example": 1
                                        }
                                    },
                                    "distinctive_marks": {
                                        "description": "Distinctive marks",
                                        "type": "string",
                                        "example": "One spot on right ear"
                                    },
                                    "gender": {
                                        "description": "Gender",
                                        "type": "string",
                                        "enum": [
                                            "male",
                                            "female",
                                            "unknown"
                                        ]
                                    },
                                    "observations": {
                                        "description": "Observations (Pet notes)",
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "chip_number": {
                                        "description": "Chip number",
                                        "type": "string",
                                        "nullable": true,
                                        "example": "123456789"
                                    },
                                    "microchip_location": {
                                        "description": "Microchip  Location",
                                        "type": "string",
                                        "nullable": true,
                                        "example": "Neck"
                                    },
                                    "insurance_number": {
                                        "description": "Insurance Number",
                                        "type": "string",
                                        "nullable": true,
                                        "example": "123456789"
                                    },
                                    "insurance_provider": {
                                        "description": "Insurance Provider",
                                        "type": "string",
                                        "nullable": true,
                                        "example": "Petplan"
                                    },
                                    "policy_id": {
                                        "description": "Policy ID",
                                        "type": "string",
                                        "nullable": true,
                                        "example": "POLICY-123"
                                    },
                                    "passport": {
                                        "description": "Passport",
                                        "type": "string",
                                        "nullable": true,
                                        "example": "123456789"
                                    },
                                    "description": {
                                        "description": "Description",
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "constitution": {
                                        "description": "Constitution",
                                        "type": "string"
                                    },
                                    "conformation": {
                                        "description": "Conformation",
                                        "type": "string"
                                    },
                                    "allergies": {
                                        "description": "Allergies",
                                        "type": "string"
                                    },
                                    "blood_type_id": {
                                        "description": "Blood Type Id (see blood-types endpoint) Do not send empty value, omit the key completely",
                                        "type": "integer"
                                    },
                                    "hormonal_status": {
                                        "description": "Hormonal Status (0=neutered,1=normal,2=unknown)",
                                        "type": "integer",
                                        "enum": [
                                            0,
                                            1,
                                            2
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/paths/~1api~1v1~1pets/post/responses/201/content/application~1json/schema/properties/data"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/pets/{id}/weights": {
            "get": {
                "tags": [
                    "Pets"
                ],
                "summary": "List all Weights for Pet",
                "description": "Permissions needed: ACCESS_PATIENTS\nReturns the list of Weights for Pet\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "filter[type]",
                        "in": "query",
                        "description": "Who registerd the Weights(ex.: <i>vet<i/> | <i>owner</i>)",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "example": "vet"
                    },
                    {
                        "name": "filter[clinic_id]",
                        "in": "query",
                        "description": "Clinic ID (<font color='red'>required</font> when <i>filter[type]</i> is  <i>vet</i>)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "Weight",
                                            "properties": {
                                                "clinic_unit": {
                                                    "type": "string",
                                                    "example": "lbs"
                                                },
                                                "last_weight_value": {
                                                    "type": "number",
                                                    "example": 79.38
                                                },
                                                "weight_trend_is_up": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "weights": {
                                                    "type": "object",
                                                    "properties": {
                                                        "dateTimes": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string",
                                                                "format": "date-time"
                                                            },
                                                            "example": [
                                                                "17-01-2020",
                                                                "21-01-2020",
                                                                "26-02-2020",
                                                                "31-03-2020",
                                                                "29-04-2020",
                                                                "08-05-2020",
                                                                "12-05-2020",
                                                                "14-05-2020",
                                                                "18-05-2020",
                                                                "19-05-2020",
                                                                "26-05-2020",
                                                                "10-06-2020",
                                                                "10-06-2020",
                                                                "15-06-2020",
                                                                "17-06-2020"
                                                            ]
                                                        },
                                                        "kg": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "number",
                                                                "format": "float"
                                                            },
                                                            "example": [
                                                                71,
                                                                71,
                                                                22,
                                                                20,
                                                                28,
                                                                20,
                                                                20,
                                                                22,
                                                                40,
                                                                32,
                                                                24,
                                                                30,
                                                                23,
                                                                35,
                                                                36
                                                            ]
                                                        },
                                                        "lbs": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "number",
                                                                "format": "float"
                                                            },
                                                            "example": [
                                                                156.555,
                                                                156.555,
                                                                48.51,
                                                                44.1,
                                                                61.74,
                                                                44.1,
                                                                44.1,
                                                                48.51,
                                                                88.2,
                                                                70.56,
                                                                52.92,
                                                                66.15,
                                                                50.715,
                                                                77.175,
                                                                79.38
                                                            ]
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "post": {
                "tags": [
                    "Pets"
                ],
                "summary": "Create a Weight for Pet",
                "description": "Permissions needed: ACCESS_PATIENTS\nStore weights for Pet\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "requestBody": {
                    "description": "For <b>measurement_unit_id</b>:<i>1 - kg ; 2 - lbs</i>",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "clinic_id": {
                                        "description": "Clinic ID",
                                        "type": "integer",
                                        "example": 766
                                    },
                                    "vet_id": {
                                        "description": "Vet ID",
                                        "type": "integer",
                                        "nullable": true,
                                        "example": null
                                    },
                                    "value": {
                                        "description": "Weight value",
                                        "type": "number",
                                        "example": 12
                                    },
                                    "measurement_unit_id": {
                                        "description": "Measurement unit id (<i>1 - kg ; 2 - lbs</i>)",
                                        "type": "number",
                                        "enum": [
                                            1,
                                            2
                                        ],
                                        "example": 1
                                    },
                                    "date": {
                                        "description": "Measurement date( Y-m-d)",
                                        "type": "string",
                                        "format": "date",
                                        "nullable": true,
                                        "example": null
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {}
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "example": {
                                        "message": "The given data was invalid.",
                                        "errors": {
                                            "measurement_id": [
                                                "The selected measurement id is invalid."
                                            ]
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/pets/{id}/weights/{measurement_id}": {
            "patch": {
                "tags": [
                    "Pets"
                ],
                "summary": "Update a Weight for Pet",
                "description": "Permissions needed: ACCESS_PATIENTS\nUpdate weights Weights for Pet\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "measurement_id",
                        "in": "path",
                        "description": "Measurement Id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "description": "For <b>measurement_unit_id</b>:<i>1 - kg ; 2 - lbs</i>",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "vet_id": {
                                        "description": "Vet ID",
                                        "type": "integer",
                                        "nullable": true,
                                        "example": null
                                    },
                                    "value": {
                                        "description": "Weight value",
                                        "type": "number",
                                        "example": 12.5
                                    },
                                    "measurement_unit_id": {
                                        "description": "Measurement unit id (<i>1 - kg ; 2 - lbs</i>)",
                                        "type": "integer",
                                        "enum": [
                                            1,
                                            2
                                        ],
                                        "example": 1
                                    },
                                    "date": {
                                        "description": "Measurement date(Y-m-d)",
                                        "type": "string",
                                        "format": "date",
                                        "nullable": true,
                                        "example": null
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/responses/204"
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "example": {
                                        "message": "The given data was invalid.",
                                        "errors": {
                                            "measurement_id": [
                                                "The selected measurement id is invalid."
                                            ]
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Pets"
                ],
                "summary": "Delete a Weight for Pet",
                "description": "Permissions needed: ACCESS_PATIENTS\nDelete Pet's Weight from measurements\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "measurement_id",
                        "in": "path",
                        "description": "Measurement Id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/responses/204"
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/pets/{id}/temperatures": {
            "get": {
                "tags": [
                    "Pets"
                ],
                "summary": "List all Temperatures for Pet",
                "description": "Permissions needed: ACCESS_PATIENTS\nReturns the list of Temperatures for Pet\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "filter[type]",
                        "in": "query",
                        "description": "Who registerd the Temperatures(ex.: <i>vet<i/> | <i>owner</i>)",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "example": "vet"
                    },
                    {
                        "name": "filter[clinic_id]",
                        "in": "query",
                        "description": "Clinic ID (<font color='red'>required</font> when <i>filter[type]</i> is  <i>vet</i>)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "Weight",
                                            "properties": {
                                                "clinic_unit": {
                                                    "type": "string",
                                                    "example": "°F"
                                                },
                                                "last_temperature_value": {
                                                    "type": "number",
                                                    "example": 99
                                                },
                                                "temperature_trend_is_up": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "temperatures": {
                                                    "type": "object",
                                                    "properties": {
                                                        "dateTimes": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string",
                                                                "format": "date-time"
                                                            },
                                                            "example": [
                                                                "17-01-2020",
                                                                "21-01-2020"
                                                            ]
                                                        },
                                                        "°C": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "number",
                                                                "format": "float"
                                                            },
                                                            "example": [
                                                                35.55,
                                                                37.22
                                                            ]
                                                        },
                                                        "°F": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "number",
                                                                "format": "float"
                                                            },
                                                            "example": [
                                                                96,
                                                                99
                                                            ]
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "post": {
                "tags": [
                    "Pets"
                ],
                "summary": "Create a Temperature for Pet",
                "description": "Permissions needed: ACCESS_PATIENTS\nStore temperatures for Pet\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "requestBody": {
                    "description": "For <b>measurement_unit_id</b>:<i>3 - °C ; 4 - °F</i>",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "clinic_id": {
                                        "description": "Clinic ID",
                                        "type": "integer",
                                        "example": 766
                                    },
                                    "vet_id": {
                                        "description": "Vet ID",
                                        "type": "integer",
                                        "nullable": true,
                                        "example": null
                                    },
                                    "value": {
                                        "description": "Temperature value",
                                        "type": "number",
                                        "example": 35
                                    },
                                    "measurement_unit_id": {
                                        "description": "Measurement unit id (<i>3 - °C ; 4 - °F</i>)",
                                        "type": "number",
                                        "enum": [
                                            1,
                                            2
                                        ],
                                        "example": 1
                                    },
                                    "date": {
                                        "description": "Measurement date( Y-m-d)",
                                        "type": "string",
                                        "format": "date",
                                        "nullable": true,
                                        "example": null
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {}
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "example": {
                                        "message": "The given data was invalid.",
                                        "errors": {
                                            "measurement_id": [
                                                "The selected measurement id is invalid."
                                            ]
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/pets/{id}/temperatures/{measurement_id}": {
            "patch": {
                "tags": [
                    "Pets"
                ],
                "summary": "Update a Temperature for Pet",
                "description": "Permissions needed: ACCESS_PATIENTS\nUpdate temperatures for Pet\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "measurement_id",
                        "in": "path",
                        "description": "Measurement Id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "description": "For <b>measurement_unit_id</b>:<i>3 - °C ; 4 - °F</i>",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "vet_id": {
                                        "description": "Vet ID",
                                        "type": "integer",
                                        "nullable": true,
                                        "example": null
                                    },
                                    "value": {
                                        "description": "Temperature value",
                                        "type": "number",
                                        "example": 35.6
                                    },
                                    "measurement_unit_id": {
                                        "description": "Measurement unit id (<i>3 - °C ; 4 - °F</i>)",
                                        "type": "integer",
                                        "enum": [
                                            1,
                                            2
                                        ],
                                        "example": 1
                                    },
                                    "date": {
                                        "description": "Measurement date(Y-m-d)",
                                        "type": "string",
                                        "format": "date",
                                        "nullable": true,
                                        "example": null
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/responses/204"
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "example": {
                                        "message": "The given data was invalid.",
                                        "errors": {
                                            "measurement_id": [
                                                "The selected measurement id is invalid."
                                            ]
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Pets"
                ],
                "summary": "Delete a Temperature for Pet",
                "description": "Permissions needed: ACCESS_PATIENTS\nDelete Pet's Temperature from measurements\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "measurement_id",
                        "in": "path",
                        "description": "Measurement Id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/responses/204"
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/pets/{id}/archive": {
            "get": {
                "tags": [
                    "Pets Archive"
                ],
                "summary": "Check Pet Archive",
                "description": "Permissions needed: ACCESS_PATIENTS\nReturns the list of Archive info for Pet\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/0"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/1"
                    },
                    {
                        "name": "filter[archive_type_id]",
                        "in": "query",
                        "description": "Archive type ID ",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "enum": [
                                1,
                                2,
                                3,
                                4
                            ],
                            "description": "`1` - Deceased `2` - Moved away `3` - Change of owner `4` - Other\n"
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1tags/get/parameters/5"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "title": "PetArchive",
                                                "description": "The record of a pet being archived. Larger version of the simple Archive",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "pet_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "vet_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "clinic_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "archive_type_id": {
                                                        "type": "integer",
                                                        "enum": [
                                                            1,
                                                            2,
                                                            3,
                                                            4
                                                        ],
                                                        "description": "`1` - Deceased `2` - Moved away `3` - Change of owner `4` - Other\n",
                                                        "example": 1
                                                    },
                                                    "reason": {
                                                        "type": "string",
                                                        "example": "The patient was archived because..."
                                                    },
                                                    "created_at": {
                                                        "type": "string",
                                                        "example": "2023-06-21T10:30:07.000000Z"
                                                    }
                                                }
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links"
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "post": {
                "tags": [
                    "Pets Archive"
                ],
                "summary": "Archive Pet",
                "description": "Permissions needed: ACCESS_PATIENTS\nArchive a Pet\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "clinic_id": {
                                        "description": "Clinic ID",
                                        "type": "integer",
                                        "example": 766
                                    },
                                    "vet_id": {
                                        "description": "Vet ID",
                                        "type": "integer",
                                        "nullable": true,
                                        "example": null
                                    },
                                    "archive_type_id": {
                                        "type": "integer",
                                        "enum": [
                                            1,
                                            2,
                                            3,
                                            4
                                        ],
                                        "description": "`1` - Deceased `2` - Moved away `3` - Change of owner `4` - Other\n"
                                    },
                                    "reason": {
                                        "description": "Reason/Comment",
                                        "type": "string",
                                        "example": "We archived Daisy because she moved away."
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/responses/204"
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/pets/{id}/medications": {
            "get": {
                "tags": [
                    "Medication"
                ],
                "summary": "List all Medications for Pet",
                "description": "Permissions needed: ACCESS_PATIENTS\nReturns the list of Medication for Pet\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "MedicationCategoryWrapper",
                                            "properties": {
                                                "dietsTatus": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/paths/~1api~1v1~1pets~1%7Bid%7D~1periodical-treatments/get/responses/200/content/application~1json/schema/properties/data/items"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/pets/{id}/un-archive": {
            "post": {
                "tags": [
                    "Pets Archive"
                ],
                "summary": "UnArchive Pet",
                "description": "Permissions needed: ACCESS_PATIENTS\nUnArchive a Pet\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "clinic_id": {
                                        "description": "Clinic ID",
                                        "type": "integer",
                                        "example": 766
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/responses/204"
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/pets/{id}/periodical-treatments": {
            "get": {
                "tags": [
                    "Periodical Treatments"
                ],
                "summary": "List all PeriodicalTreatments",
                "description": "Permissions needed: ACCESS_PATIENTS\nReturns the list of PeriodicalTreatments for Pet\nUse `api/v1/reminder-protocol-usages` instead\n",
                "deprecated": true,
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1files/get/parameters/6"
                    },
                    {
                        "name": "filter[type]",
                        "in": "query",
                        "description": "`1` - Vaccination `2` - Rabies Vaccination `3` - Worm Treatment `4` - Flea Treatment `5` - Diet Treatment `6` - Hormonal Change (neuter/spay) `7` - Heartworm Treatment `See full ist of treatment types at api/v1/treatment-types`\n",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "enum": [
                                1,
                                2,
                                3,
                                4,
                                5,
                                6
                            ]
                        },
                        "example": 1
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include. You can use multiple, comma separated. Options: caseFile,printedFilesCertificates.printed_file,therapy",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "example": "caseFile,therapy,printedFilesCertificates.printed_file"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1tags/get/parameters/5"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/11"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "title": "PeriodicalTreatment",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "pet_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "file_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "product_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "treatment_mapping_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "fileCase": {
                                                        "$ref": "#/paths/~1api~1v1~1records/post/responses/201/content/application~1json/schema/properties/data"
                                                    },
                                                    "treatment": {
                                                        "type": "object",
                                                        "title": "TherapyData",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                    "Treatment",
                                                                    "SoldServicePackageProduct",
                                                                    "SoldServicePackage",
                                                                    "HistoricalTreatment"
                                                                ],
                                                                "example": "Treatment"
                                                            },
                                                            "product_name": {
                                                                "type": "string",
                                                                "example": "Nobivac Rabies"
                                                            },
                                                            "tag_number": {
                                                                "type": "string",
                                                                "example": "123456789"
                                                            },
                                                            "batch_no": {
                                                                "type": "string",
                                                                "example": "tr22"
                                                            },
                                                            "expiration_date": {
                                                                "type": "string",
                                                                "example": "2022-01-01"
                                                            },
                                                            "product_manufacturer": {
                                                                "type": "string",
                                                                "example": ""
                                                            },
                                                            "administration_date": {
                                                                "type": "string",
                                                                "example": "2021-11-19"
                                                            },
                                                            "due_date": {
                                                                "type": "string",
                                                                "example": "2022-11-19"
                                                            },
                                                            "product_category_id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            }
                                                        }
                                                    },
                                                    "certificates": {
                                                        "type": "array",
                                                        "items": {
                                                            "$ref": "#/paths/~1api~1v1~1pets~1%7Bid%7D~1periodical-treatments~1hormonal-change-certificate/get/responses/200/content/application~1json/schema/properties/data"
                                                        }
                                                    }
                                                }
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links"
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/pets/{id}/periodical-treatments/hormonal-change-certificate": {
            "get": {
                "tags": [
                    "Periodical Treatments"
                ],
                "summary": "Retrieve hormonal change Certificate",
                "description": "Permissions needed: ACCESS_PATIENTS\nGet Hormonal Change (Spay/Neuter) Certificate\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "clinic_id",
                        "in": "query",
                        "description": "Id of the clinic from where the entity was created",
                        "style": "form",
                        "explode": false,
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "PrintedFile",
                                            "description": "A PrintedFile represents either a form or a certificate that has been created for a patient.",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 9
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "title": {
                                                    "type": "string",
                                                    "example": "Rabies Certificate For Daisy"
                                                },
                                                "real_name": {
                                                    "type": "string",
                                                    "example": "Rabies Certificate For Daisy.pdf"
                                                },
                                                "printable_file_id": {
                                                    "type": "string",
                                                    "example": "1086"
                                                },
                                                "vet_id": {
                                                    "type": "string",
                                                    "example": "1568"
                                                },
                                                "patient_id": {
                                                    "type": "string",
                                                    "example": "316635"
                                                },
                                                "pet_id": {
                                                    "type": "string",
                                                    "example": "316635"
                                                },
                                                "token": {
                                                    "type": "string"
                                                },
                                                "notified_at": {
                                                    "type": "string",
                                                    "example": "2021-11-19T13:40:23.000000Z"
                                                },
                                                "signed_at": {
                                                    "type": "string",
                                                    "example": "2021-11-19T13:40:23.000000Z"
                                                },
                                                "confirmed_at": {
                                                    "type": "string",
                                                    "example": "2021-11-19T13:40:23.000000Z"
                                                },
                                                "has_signature_shortcode": {
                                                    "type": "boolean"
                                                },
                                                "has_fillable_inputs": {
                                                    "type": "boolean"
                                                },
                                                "type": {
                                                    "type": "string",
                                                    "enum": [
                                                        "form",
                                                        "certificate"
                                                    ]
                                                },
                                                "created_at": {
                                                    "type": "string",
                                                    "example": "2021-11-19T13:40:23.000000Z"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/pets/{id}/prescriptions": {
            "get": {
                "tags": [
                    "Prescriptions"
                ],
                "summary": "List all Prescriptions for Pet",
                "description": "Permissions needed: ACCESS_PATIENTS\nGet pet's prescriptions\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/0"
                    },
                    {
                        "name": "filter[status]",
                        "in": "query",
                        "description": "Prescription's Status",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1tags/get/parameters/5"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1api~1v1~1pets~1%7Bid%7D~1prescriptions/post/responses/201/content/application~1json/schema/properties/data"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links"
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "post": {
                "tags": [
                    "Prescriptions"
                ],
                "summary": "Create Prescription for Pet",
                "description": "Permissions needed: ACCESS_PATIENTS\nStore Prescriptions for a specific patient\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "clinic_id",
                                    "vet_id",
                                    "quantity",
                                    "prescribed_at",
                                    "status",
                                    "max_refills"
                                ],
                                "properties": {
                                    "record_id": {
                                        "type": "integer",
                                        "nullable": true,
                                        "example": 1
                                    },
                                    "clinic_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "vet_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "product_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "product_name": {
                                        "description": "(<font color='red'>required</font> when <i>product_id</i> is  <i>null</i>)",
                                        "type": "string"
                                    },
                                    "type": {
                                        "type": "integer",
                                        "enum": [
                                            0,
                                            1
                                        ],
                                        "description": "`0` - External `1` - In House\n",
                                        "example": 0
                                    },
                                    "quantity": {
                                        "type": "integer",
                                        "example": 5
                                    },
                                    "unit_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "unit": {
                                        "description": "(<font color='red'>required</font> when <i>unit_id</i> is  <i>null</i>)",
                                        "type": "string",
                                        "example": "Tablet"
                                    },
                                    "label": {
                                        "description": "Label",
                                        "type": "string",
                                        "nullable": true,
                                        "example": "1/2 Tablet every day"
                                    },
                                    "prescribed_at": {
                                        "type": "string",
                                        "format": "date",
                                        "example": "2020-01-01"
                                    },
                                    "expiration_date": {
                                        "type": "string",
                                        "format": "date",
                                        "example": "2020-01-01"
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "ACTIVE",
                                            "INACTIVE"
                                        ],
                                        "example": "ACTIVE"
                                    },
                                    "internal_notes": {
                                        "type": "string",
                                        "nullable": true,
                                        "example": "Internal notes"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "Prescription",
                                            "description": "Prescriptions can be dispensed to patients for medications.",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "record_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "clinic_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "vet_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "pet_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "product_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "product_name": {
                                                    "type": "string",
                                                    "example": "Product name",
                                                    "nullable": true
                                                },
                                                "type": {
                                                    "type": "integer",
                                                    "enum": [
                                                        0,
                                                        1
                                                    ],
                                                    "description": "`0` - External `1` - In House\n",
                                                    "example": 0
                                                },
                                                "quantity": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "unit_id": {
                                                    "type": "integer",
                                                    "nullable": true,
                                                    "example": 1
                                                },
                                                "unit": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": "Unit"
                                                },
                                                "label": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": "Administer 1 tablet by mouth every 12 hours for 7 days"
                                                },
                                                "prescribed_at": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "example": "2020-01-01T00:00:00Z"
                                                },
                                                "expires_at": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "example": "2020-01-01T00:00:00Z"
                                                },
                                                "status": {
                                                    "type": "string",
                                                    "enum": [
                                                        "ACTIVE",
                                                        "INACTIVE"
                                                    ],
                                                    "example": "ACTIVE"
                                                },
                                                "delivery_status": {
                                                    "type": "string",
                                                    "example": "Complete"
                                                },
                                                "delivery_provider": {
                                                    "type": "string",
                                                    "example": "vetsource"
                                                },
                                                "internal_notes": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": "Internal notes"
                                                },
                                                "product_ext_id": {
                                                    "type": "string"
                                                },
                                                "prescription_ext_id": {
                                                    "type": "string"
                                                },
                                                "order_ext_id": {
                                                    "type": "string"
                                                },
                                                "refills_received": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "max_refills": {
                                                    "type": "integer",
                                                    "example": 3
                                                },
                                                "last_refill_at": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "example": "2020-01-01T00:00:00Z"
                                                },
                                                "refills": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/paths/~1api~1v1~1prescriptions~1%7Bid%7D~1refills/post/responses/201/content/application~1json/schema/properties/data"
                                                    }
                                                },
                                                "created_at": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "example": "2022-02-06T22:00:00.000000Z"
                                                },
                                                "updated_at": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "example": "2022-02-06T22:00:00.000000Z"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "$ref": "#/paths/~1api~1v1~1files/post/responses/422"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/pets/{id}/prescriptions/{prescription}": {
            "get": {
                "tags": [
                    "Prescriptions"
                ],
                "summary": "Retrieve Prescription for Pet",
                "description": "Permissions needed: ACCESS_PATIENTS\nGet pet's prescription by id\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "prescription",
                        "in": "path",
                        "description": "Prescription Id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include. Ex.: 'clinic','record','product','vet','pet','pet.owners','pet.breed','pet.species','refills','refills.refillProducts'",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/paths/~1api~1v1~1pets~1%7Bid%7D~1prescriptions/post/responses/201/content/application~1json/schema/properties/data"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "patch": {
                "tags": [
                    "Prescriptions"
                ],
                "summary": "Update Prescription for Pet",
                "description": "Permissions needed: ACCESS_PATIENTS\nUpdate Prescriptions for Pet\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "prescription",
                        "in": "path",
                        "description": "Prescription Id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "vet_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "product_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "product_name": {
                                        "description": "(<font color='red'>required</font> when <i>product_id</i> is  <i>null</i>)",
                                        "type": "string"
                                    },
                                    "type": {
                                        "type": "integer",
                                        "enum": [
                                            0,
                                            1
                                        ],
                                        "description": "`0` - External `1` - In House\n",
                                        "example": 0
                                    },
                                    "quantity": {
                                        "type": "integer",
                                        "example": 5
                                    },
                                    "unit_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "unit": {
                                        "description": "(<font color='red'>required</font> when <i>unit_id</i> is  <i>null</i>)",
                                        "type": "string",
                                        "example": "Tablet"
                                    },
                                    "label": {
                                        "description": "Label",
                                        "type": "string",
                                        "nullable": true,
                                        "example": "1/2 Tablet every day"
                                    },
                                    "prescribed_at": {
                                        "type": "string",
                                        "format": "date",
                                        "example": "2020-01-01"
                                    },
                                    "expiration_date": {
                                        "type": "string",
                                        "format": "date",
                                        "example": "2020-01-01"
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "ACTIVE",
                                            "INACTIVE"
                                        ],
                                        "example": "ACTIVE"
                                    },
                                    "internal_notes": {
                                        "type": "string",
                                        "nullable": true,
                                        "example": "Internal notes"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/paths/~1api~1v1~1pets~1%7Bid%7D~1prescriptions/post/responses/201/content/application~1json/schema/properties/data"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "$ref": "#/paths/~1api~1v1~1files/post/responses/422"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Prescriptions"
                ],
                "summary": "Delete Prescription for Pet",
                "description": "Permissions needed: ACCESS_PATIENTS\nDelete a pet Prescriptions\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "prescription",
                        "in": "path",
                        "description": "Prescription Id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/responses/204"
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/pets-report/aggregated": {
            "get": {
                "tags": [
                    "Reports"
                ],
                "summary": "Get aggregated report about Patients",
                "description": "Permissions needed: NONE\nReturns aggregated reports about patients in the currently authenticated user's clinic\n",
                "parameters": [
                    {
                        "name": "without_archived",
                        "in": "query",
                        "description": "if true, will exclude archived patients from the report",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "species": {
                                                    "type": "object",
                                                    "properties": {
                                                        "chart": {
                                                            "type": "object",
                                                            "properties": {
                                                                "labels": {
                                                                    "type": "array",
                                                                    "items": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "series": {
                                                                    "type": "array",
                                                                    "items": {
                                                                        "type": "number"
                                                                    }
                                                                }
                                                            }
                                                        },
                                                        "breakdown": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "properties": {
                                                                    "label": {
                                                                        "type": "string"
                                                                    },
                                                                    "amount": {
                                                                        "type": "integer"
                                                                    },
                                                                    "value": {
                                                                        "type": "string"
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                },
                                                "breeds": {
                                                    "type": "object",
                                                    "properties": {
                                                        "chart": {
                                                            "type": "object",
                                                            "properties": {
                                                                "labels": {
                                                                    "type": "array",
                                                                    "items": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "series": {
                                                                    "type": "array",
                                                                    "items": {
                                                                        "type": "number"
                                                                    }
                                                                }
                                                            }
                                                        },
                                                        "breakdown": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "properties": {
                                                                    "label": {
                                                                        "type": "string"
                                                                    },
                                                                    "amount": {
                                                                        "type": "integer"
                                                                    },
                                                                    "value": {
                                                                        "type": "string"
                                                                    },
                                                                    "species_id": {
                                                                        "type": "integer"
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                },
                                                "age": {
                                                    "type": "object",
                                                    "properties": {
                                                        "chart": {
                                                            "type": "object",
                                                            "properties": {
                                                                "labels": {
                                                                    "type": "array",
                                                                    "items": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "series": {
                                                                    "type": "array",
                                                                    "items": {
                                                                        "type": "number"
                                                                    }
                                                                }
                                                            }
                                                        },
                                                        "breakdown": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "properties": {
                                                                    "label": {
                                                                        "type": "string"
                                                                    },
                                                                    "amount": {
                                                                        "type": "integer"
                                                                    },
                                                                    "value": {
                                                                        "type": "string"
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                },
                                                "reproductive_status": {
                                                    "type": "object",
                                                    "properties": {
                                                        "chart": {
                                                            "type": "object",
                                                            "properties": {
                                                                "labels": {
                                                                    "type": "array",
                                                                    "items": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                "series": {
                                                                    "type": "array",
                                                                    "items": {
                                                                        "type": "number"
                                                                    }
                                                                }
                                                            }
                                                        },
                                                        "breakdown": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "properties": {
                                                                    "label": {
                                                                        "type": "string"
                                                                    },
                                                                    "amount": {
                                                                        "type": "integer"
                                                                    },
                                                                    "value": {
                                                                        "type": "string"
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/prescriptions/{id}/refills": {
            "get": {
                "tags": [
                    "Prescriptions"
                ],
                "summary": "List all Refills for Prescription",
                "description": "Permissions needed: ACCESS_PATIENTS\nGet prescription's refills\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include. Ex.: refillProducts",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1tags/get/parameters/5"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1api~1v1~1prescriptions~1%7Bid%7D~1refills/post/responses/201/content/application~1json/schema/properties/data"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links"
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "post": {
                "tags": [
                    "Prescriptions"
                ],
                "summary": "Create Refill for Prescription",
                "description": "Permissions needed: ACCESS_PATIENTS\nCreate a new refill for a said prescription\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "record_id",
                                    "vet_id",
                                    "refilled_at"
                                ],
                                "properties": {
                                    "record_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "vet_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "type": {
                                        "type": "integer",
                                        "enum": [
                                            0,
                                            1
                                        ],
                                        "description": "`0` - External `1` - In House\n",
                                        "example": 0
                                    },
                                    "label": {
                                        "type": "string",
                                        "example": "1/2 Tablet every day",
                                        "nullable": true
                                    },
                                    "refilled_at": {
                                        "type": "string",
                                        "format": "date",
                                        "example": "2020-01-01"
                                    },
                                    "internal_notes": {
                                        "type": "string",
                                        "example": "Internal notes",
                                        "nullable": true
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "Refill",
                                            "description": "An individual refill of a prescription.",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "prescription_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "record_id": {
                                                    "type": "integer",
                                                    "example": 1,
                                                    "nullable": true
                                                },
                                                "vet_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "type": {
                                                    "type": "integer",
                                                    "enum": [
                                                        0,
                                                        1
                                                    ],
                                                    "description": "`0` - External `1` - In House\n",
                                                    "example": 0
                                                },
                                                "label": {
                                                    "type": "string",
                                                    "example": "Refill",
                                                    "nullable": true
                                                },
                                                "refilled_at": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "example": "2020-01-01T00:00:00.000Z"
                                                },
                                                "is_initial": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "number": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "internal_notes": {
                                                    "type": "string",
                                                    "example": "Internal Notes",
                                                    "nullable": true
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "$ref": "#/paths/~1api~1v1~1files/post/responses/422"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/prescriptions/{id}/refills/{refill}": {
            "get": {
                "tags": [
                    "Prescriptions"
                ],
                "summary": "Retrieve Refill for Prescription",
                "description": "Permissions needed: ACCESS_PATIENTS\nGet prescription's refill by id\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "refill",
                        "in": "path",
                        "description": "Prescription Refill Id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include. Ex.: refillProducts",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/paths/~1api~1v1~1prescriptions~1%7Bid%7D~1refills/post/responses/201/content/application~1json/schema/properties/data"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "patch": {
                "tags": [
                    "Prescriptions"
                ],
                "summary": "Update Refill for Prescription",
                "description": "Permissions needed: ACCESS_PATIENTS\nUpdate a specific refill for a prescription\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "refill",
                        "in": "path",
                        "description": "Refill Id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "vet_id"
                                ],
                                "properties": {
                                    "vet_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "type": {
                                        "type": "integer",
                                        "enum": [
                                            0,
                                            1
                                        ],
                                        "description": "`0` - External `1` - In House\n",
                                        "example": 0
                                    },
                                    "refilled_at": {
                                        "type": "string",
                                        "format": "date",
                                        "example": "2020-01-01"
                                    },
                                    "label": {
                                        "type": "string",
                                        "example": "1/2 Tablet every day",
                                        "nullable": true
                                    },
                                    "internal_notes": {
                                        "type": "string",
                                        "example": "Internal notes",
                                        "nullable": true
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/paths/~1api~1v1~1prescriptions~1%7Bid%7D~1refills/post/responses/201/content/application~1json/schema/properties/data"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "$ref": "#/paths/~1api~1v1~1files/post/responses/422"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/products": {
            "get": {
                "tags": [
                    "Product"
                ],
                "summary": "List all Products",
                "description": "Permissions needed: NONE\nSearch for products in the clinic\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/0"
                    },
                    {
                        "name": "filter[search]",
                        "in": "query",
                        "description": "Searching by product name",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[service_package_id]",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[categories]",
                        "in": "query",
                        "description": "Categories Ids",
                        "explode": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    },
                    {
                        "name": "filter[producer_ids]",
                        "in": "query",
                        "explode": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    },
                    {
                        "name": "filter[aaha_codes]",
                        "in": "query",
                        "explode": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    {
                        "name": "filter[status]",
                        "in": "query",
                        "explode": false,
                        "description": "Status: active, inactive",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "active",
                                "inactive",
                                "both"
                            ],
                            "default": "active"
                        }
                    },
                    {
                        "name": "filter[only_in_stock]",
                        "in": "query",
                        "explode": false,
                        "schema": {
                            "type": "boolean",
                            "default": "false"
                        }
                    },
                    {
                        "name": "filter[mapped_to_external_products]",
                        "in": "query",
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Return only products that are mapped (true) or not mapped (false) to external products. If omitted, all products will be returned."
                    },
                    {
                        "name": "filter[external_product_provider]",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "cdmv",
                                "midwest",
                                "nsv"
                            ]
                        },
                        "description": "Should be used in conjuction with `filter[mapped_to_external_products]` to indicate to external products of which provider returned product should be or not be mapped to"
                    },
                    {
                        "name": "filter[exclude_newly_auto_created]",
                        "in": "query",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "filter[subset]",
                        "in": "query",
                        "description": "Only products in specified category group (supports: 'vaccination')",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[is_consumable]",
                        "in": "query",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "filter[vat]",
                        "in": "query",
                        "description": "VAT rate in percents (e.g. 23)",
                        "schema": {
                            "type": "number"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "explode": false,
                        "description": "Order by field(s) (name,aaha_code,vat) Use a minus before for descending order. Default: name",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include:  productCategory,stock,nirProducts,nirProducts.nirStocks,aahaCategory,producer,taskTemplates,externalProducts,taxRates",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1api~1v1~1products~1%7Bid%7D/get/responses/200/content/application~1json/schema/properties/data"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links"
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/products/{id}": {
            "get": {
                "tags": [
                    "Product"
                ],
                "summary": "Get a Product by ID",
                "description": "Returns a Product entity",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include:  productCategory,stock,nirProducts,nirProducts.nirStocks,aahaCategory,producer,taskTemplates,externalProducts",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "Product",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 670
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Product Prof. Peter Dach"
                                                },
                                                "client_name": {
                                                    "type": "string",
                                                    "example": "Clinic Name",
                                                    "nullable": true
                                                },
                                                "staff_description": {
                                                    "type": "string",
                                                    "example": "Product description for staff",
                                                    "nullable": true
                                                },
                                                "unit": {
                                                    "type": "string",
                                                    "example": "package"
                                                },
                                                "units": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "example": [
                                                        "package",
                                                        "tablets"
                                                    ]
                                                },
                                                "sub_unit": {
                                                    "type": "string",
                                                    "example": "tablets"
                                                },
                                                "recommended_unit_price": {
                                                    "type": "number",
                                                    "description": "Represent the main unit price with vat, is equal to price_with_vat",
                                                    "example": 11.853
                                                },
                                                "recommended_subunit_price": {
                                                    "type": "number",
                                                    "description": "Represent the subunit price with vat, is equal to price_with_vat",
                                                    "example": 1.6932857142857143
                                                },
                                                "price_with_vat": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "example": 11.853
                                                },
                                                "price_without_vat": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "example": 11.853
                                                },
                                                "sub_price_with_vat": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "example": 1.853
                                                },
                                                "sub_price_without_vat": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "example": 1.853
                                                },
                                                "formula": {
                                                    "type": "integer",
                                                    "example": 7
                                                },
                                                "recommended_markup": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "nullable": true,
                                                    "example": 70
                                                },
                                                "active_substances": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "administration": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "recommendations": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "fixed_fee": {
                                                    "type": "string",
                                                    "example": "0.000"
                                                },
                                                "barcode": {
                                                    "type": "string",
                                                    "example": "99425161"
                                                },
                                                "producer_id": {
                                                    "type": "string",
                                                    "example": "670"
                                                },
                                                "clinic_id": {
                                                    "type": "string",
                                                    "example": "3876"
                                                },
                                                "vat": {
                                                    "type": "integer",
                                                    "deprecated": true,
                                                    "description": "Deprecated. Summed percentage of `tax_rates`. Use `tax_rates` instead.",
                                                    "example": 0
                                                },
                                                "tax_rates": {
                                                    "type": "array",
                                                    "description": "Tax rates applied to this item. Always present.",
                                                    "items": {
                                                        "type": "object",
                                                        "title": "TaxRate",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "clinic_id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "nullable": true,
                                                                "example": "Standard"
                                                            },
                                                            "percentage": {
                                                                "type": "string",
                                                                "example": "19.0000"
                                                            },
                                                            "applicable_to": {
                                                                "type": "string",
                                                                "enum": [
                                                                    "products",
                                                                    "services",
                                                                    "all"
                                                                ],
                                                                "example": "services"
                                                            },
                                                            "is_archived": {
                                                                "type": "boolean",
                                                                "example": false
                                                            }
                                                        }
                                                    }
                                                },
                                                "is_controlled": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "is_consumable": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "is_default": {
                                                    "type": "boolean",
                                                    "example": false,
                                                    "description": "Relevant only in the context of the product being linked to an external product."
                                                },
                                                "status": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "is_used": {
                                                    "type": "boolean",
                                                    "example": true,
                                                    "description": "available in the show endpoint of a specific product. Marks if the stock of the product has already been used. Formula can't be updated after product is used"
                                                },
                                                "minimum_stock": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "example": 0.1,
                                                    "nullable": true
                                                },
                                                "optimum_stock": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "example": 0.1,
                                                    "nullable": true
                                                },
                                                "minimum_price": {
                                                    "type": "string",
                                                    "description": "When the total price of the line item is less than this value, the prices will change with this value",
                                                    "example": "20.3"
                                                },
                                                "price_threshold": {
                                                    "type": "object",
                                                    "description": "These thresholds are used to in order to change the price (unit or subunit) of the product based on the quantity that is sold.",
                                                    "properties": {
                                                        "range": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "properties": {
                                                                    "start": {
                                                                        "type": "numeric",
                                                                        "format": "float"
                                                                    },
                                                                    "end": {
                                                                        "type": "numeric",
                                                                        "format": "float"
                                                                    }
                                                                }
                                                            }
                                                        },
                                                        "price": {
                                                            "type": "numeric",
                                                            "format": "float"
                                                        },
                                                        "unit_type": {
                                                            "type": "integer",
                                                            "description": "1 - unit, 0 - sub_unit"
                                                        }
                                                    }
                                                },
                                                "task_templates": {
                                                    "type": "array",
                                                    "nullable": true,
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "name": {
                                                                "type": "string"
                                                            }
                                                        }
                                                    }
                                                },
                                                "external_products": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "title": "ExternalProduct",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 123
                                                            },
                                                            "provider": {
                                                                "$ref": "#/paths/~1api~1v1~1products/get/parameters/9/schema"
                                                            },
                                                            "external_id": {
                                                                "type": "string"
                                                            },
                                                            "name": {
                                                                "type": "string"
                                                            },
                                                            "producer": {
                                                                "type": "string"
                                                            },
                                                            "category": {
                                                                "type": "string"
                                                            },
                                                            "sku": {
                                                                "type": "string"
                                                            },
                                                            "barcode": {
                                                                "type": "string",
                                                                "example": "00068510041401"
                                                            },
                                                            "unit": {
                                                                "type": "string"
                                                            },
                                                            "subunit": {
                                                                "type": "string"
                                                            },
                                                            "formula": {
                                                                "type": "number",
                                                                "format": "float",
                                                                "nullable": true
                                                            },
                                                            "price": {
                                                                "type": "number",
                                                                "format": "float",
                                                                "example": 19.99
                                                            },
                                                            "currency": {
                                                                "type": "string",
                                                                "nullable": true
                                                            },
                                                            "products": {
                                                                "type": "array",
                                                                "nullable": true,
                                                                "description": "Present when `include=products` is used on the index endpoint; items are clinic products for `filter[clinic_id]` linked to this external product.",
                                                                "items": {
                                                                    "$ref": "#/paths/~1api~1v1~1products~1%7Bid%7D/get/responses/200/content/application~1json/schema/properties/data"
                                                                }
                                                            },
                                                            "in_stock": {
                                                                "type": "boolean"
                                                            },
                                                            "stock_qty": {
                                                                "type": "integer"
                                                            },
                                                            "is_controlled": {
                                                                "type": "boolean"
                                                            }
                                                        }
                                                    }
                                                },
                                                "is_plan_benefit": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "is_deleted": {
                                                    "type": "boolean",
                                                    "example": false
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/records": {
            "get": {
                "tags": [
                    "Records"
                ],
                "summary": "List all Records",
                "description": "Permissions needed: ACCESS_PATIENTS\nReturns list of Records\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/0"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1files/get/parameters/0"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/1"
                    },
                    {
                        "name": "filter[id]",
                        "in": "query",
                        "description": "Record ID",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[sale_id]",
                        "in": "query",
                        "description": "Sale ID",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[has_diagnoses]",
                        "in": "query",
                        "description": "Return only the records(file cases) that have a diagnoses attached(Ex: <i>1 - true; 0 - false</i>)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[has_labs]",
                        "in": "query",
                        "description": "Return only the records(file cases) that have Labs(Ex: <i> 0 - false; 1 - true(will also automatically include the 'values' field);</i>)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include. You can use multiple, comma separated. Options: selectedDiagnoses,structureData",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "append",
                        "in": "query",
                        "description": "Additional attributes to include (comma separated). Options: clinical_examination_notes",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1tags/get/parameters/5"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1api~1v1~1records/post/responses/201/content/application~1json/schema/properties/data"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links"
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "post": {
                "tags": [
                    "Records"
                ],
                "summary": "Create a Record",
                "description": "Permissions needed: CREATE_CHECKUPS\nCreate a new Record.\n",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "clinic_id": {
                                        "description": "Clinic Id.",
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "vet_id": {
                                        "description": "Clinic Id.",
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "pet_id": {
                                        "description": "Pet Id.",
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "appointment_id": {
                                        "description": "Appointment Id.",
                                        "type": "integer",
                                        "nullable": true,
                                        "example": null
                                    },
                                    "template_id": {
                                        "description": "Template Id.",
                                        "type": "integer",
                                        "nullable": true,
                                        "example": null
                                    },
                                    "internal_notes": {
                                        "description": "Internal notes visible only to clinic staff members.",
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "diagnosis": {
                                        "description": "Diagnosis.",
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "presumptive_diagnosis": {
                                        "description": "Presumptive Diagnosis.",
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "treatment": {
                                        "description": "Treatment.",
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "recommendations": {
                                        "description": "Recommendations.",
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "template_default": {
                                        "description": "Optional category of default record template to apply when `template_id` is not provided. When omitted, the `general` default template (if any) is applied. Pass `null` to skip default-template lookup entirely.\n",
                                        "type": "string",
                                        "nullable": true,
                                        "enum": [
                                            "general",
                                            "refill"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "Record",
                                            "description": "Record = NewFileCase = Consultation = Soap. Record is the preferred naming.",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "number": {
                                                    "type": "string",
                                                    "example": "175"
                                                },
                                                "status": {
                                                    "type": "integer",
                                                    "enum": [
                                                        0,
                                                        1,
                                                        2,
                                                        3
                                                    ],
                                                    "description": "`0` - Draft `1` - Saved `2` - Closed `3` - Hospitalized\n",
                                                    "example": 1
                                                },
                                                "vet_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "responsible_id": {
                                                    "type": "integer",
                                                    "nullable": true,
                                                    "example": 1
                                                },
                                                "responsible": {
                                                    "description": "Vet responsible for the record. Only present when `responsible` is requested via the `include` query parameter.",
                                                    "allOf": [
                                                        {
                                                            "$ref": "#/paths/~1api~1v1~1vets~1%7Bid%7D~1colleagues-calendar-order/get/responses/200/content/application~1json/schema/properties/data/items"
                                                        }
                                                    ]
                                                },
                                                "clinic_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "pet_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "sale_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "date": {
                                                    "type": "string",
                                                    "example": "2021-11-19"
                                                },
                                                "reason": {
                                                    "type": "string",
                                                    "example": "Routine checkup"
                                                },
                                                "template_id": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "comments": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "recommendations": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "rabic_tag_number": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "presumptive_diagnosis": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "diagnosis": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "treatment": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "visit_types": {
                                                    "type": "array",
                                                    "nullable": true,
                                                    "items": {
                                                        "type": "object",
                                                        "title": "Visit Type",
                                                        "nullable": true,
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "clinic_id": {
                                                                "type": "integer"
                                                            },
                                                            "name": {
                                                                "type": "string"
                                                            },
                                                            "description": {
                                                                "type": "string"
                                                            },
                                                            "category": {
                                                                "type": "string",
                                                                "enum": [
                                                                    "euthanasia",
                                                                    "spay_neuter",
                                                                    "microchipping",
                                                                    "consultation_exams",
                                                                    "surgery",
                                                                    "vaccines",
                                                                    "medical_procedures",
                                                                    "imagining_diagnostics",
                                                                    "boarding",
                                                                    "grooming",
                                                                    "admin",
                                                                    "other"
                                                                ]
                                                            },
                                                            "category_label": {
                                                                "type": "string"
                                                            },
                                                            "duration": {
                                                                "type": "integer"
                                                            },
                                                            "is_visible": {
                                                                "type": "boolean"
                                                            },
                                                            "color": {
                                                                "type": "string"
                                                            },
                                                            "order": {
                                                                "type": "integer",
                                                                "nullable": true
                                                            },
                                                            "deposit_for_online_booking": {
                                                                "type": "number",
                                                                "format": "float"
                                                            },
                                                            "has_intake_enabled": {
                                                                "type": "boolean",
                                                                "description": "only valid for clinics with Tails integration in the Pet Parent App",
                                                                "nullable": true
                                                            },
                                                            "printable_files": {
                                                                "type": "array",
                                                                "nullable": true,
                                                                "items": {
                                                                    "type": "object",
                                                                    "properties": {
                                                                        "id": {
                                                                            "type": "integer"
                                                                        },
                                                                        "title": {
                                                                            "type": "string"
                                                                        }
                                                                    }
                                                                }
                                                            },
                                                            "service_packages": {
                                                                "type": "array",
                                                                "nullable": true,
                                                                "items": {
                                                                    "type": "object",
                                                                    "properties": {
                                                                        "id": {
                                                                            "type": "integer"
                                                                        },
                                                                        "name": {
                                                                            "type": "string"
                                                                        },
                                                                        "client_name": {
                                                                            "type": "string",
                                                                            "nullable": true
                                                                        },
                                                                        "description": {
                                                                            "type": "string"
                                                                        },
                                                                        "unit_price": {
                                                                            "nullable": true,
                                                                            "type": "string"
                                                                        },
                                                                        "price": {
                                                                            "nullable": true,
                                                                            "type": "string"
                                                                        },
                                                                        "price_includes_tax": {
                                                                            "nullable": true,
                                                                            "type": "boolean"
                                                                        },
                                                                        "tax": {
                                                                            "nullable": true,
                                                                            "type": "float"
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                },
                                                "reason_visit_type": {
                                                    "$ref": "#/paths/~1api~1v1~1records/post/responses/201/content/application~1json/schema/properties/data/properties/visit_types/items",
                                                    "nullable": true
                                                },
                                                "structure": {
                                                    "oneOf": [
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object"
                                                            }
                                                        },
                                                        {
                                                            "type": "object"
                                                        }
                                                    ],
                                                    "nullable": true
                                                },
                                                "selectedDiagnoses": {
                                                    "type": "array",
                                                    "description": "Only present when `selectedDiagnoses` is requested via the `include` query parameter.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "example": "Otitis externa"
                                                            },
                                                            "description": {
                                                                "type": "string",
                                                                "nullable": true
                                                            },
                                                            "recommendation": {
                                                                "type": "string",
                                                                "nullable": true
                                                            },
                                                            "clinic_id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            }
                                                        }
                                                    }
                                                },
                                                "clinical_examination_notes": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "description": "Only present when `clinical_examination_notes` is requested via the `append` query parameter."
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/reports/appointments": {
            "get": {
                "tags": [
                    "Reports"
                ],
                "summary": "Get appointments report",
                "description": "Get appointments report",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/0"
                    },
                    {
                        "name": "filter[vet_id]",
                        "description": "Filter by vet ID",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[source]",
                        "description": "`0` - Clinic `1` - Web `2` - App\n",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[status]",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "created_by_vet",
                                "requested_by_user",
                                "rescheduled_by_vet",
                                "requested_reschedule_by_user",
                                "confirmed",
                                "canceled_by_user",
                                "canceled_by_vet",
                                "auto_created",
                                "no_show",
                                "pending",
                                "completed"
                            ]
                        }
                    },
                    {
                        "name": "filter[date_between]",
                        "in": "query",
                        "description": "Dates Between (start_date, end_date), format: YYYY-MM-DD",
                        "required": false,
                        "style": "form",
                        "explode": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    {
                        "name": "filter[visit_type_id]",
                        "description": "Filter by visit type ID",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[has_payment_deposits]",
                        "in": "query",
                        "description": "Return only the appointments that have or not payment deposits(Ex: <i>0 - false; 1 - true;</i>)",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Sorting(ex: 'datetime_start_utc', 'datetime_end_utc', 'clinic_id', 'vet_id')",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1tags/get/parameters/5"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/11"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "title": "Appointment",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "datetime_start_utc": {
                                                        "type": "string",
                                                        "format": "date-time",
                                                        "example": "2023-12-01T09:00:00.000000Z"
                                                    },
                                                    "datetime_end_utc": {
                                                        "type": "string",
                                                        "format": "date-time",
                                                        "example": "2023-12-01T10:00:00.000000Z"
                                                    },
                                                    "status": {
                                                        "type": "string",
                                                        "enum": [
                                                            "created_by_vet",
                                                            "requested_by_user",
                                                            "rescheduled_by_vet",
                                                            "requested_reschedule_by_user",
                                                            "confirmed",
                                                            "canceled_by_user",
                                                            "canceled_by_vet",
                                                            "auto_created",
                                                            "no_show",
                                                            "pending",
                                                            "completed"
                                                        ]
                                                    },
                                                    "source": {
                                                        "type": "integer",
                                                        "description": "`0` - Vet `1` - Pet Parent `2` - Mobile\n"
                                                    },
                                                    "pet": {
                                                        "type": "object",
                                                        "title": "Pet",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "nickname": {
                                                                "type": "string",
                                                                "example": "Ben"
                                                            },
                                                            "species": {
                                                                "$ref": "#/paths/~1api~1v1~1species/get/responses/200/content/application~1json/schema/properties/data/items"
                                                            },
                                                            "breed": {
                                                                "$ref": "#/paths/~1api~1v1~1breeds/get/responses/200/content/application~1json/schema/properties/data/items"
                                                            },
                                                            "pet_parents": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "object",
                                                                    "title": "Pet Parent",
                                                                    "properties": {
                                                                        "id": {
                                                                            "type": "integer"
                                                                        },
                                                                        "name": {
                                                                            "type": "string"
                                                                        },
                                                                        "last_name": {
                                                                            "type": "string"
                                                                        },
                                                                        "phone": {
                                                                            "type": "string"
                                                                        },
                                                                        "address": {
                                                                            "type": "string"
                                                                        },
                                                                        "address_2": {
                                                                            "type": "string"
                                                                        },
                                                                        "email": {
                                                                            "type": "string"
                                                                        },
                                                                        "chat_uid": {
                                                                            "type": "string",
                                                                            "nullable": true
                                                                        }
                                                                    }
                                                                }
                                                            },
                                                            "age": {
                                                                "type": "string"
                                                            },
                                                            "archive": {
                                                                "type": "object",
                                                                "nullable": true,
                                                                "title": "ReportPetArchive",
                                                                "description": "Archive details for an archived pet, in the shape returned by the report resources (App\\Http\\Resources\\Reports\\Shared\\PetArchiveResource). Drives the frontend archived badge / legacy name emoji.",
                                                                "properties": {
                                                                    "type": {
                                                                        "type": "string",
                                                                        "enum": [
                                                                            "Deceased",
                                                                            "Moved away",
                                                                            "Change of owner",
                                                                            "Other"
                                                                        ],
                                                                        "example": "Deceased"
                                                                    },
                                                                    "archived_at": {
                                                                        "type": "string",
                                                                        "nullable": true,
                                                                        "example": "2026-01-12T00:00:00.000000Z"
                                                                    },
                                                                    "reason": {
                                                                        "type": "string",
                                                                        "nullable": true,
                                                                        "example": "The patient was archived because..."
                                                                    }
                                                                }
                                                            },
                                                            "patient": {
                                                                "type": "object",
                                                                "nullable": true,
                                                                "properties": {
                                                                    "id": {
                                                                        "type": "integer"
                                                                    },
                                                                    "clinic_id": {
                                                                        "type": "integer"
                                                                    },
                                                                    "number": {
                                                                        "type": "string"
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    },
                                                    "clinic": {
                                                        "type": "object",
                                                        "title": "Clinic",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "name": {
                                                                "type": "string"
                                                            }
                                                        }
                                                    },
                                                    "vet": {
                                                        "type": "object",
                                                        "title": "Vet",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "first_name": {
                                                                "type": "string"
                                                            },
                                                            "last_name": {
                                                                "type": "string"
                                                            },
                                                            "job_title": {
                                                                "type": "string"
                                                            }
                                                        }
                                                    },
                                                    "payment_deposits": {
                                                        "type": "object",
                                                        "title": "PaymentDeposit",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "value": {
                                                                "type": "number",
                                                                "format": "float"
                                                            },
                                                            "paid_value": {
                                                                "type": "number",
                                                                "format": "float"
                                                            },
                                                            "status": {
                                                                "type": "string",
                                                                "enum": [
                                                                    "paid",
                                                                    "pending",
                                                                    "partially_paid"
                                                                ]
                                                            },
                                                            "appointments": {
                                                                "type": "array",
                                                                "items": {
                                                                    "$ref": "#/paths/~1api~1v1~1reports~1appointments/get/responses/200/content/application~1json/schema/properties/data/items"
                                                                }
                                                            },
                                                            "payment_links": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "object",
                                                                    "title": "PaymentLink",
                                                                    "properties": {
                                                                        "id": {
                                                                            "type": "integer"
                                                                        },
                                                                        "amount": {
                                                                            "type": "string",
                                                                            "format": "float"
                                                                        },
                                                                        "url": {
                                                                            "type": "string"
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    },
                                                    "guest": {
                                                        "type": "boolean",
                                                        "example": false
                                                    },
                                                    "pet_name": {
                                                        "type": "string",
                                                        "nullable": true,
                                                        "example": null
                                                    },
                                                    "pet_parent_name": {
                                                        "type": "string",
                                                        "nullable": true,
                                                        "example": null
                                                    },
                                                    "pet_parent_email": {
                                                        "type": "string",
                                                        "nullable": true,
                                                        "example": null
                                                    },
                                                    "pet_parent_phone": {
                                                        "type": "string",
                                                        "nullable": true,
                                                        "example": null
                                                    },
                                                    "revenue": {
                                                        "type": "string",
                                                        "format": "float"
                                                    },
                                                    "utm_source": {
                                                        "type": "string",
                                                        "nullable": true
                                                    },
                                                    "services": {
                                                        "type": "array",
                                                        "nullable": true,
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer"
                                                                },
                                                                "name": {
                                                                    "type": "string"
                                                                }
                                                            }
                                                        }
                                                    },
                                                    "last_confirmed_at": {
                                                        "type": "string",
                                                        "format": "date-time",
                                                        "nullable": true,
                                                        "example": "2023-12-01T09:00:00.000000Z"
                                                    },
                                                    "confirmed_by": {
                                                        "type": "string",
                                                        "nullable": true,
                                                        "enum": [
                                                            "client",
                                                            "staff"
                                                        ],
                                                        "example": "client"
                                                    },
                                                    "confirmation_source": {
                                                        "type": "string",
                                                        "nullable": true,
                                                        "enum": [
                                                            "phone",
                                                            "sms_reminder",
                                                            "email_reminder",
                                                            "pet_portal",
                                                            "public_calendar",
                                                            "crm"
                                                        ],
                                                        "example": "sms_reminder"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "$ref": "#/paths/~1api~1v1~1files/post/responses/422"
                    }
                }
            }
        },
        "/api/v1/reports/appointments/export-csv": {
            "get": {
                "tags": [
                    "Reports"
                ],
                "summary": "Get appointments report as CSV",
                "description": "Get appointments report as CSV",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/0"
                    },
                    {
                        "name": "filter[vet_id]",
                        "description": "Filter by vet ID",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[source]",
                        "description": "`0` - Clinic `1` - Web `2` - App\n",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[status]",
                        "description": "`0` - Pending `1` - Pending Client Approval `2` - Pending Clinic Approval `3` - Rescheduled Clinic Approval `4` - Rescheduled Client Approval `5` - Confirmed `6` - Canceled By Client `7` - Canceled By Clinic' `8` - Automatically Created' `9` - No Show\n",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[date_between]",
                        "in": "query",
                        "description": "Dates Between (start_date, end_date), format: YYYY-MM-DD",
                        "required": false,
                        "style": "form",
                        "explode": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    {
                        "name": "filter[visit_type_id]",
                        "description": "Filter by visit type ID",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Sorting(ex: 'datetime_start_utc', 'datetime_end_utc', 'clinic_id', 'vet_id')",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/csv": {}
                        }
                    },
                    "202": {
                        "description": "Accepted",
                        "content": {
                            "application/json": {}
                        }
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "$ref": "#/paths/~1api~1v1~1files/post/responses/422"
                    }
                }
            }
        },
        "/api/v1/sale/consolidate": {
            "post": {
                "tags": [
                    "Sales"
                ],
                "summary": "Create ConsolidatedInvoice",
                "description": "Permissions needed: NONE\nThis endpoint is used to create the consolidated invoice for selected sales - all sales must belong to same customer.\n",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "customer_id",
                                    "invoice_date"
                                ],
                                "properties": {
                                    "customer_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "invoice_date": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2020-01-01T00:00:00.000Z"
                                    },
                                    "sales_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "example": [
                                            1,
                                            2,
                                            3
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "consolidatingSaleId": {
                                            "description": "Consolidating sale id",
                                            "type": "integer"
                                        },
                                        "invoice": {
                                            "description": "Invoice object details",
                                            "type": "object"
                                        },
                                        "invoicePreview": {
                                            "description": "HTML string of consolidated invoice",
                                            "type": "string"
                                        },
                                        "selectedSalesDetails": {
                                            "description": "Contains details of selected sales that has been consolidated.",
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "date": {
                                                        "description": "Sale date",
                                                        "type": "string"
                                                    },
                                                    "id": {
                                                        "description": "Sale record or counter sale id",
                                                        "type": "integer"
                                                    },
                                                    "number": {
                                                        "description": "Sale record number, null for counter sale",
                                                        "type": "string"
                                                    },
                                                    "pet": {
                                                        "description": "Pet details - if sale is from a pet record",
                                                        "type": "object"
                                                    },
                                                    "sale": {
                                                        "description": "Sale details",
                                                        "type": "object"
                                                    },
                                                    "sale_id": {
                                                        "description": "Sale id",
                                                        "type": "integer"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "example": {
                                        "key": "labels.consolidate_invoice.errors.sales_have_payments",
                                        "message": "exceptions.labels.consolidate_invoice.errors.sales_have_payments",
                                        "meta": []
                                    }
                                }
                            }
                        }
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/sale/consolidate/{consolidatingSale}/update": {
            "put": {
                "tags": [
                    "Sales"
                ],
                "summary": "Update ConsolidatedInvoice",
                "description": "Permissions needed: NONE\nThis end point is used to update a consolidated invoice.\n",
                "parameters": [
                    {
                        "name": "consolidatingSale",
                        "in": "path",
                        "description": "The consolidating sale id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "customer_id",
                                    "invoice_date"
                                ],
                                "properties": {
                                    "customer_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "invoice_date": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2020-01-01T00:00:00.000Z"
                                    },
                                    "sales_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "example": [
                                            1,
                                            2,
                                            3
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "consolidatingSaleId": {
                                            "description": "Consolidating sale id",
                                            "type": "integer"
                                        },
                                        "invoice": {
                                            "description": "Invoice object details",
                                            "type": "object"
                                        },
                                        "invoicePreview": {
                                            "description": "HTML string of consolidated invoice",
                                            "type": "string"
                                        },
                                        "selectedSalesDetails": {
                                            "description": "Contains details of selected sales that has been consolidated.",
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "date": {
                                                        "description": "Sale date",
                                                        "type": "string"
                                                    },
                                                    "id": {
                                                        "description": "Sale record or counter sale id",
                                                        "type": "integer"
                                                    },
                                                    "number": {
                                                        "description": "Sale record number, null for counter sale",
                                                        "type": "string"
                                                    },
                                                    "pet": {
                                                        "description": "Pet details - if sale is from a pet record",
                                                        "type": "object"
                                                    },
                                                    "sale": {
                                                        "description": "Sale details",
                                                        "type": "object"
                                                    },
                                                    "sale_id": {
                                                        "description": "Sale id",
                                                        "type": "integer"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "example": {
                                        "key": "labels.consolidate_invoice.errors.sales_have_payments",
                                        "message": "exceptions.labels.consolidate_invoice.errors.sales_have_payments",
                                        "meta": []
                                    }
                                }
                            }
                        }
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/sale/consolidate/preview/{consolidatingSale}": {
            "post": {
                "tags": [
                    "Sales"
                ],
                "summary": "Preview ConsolidatedInvoice",
                "description": "Permissions needed: NONE\n\n This end point is used to preview the consolidated invoice for selected sales, if no sale is selected all customer sales eligible for consolidation are used - create flow.<br>\n If ID of a already consoliated sale is provided (in body an in path also!!!)then preview of existing consolidated invoice is returned - update flow.<br>\n property <i>notConsolidatedSalesDetails</i> from response Contains details for all customer sales eligibe for consolidation process.<br>\n property <i>selectedSalesDetails</i> from response Contains details of selected sales for consolidation process. null - if the request is made with empty <i>sales_ids</i> parameter<br>\n",
                "parameters": [
                    {
                        "name": "consolidatingSale",
                        "in": "path",
                        "description": "The consolidating sale id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "customer_id",
                                    "invoice_date"
                                ],
                                "properties": {
                                    "customer_id": {
                                        "type": "integer"
                                    },
                                    "consolidating_sale_id": {
                                        "description": "Required for a existing consolidated invoice preview - on update flow",
                                        "type": "integer"
                                    },
                                    "invoice_date": {
                                        "type": "string"
                                    },
                                    "sales_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "consolidatingSaleId": {
                                            "description": "Consolidating sale id for existing consolidated invoice preview - on update flow",
                                            "type": "integer"
                                        },
                                        "invoicePreview": {
                                            "description": "HTML string of invoice",
                                            "type": "string"
                                        },
                                        "notConsolidatedSalesDetails": {
                                            "description": "Contains details for all customer sales eligibe for consolidation process",
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "date": {
                                                        "description": "Sale date",
                                                        "type": "string"
                                                    },
                                                    "id": {
                                                        "description": "Sale record or counter sale id",
                                                        "type": "integer"
                                                    },
                                                    "number": {
                                                        "description": "Sale record number, null for counter sale",
                                                        "type": "string"
                                                    },
                                                    "pet": {
                                                        "description": "Pet details - if sale is from a pet record",
                                                        "type": "object"
                                                    },
                                                    "sale": {
                                                        "description": "Sale details",
                                                        "type": "object"
                                                    },
                                                    "sale_id": {
                                                        "description": "Sale id",
                                                        "type": "integer"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        },
                                        "selectedSalesDetails": {
                                            "description": "Contains details of selected sales for consolidation process. null - if the request is made with empty sales_ids parameter",
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "date": {
                                                        "description": "Sale date",
                                                        "type": "string"
                                                    },
                                                    "id": {
                                                        "description": "Sale record or counter sale id",
                                                        "type": "integer"
                                                    },
                                                    "number": {
                                                        "description": "Sale record number, null for counter sale",
                                                        "type": "string"
                                                    },
                                                    "pet": {
                                                        "description": "Pet details - if sale is from a pet record",
                                                        "type": "object"
                                                    },
                                                    "sale": {
                                                        "description": "Sale details",
                                                        "type": "object"
                                                    },
                                                    "sale_id": {
                                                        "description": "Sale id",
                                                        "type": "integer"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "example": {
                                        "key": "labels.consolidate_invoice.errors.sales_have_payments",
                                        "message": "exceptions.labels.consolidate_invoice.errors.sales_have_payments",
                                        "meta": []
                                    }
                                }
                            }
                        }
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/sale/{id}/change-edit-state": {
            "put": {
                "tags": [
                    "Sales"
                ],
                "summary": "Change Sale state",
                "description": "Permissions needed: any of (CREATE_CHECKUPS, EDIT_CHECKUPS, CREATE_EDIT_COUNTER_SALE, SELL_SERVICES); sometimes REOPEN_SALE \nChange just the Sale's edit state\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "edit_state": {
                                        "type": "integer",
                                        "enum": [
                                            1,
                                            2,
                                            3
                                        ],
                                        "description": "1 - Open <br> 2 - Ready For Checkout <br> 3 - Closed\n"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "edit_state_details": {
                                                    "type": "object",
                                                    "title": "EditSaleState",
                                                    "properties": {
                                                        "state": {
                                                            "type": "integer",
                                                            "enum": [
                                                                1,
                                                                2,
                                                                3
                                                            ],
                                                            "description": "`1` - Open `2` - Ready For Checkout `3` - Closed\n"
                                                        },
                                                        "label": {
                                                            "type": "string",
                                                            "description": "Label of the current state\n"
                                                        },
                                                        "can_transit_to": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "properties": {
                                                                    "label": {
                                                                        "type": "string",
                                                                        "example": "labels.sale_edit_state.states.open"
                                                                    },
                                                                    "action": {
                                                                        "type": "string",
                                                                        "example": "labels.sale_edit_state.actions.open"
                                                                    },
                                                                    "state": {
                                                                        "type": "integer",
                                                                        "enum": [
                                                                            1,
                                                                            2,
                                                                            3
                                                                        ],
                                                                        "example": 1
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "example": {
                                        "message": "The given data was invalid.",
                                        "errors": {
                                            "edit_state": [
                                                "This value is invalid"
                                            ]
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/sale/{id}/customer": {
            "put": {
                "tags": [
                    "Sales"
                ],
                "summary": "Change SaleCustomer",
                "description": "Permissions needed: any of (CREATE_CHECKUPS, EDIT_CHECKUPS, CREATE_EDIT_COUNTER_SALE, SELL_SERVICES);\nEdit the Sale's customer\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "customer_id": {
                                        "type": "integer",
                                        "example": 1
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "SaleCustomer",
                                            "description": "Custom information about a PetParent that is related to a sale.",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "John"
                                                },
                                                "last_name": {
                                                    "type": "string",
                                                    "example": "Doe"
                                                },
                                                "email": {
                                                    "type": "string",
                                                    "example": "john@example.com"
                                                },
                                                "phone": {
                                                    "type": "string",
                                                    "description": "Phone number in E.164 format",
                                                    "example": "+16175551212."
                                                },
                                                "address": {
                                                    "type": "string",
                                                    "example": "Flowers St. 300, Palo Alto, 123456, USA"
                                                },
                                                "city": {
                                                    "type": "string",
                                                    "example": "Palo Alto"
                                                },
                                                "street": {
                                                    "type": "string",
                                                    "example": "Flowers St."
                                                },
                                                "street_number": {
                                                    "type": "string",
                                                    "example": "300"
                                                },
                                                "country": {
                                                    "$ref": "#/paths/~1api~1v1~1public~1clinics~1%7Bslug%7D/get/responses/200/content/application~1json/schema/properties/data/properties/country",
                                                    "nullable": true
                                                },
                                                "zip": {
                                                    "type": "string",
                                                    "example": "123456"
                                                },
                                                "region": {
                                                    "type": "string",
                                                    "example": "California"
                                                },
                                                "timezone": {
                                                    "type": "string",
                                                    "example": "America/Los_Angeles"
                                                },
                                                "has_app": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "chatUid": {
                                                    "type": "string",
                                                    "example": "e58ed763-928c-4155-bee9-fdbaaadc15f3"
                                                },
                                                "vat_number": {
                                                    "type": "string",
                                                    "description": "present when included legalEntity",
                                                    "example": "123456789"
                                                },
                                                "discounts": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/paths/~1api~1v1~1pet-parents/post/responses/201/content/application~1json/schema/properties/data/properties/discounts/items"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "example": {
                                        "message": "The given data was invalid.",
                                        "errors": {
                                            "customer_id": [
                                                "This value is invalid"
                                            ]
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/sales": {
            "post": {
                "tags": [
                    "Sales"
                ],
                "summary": "Create a Sale",
                "description": "Permissions needed: any of (CREATE_CHECKUPS, EDIT_CHECKUPS, CREATE_EDIT_COUNTER_SALE, SELL_SERVICES)\n",
                "parameters": [
                    {
                        "name": "new_response",
                        "in": "query"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "discount": {
                                        "type": "number",
                                        "format": "float",
                                        "nullable": true
                                    },
                                    "discount_percentage": {
                                        "type": "number",
                                        "format": "float",
                                        "nullable": true
                                    },
                                    "discount_type": {
                                        "type": "string",
                                        "nullable": true,
                                        "enum": [
                                            "fixed",
                                            "percentage"
                                        ]
                                    },
                                    "discount_reason": {
                                        "type": "object",
                                        "nullable": true,
                                        "properties": {
                                            "reason": {
                                                "type": "string",
                                                "nullable": true
                                            },
                                            "is_private": {
                                                "type": "string",
                                                "enum": [
                                                    "public",
                                                    "private"
                                                ]
                                            }
                                        }
                                    },
                                    "predefined_discounts": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        }
                                    },
                                    "sold_products": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "product_id": {
                                                    "type": "integer"
                                                },
                                                "vet_id": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "unit_id": {
                                                    "type": "string",
                                                    "enum": [
                                                        "unit",
                                                        "subunit"
                                                    ]
                                                },
                                                "unit": {
                                                    "type": "string"
                                                },
                                                "quantity": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "sale_price": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "sale_price_with_vat": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "vat": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "deprecated": true,
                                                    "description": "Deprecated for lines referencing a catalog item — use `tax_rate_ids`. Still required on write-in lines (no `product_id` / `service_package_id`)."
                                                },
                                                "tax_rate_ids": {
                                                    "type": "array",
                                                    "description": "Tax rate ids to apply. Takes precedence over `vat` when present. Send at most the clinic's `max_tax_rates` (1 today).",
                                                    "items": {
                                                        "type": "integer"
                                                    },
                                                    "example": [
                                                        57
                                                    ]
                                                },
                                                "price": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "sub_price": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "product_name": {
                                                    "type": "string"
                                                },
                                                "label": {
                                                    "type": "string"
                                                },
                                                "recommendations": {
                                                    "type": "string"
                                                },
                                                "is_checkout_bought": {
                                                    "type": "boolean"
                                                },
                                                "fixed_fee": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "include_fixed_fee": {
                                                    "type": "boolean"
                                                },
                                                "discount_reason": {
                                                    "type": "object",
                                                    "nullable": true,
                                                    "properties": {
                                                        "reason": {
                                                            "type": "string",
                                                            "nullable": true
                                                        },
                                                        "is_private": {
                                                            "type": "string",
                                                            "enum": [
                                                                "public",
                                                                "private"
                                                            ]
                                                        }
                                                    }
                                                },
                                                "discount": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "discount_percentage": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "discount_type": {
                                                    "type": "string",
                                                    "enum": [
                                                        "fixed",
                                                        "percentage"
                                                    ]
                                                },
                                                "price_threshold_type": {
                                                    "type": "string",
                                                    "enum": [
                                                        "minimum",
                                                        "maximum"
                                                    ]
                                                },
                                                "purchase_order_items": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "quantity": {
                                                                "type": "number",
                                                                "format": "float"
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    },
                                    "sold_services": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "service_package_id": {
                                                    "type": "integer"
                                                },
                                                "quantity": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "price": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "unit_price": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "vat": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "deprecated": true,
                                                    "description": "Deprecated for lines referencing a catalog item — use `tax_rate_ids`. Still required on write-in lines (no `product_id` / `service_package_id`)."
                                                },
                                                "tax_rate_ids": {
                                                    "type": "array",
                                                    "description": "Tax rate ids to apply. Takes precedence over `vat` when present. Send at most the clinic's `max_tax_rates` (1 today).",
                                                    "items": {
                                                        "type": "integer"
                                                    },
                                                    "example": [
                                                        57
                                                    ]
                                                },
                                                "vet_id": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "original_price": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "is_checkout_bought": {
                                                    "type": "boolean"
                                                },
                                                "discount": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "discount_percentage": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "discount_type": {
                                                    "type": "string",
                                                    "enum": [
                                                        "fixed",
                                                        "percentage"
                                                    ]
                                                },
                                                "discount_reason": {
                                                    "type": "object",
                                                    "nullable": true,
                                                    "properties": {
                                                        "reason": {
                                                            "type": "string",
                                                            "nullable": true
                                                        },
                                                        "is_private": {
                                                            "type": "string",
                                                            "enum": [
                                                                "public",
                                                                "private"
                                                            ]
                                                        }
                                                    }
                                                },
                                                "aaha_code": {
                                                    "type": "string"
                                                },
                                                "products": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "product_id": {
                                                                "type": "integer"
                                                            },
                                                            "units": {
                                                                "type": "array"
                                                            },
                                                            "formula": {
                                                                "type": "number",
                                                                "format": "float"
                                                            },
                                                            "unit_price_with_vat": {
                                                                "type": "number",
                                                                "format": "float"
                                                            },
                                                            "subunit_price_with_vat": {
                                                                "type": "number",
                                                                "format": "float"
                                                            },
                                                            "unit_id": {
                                                                "type": "string",
                                                                "enum": [
                                                                    "unit",
                                                                    "subunit"
                                                                ]
                                                            },
                                                            "quantity": {
                                                                "type": "number",
                                                                "format": "float"
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "recommendations": {
                                                                "type": "string"
                                                            },
                                                            "name": {
                                                                "type": "string"
                                                            },
                                                            "displayed": {
                                                                "type": "boolean"
                                                            },
                                                            "purchase_order_items": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "object",
                                                                    "properties": {
                                                                        "id": {
                                                                            "type": "integer"
                                                                        },
                                                                        "quantity": {
                                                                            "type": "number",
                                                                            "format": "float"
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "Sale",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "clinic_id": {
                                                    "type": "string",
                                                    "example": "1"
                                                },
                                                "customer_id": {
                                                    "type": "string",
                                                    "example": "1"
                                                },
                                                "type": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "customer": {
                                                    "$ref": "#/paths/~1api~1v1~1sale~1%7Bid%7D~1customer/put/responses/200/content/application~1json/schema/properties/data",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "file": {
                                                    "$ref": "#/paths/~1api~1v1~1records/post/responses/201/content/application~1json/schema/properties/data"
                                                },
                                                "counter_sale": {
                                                    "type": "integer",
                                                    "description": "Id of the realted counter sale",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "amount_paid": {
                                                    "type": "string",
                                                    "example": "0.000"
                                                },
                                                "amount_due": {
                                                    "type": "string",
                                                    "example": "250.000"
                                                },
                                                "edit_state_details": {
                                                    "$ref": "#/paths/~1api~1v1~1sale~1%7Bid%7D~1change-edit-state/put/responses/200/content/application~1json/schema/properties/data/properties/edit_state_details"
                                                },
                                                "status": {
                                                    "type": "integer",
                                                    "enum": [
                                                        0,
                                                        1,
                                                        2,
                                                        3
                                                    ],
                                                    "description": "`0` - Pending `1` - Pending `2` - Paid `3` - Partially Paid `4` - Paid (Overdraft)\n"
                                                },
                                                "total": {
                                                    "type": "string",
                                                    "example": "250.000"
                                                },
                                                "global_discount_net": {
                                                    "type": "string",
                                                    "example": "0.000"
                                                },
                                                "global_discount_tax": {
                                                    "type": "string",
                                                    "example": "0.000"
                                                },
                                                "global_discount_gross": {
                                                    "type": "string",
                                                    "example": "0.000"
                                                },
                                                "consolidated": {
                                                    "type": "boolean",
                                                    "description": "A consolidated sale is a group of sale. A consolidated sale can't have direct products or services associated with it.",
                                                    "example": false
                                                },
                                                "created_at": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "example": "2022-07-18T08:58:36.000000Z"
                                                },
                                                "updated_at": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "example": "2022-07-18T08:58:36.000000Z"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "$ref": "#/paths/~1api~1v1~1files/post/responses/422"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "get": {
                "tags": [
                    "Sales"
                ],
                "summary": "List all Sales",
                "description": "Permissions needed: any of (CREATE_CHECKUPS, VIEW_COUNTER_SALE)\nReturns list of Sales\n",
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1api~1v1~1sales/post/responses/200/content/application~1json/schema/properties/data"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links"
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/0"
                    },
                    {
                        "name": "filter[id]",
                        "in": "query",
                        "description": "Sale ID",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[customer_id]",
                        "in": "query",
                        "description": "Client/Owner Id",
                        "style": "form",
                        "explode": false,
                        "schema": {
                            "type": "integer",
                            "example": 1
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1invoices/get/parameters/2"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/1"
                    },
                    {
                        "name": "filter[status]",
                        "in": "query",
                        "description": "Status (comma separated statuses: <i>0 - No Sale; 1 - Pending, 2 - Paid, 3 - Partial, 4 - Overdraft</i>)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[include_consolidated]",
                        "in": "query",
                        "description": "Include consolidated Sales - those with consolidated=1 (default <i>false</i>)",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional relations to include. Ex.: invoice,file,clientSubscription,clientSubscription.plan,clientSubscription.pet,visit",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "append",
                        "in": "query",
                        "description": "Additional fields to append. Ex.: directChargesCredit,taxAmountsByRate,hasClientSubscription",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[has_client_subscription]",
                        "in": "query",
                        "description": "Sale has or not a client subscription to a plan",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "filter[has_monetization]",
                        "in": "query",
                        "description": "Belongs to a Record that has attached a service or treatment (total > 0);Used to include/ignore Draft Records;  Default value: <i>true</i>",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "filter[has_outstanding]",
                        "in": "query",
                        "description": "Sale has or not outstanding balance",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "enum": [
                                0,
                                1
                            ]
                        }
                    },
                    {
                        "name": "filter[taxable_at]",
                        "in": "query",
                        "description": "Dates between when sale was added in the platform",
                        "required": false,
                        "style": "form",
                        "explode": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2023-07-26T06:39:10.000000Z"
                            }
                        }
                    },
                    {
                        "name": "filter[created_at]",
                        "in": "query",
                        "description": "Dates between when sale was added in the platform",
                        "required": false,
                        "style": "form",
                        "explode": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2023-07-26T06:39:10.000000Z"
                            }
                        }
                    },
                    {
                        "name": "filter[updated_at]",
                        "in": "query",
                        "description": "Dates between when sale was last updated in the platform",
                        "required": false,
                        "style": "form",
                        "explode": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2023-07-26T06:39:10.000000Z"
                            }
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1tags/get/parameters/5"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/11"
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Sales"
                ],
                "summary": "Soft Delete a Sale and associated items",
                "description": "Permissions needed: DELETE_CHECKUPS, DELETE_PAYMENTS_ID, CREATE_INVOICES_CASHING\n",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The entity id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "payments_disposition",
                        "in": "query",
                        "description": "Describe how payments will be treated, possible values, delete or reallocate",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "title": "No Content",
                        "description": "The action was successful but there is no content to return."
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/sales/{id}": {
            "get": {
                "tags": [
                    "Sales"
                ],
                "summary": "Retrieve a Sale",
                "description": "Permissions needed: any of (CREATE_CHECKUPS, EDIT_CHECKUPS, CREATE_EDIT_COUNTER_SALE, SELL_SERVICES)\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include: invoice,payments,predefinedDiscounts,customer,treatments.vet,treatments.product,treatments.purchaseOrderItems,treatments.purchaseOrderItems.product,treatments.purchaseOrderItems.nirStocks,soldServices.vet,soldServices.products,soldServices.servicePackageServices,soldServices.servicePackageServices.soldServicePackageProducts,soldServices.servicePackage.products.product,soldServices.products.purchaseOrderItems.nirStocks,visit"
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/paths/~1api~1v1~1sales/post/responses/200/content/application~1json/schema/properties/data"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "$ref": "#/paths/~1api~1v1~1files/post/responses/422"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "put": {
                "tags": [
                    "Sales"
                ],
                "summary": "Update a Sale",
                "description": "Permissions needed: any of (CREATE_CHECKUPS, EDIT_CHECKUPS, CREATE_EDIT_COUNTER_SALE, SELL_SERVICES)\n\n**Discontinued product validation (422)**\nThe following rules apply when a product is discontinued (soft-deleted):\n- A new `sold_products` entry whose `product_id` refers to a discontinued product is rejected.\n- For an existing treatment whose product is discontinued, `quantity`, `unit_id`, and `purchase_order_items`\n  (both the set of IDs and their quantities) must not differ from the stored values.\n\n- For an existing `sold_services[].products` item whose product is discontinued, `quantity`, `unit_id`, and\n  `purchase_order_items` (both the set of IDs and their quantities) must not differ from the stored values.\n\n- An existing sold item whose product is discontinued (or whose product no longer exists) may still be\n  removed by omitting it from the payload; no stock adjustment is made for it on removal.\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "new_response",
                        "in": "query"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "remove_irrelevant_tasks": {
                                        "type": "boolean"
                                    },
                                    "discount": {
                                        "type": "number",
                                        "format": "float",
                                        "nullable": true
                                    },
                                    "discount_percentage": {
                                        "type": "number",
                                        "format": "float",
                                        "nullable": true
                                    },
                                    "discount_type": {
                                        "type": "string",
                                        "nullable": true,
                                        "enum": [
                                            "fixed",
                                            "percentage"
                                        ]
                                    },
                                    "discount_reason": {
                                        "type": "object",
                                        "nullable": true,
                                        "properties": {
                                            "reason": {
                                                "type": "string",
                                                "nullable": true
                                            },
                                            "is_private": {
                                                "type": "string",
                                                "enum": [
                                                    "public",
                                                    "private"
                                                ]
                                            }
                                        }
                                    },
                                    "predefined_discounts": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        }
                                    },
                                    "sold_products": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "description": "ID of an existing treatment. Omit or set to null for new treatments."
                                                },
                                                "product_id": {
                                                    "type": "integer",
                                                    "description": "Product to sell. Cannot refer to a discontinued (soft-deleted) product when creating a new treatment.\n"
                                                },
                                                "vet_id": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "unit_id": {
                                                    "type": "string",
                                                    "enum": [
                                                        "unit",
                                                        "subunit"
                                                    ],
                                                    "description": "Cannot be changed for an existing treatment whose product is discontinued."
                                                },
                                                "unit": {
                                                    "type": "string"
                                                },
                                                "quantity": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "description": "Cannot be changed for an existing treatment whose product is discontinued."
                                                },
                                                "sale_price": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "sale_price_with_vat": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "vat": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "deprecated": true,
                                                    "description": "Deprecated for lines referencing a catalog item — use `tax_rate_ids`. Still required on write-in lines (no `product_id` / `service_package_id`)."
                                                },
                                                "tax_rate_ids": {
                                                    "type": "array",
                                                    "description": "Tax rate ids to apply. Takes precedence over `vat` when present. Send at most the clinic's `max_tax_rates` (1 today).",
                                                    "items": {
                                                        "type": "integer"
                                                    },
                                                    "example": [
                                                        57
                                                    ]
                                                },
                                                "price": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "sub_price": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "product_name": {
                                                    "type": "string"
                                                },
                                                "label": {
                                                    "type": "string"
                                                },
                                                "recommendations": {
                                                    "type": "string"
                                                },
                                                "is_checkout_bought": {
                                                    "type": "boolean"
                                                },
                                                "fixed_fee": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "include_fixed_fee": {
                                                    "type": "boolean"
                                                },
                                                "discount_reason": {
                                                    "type": "object",
                                                    "nullable": true,
                                                    "properties": {
                                                        "reason": {
                                                            "type": "string",
                                                            "nullable": true
                                                        },
                                                        "is_private": {
                                                            "type": "string",
                                                            "enum": [
                                                                "public",
                                                                "private"
                                                            ]
                                                        }
                                                    }
                                                },
                                                "discount": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "discount_percentage": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "discount_type": {
                                                    "type": "string",
                                                    "enum": [
                                                        "fixed",
                                                        "percentage"
                                                    ]
                                                },
                                                "price_threshold_type": {
                                                    "type": "string",
                                                    "enum": [
                                                        "minimum",
                                                        "maximum"
                                                    ]
                                                },
                                                "purchase_order_items": {
                                                    "type": "array",
                                                    "description": "For an existing treatment whose product is discontinued, the set of batch IDs and their quantities must exactly match the stored values. Any addition, removal, or quantity change results in a 422.\n",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "description": "ID of the purchase order item (batch)."
                                                            },
                                                            "quantity": {
                                                                "type": "number",
                                                                "format": "float"
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    },
                                    "sold_services": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "service_package_id": {
                                                    "type": "integer"
                                                },
                                                "quantity": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "price": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "unit_price": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "vat": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "deprecated": true,
                                                    "description": "Deprecated for lines referencing a catalog item — use `tax_rate_ids`. Still required on write-in lines (no `product_id` / `service_package_id`)."
                                                },
                                                "tax_rate_ids": {
                                                    "type": "array",
                                                    "description": "Tax rate ids to apply. Takes precedence over `vat` when present. Send at most the clinic's `max_tax_rates` (1 today).",
                                                    "items": {
                                                        "type": "integer"
                                                    },
                                                    "example": [
                                                        57
                                                    ]
                                                },
                                                "vet_id": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "original_price": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "is_checkout_bought": {
                                                    "type": "boolean"
                                                },
                                                "discount": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "discount_percentage": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "discount_type": {
                                                    "type": "string",
                                                    "enum": [
                                                        "fixed",
                                                        "percentage"
                                                    ]
                                                },
                                                "discount_reason": {
                                                    "type": "object",
                                                    "nullable": true,
                                                    "properties": {
                                                        "reason": {
                                                            "type": "string",
                                                            "nullable": true
                                                        },
                                                        "is_private": {
                                                            "type": "string",
                                                            "enum": [
                                                                "public",
                                                                "private"
                                                            ]
                                                        }
                                                    }
                                                },
                                                "aaha_code": {
                                                    "type": "string"
                                                },
                                                "products": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "product_id": {
                                                                "type": "integer"
                                                            },
                                                            "units": {
                                                                "type": "array"
                                                            },
                                                            "formula": {
                                                                "type": "number",
                                                                "format": "float"
                                                            },
                                                            "unit_price_with_vat": {
                                                                "type": "number",
                                                                "format": "float"
                                                            },
                                                            "subunit_price_with_vat": {
                                                                "type": "number",
                                                                "format": "float"
                                                            },
                                                            "unit_id": {
                                                                "type": "string",
                                                                "enum": [
                                                                    "unit",
                                                                    "subunit"
                                                                ],
                                                                "description": "Cannot be changed for an existing service product whose product is discontinued."
                                                            },
                                                            "quantity": {
                                                                "type": "number",
                                                                "format": "float",
                                                                "description": "Cannot be changed for an existing service product whose product is discontinued."
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "recommendations": {
                                                                "type": "string"
                                                            },
                                                            "name": {
                                                                "type": "string"
                                                            },
                                                            "displayed": {
                                                                "type": "boolean"
                                                            },
                                                            "purchase_order_items": {
                                                                "type": "array",
                                                                "description": "For an existing service product whose product is discontinued, the set of batch IDs and their quantities must exactly match the stored values. Any addition, removal, or quantity change results in a 422.\n",
                                                                "items": {
                                                                    "type": "object",
                                                                    "properties": {
                                                                        "id": {
                                                                            "type": "integer",
                                                                            "description": "ID of the purchase order item (batch)."
                                                                        },
                                                                        "quantity": {
                                                                            "type": "number",
                                                                            "format": "float"
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/paths/~1api~1v1~1sales/post/responses/200/content/application~1json/schema/properties/data"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "$ref": "#/paths/~1api~1v1~1files/post/responses/422"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/sales/{id}/charges": {
            "post": {
                "tags": [
                    "Charges"
                ],
                "summary": "Update a Charge",
                "description": "Permissions needed: any of (CREATE_CHECKUPS, VIEW_COUNTER_SALE)\nUpdates charge and returns it.\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include:  mainSale,mainPayment,payments,chargeReceipt"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "amount": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 100
                                    },
                                    "type": {
                                        "type": "integer",
                                        "enum": [
                                            1,
                                            2,
                                            3,
                                            6,
                                            7
                                        ],
                                        "description": "`1` - Cash `2` - Card `3` - Order `6` - Check `7` - Other\n",
                                        "example": 2
                                    },
                                    "card_brand": {
                                        "$ref": "#/paths/~1api~1v1~1charges/post/requestBody/content/application~1json/schema/properties/card_brand"
                                    },
                                    "date": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2020-01-01T00:00:00Z"
                                    },
                                    "notes": {
                                        "type": "string",
                                        "nullable": true,
                                        "example": null
                                    },
                                    "create_receipt": {
                                        "type": "boolean",
                                        "nullable": true,
                                        "example": false
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/paths/~1api~1v1~1charges/post/responses/201/content/application~1json/schema/properties/data"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "example": {
                                        "message": "The given data was invalid.",
                                        "errors": {
                                            "card_brand": [
                                                "The card brand field can only be provided on Payments with Cards"
                                            ]
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/sales/{id}/pay-with-credit": {
            "post": {
                "tags": [
                    "Sales"
                ],
                "summary": "Pay Sale with client credit",
                "description": "Permissions needed: any of (CREATE_CHECKUPS, VIEW_COUNTER_SALE)\nIf amount sent is greater than sale amount due, after the sale is paid, difference between amount sent and sale amount due is used to pay outstanding balance sales.\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "amount": {
                                        "type": "number",
                                        "format": "double",
                                        "example": "100,00"
                                    },
                                    "type": {
                                        "description": "Payment from client credit has type 8",
                                        "type": "integer",
                                        "default": 8
                                    },
                                    "date": {
                                        "description": "Payment date.",
                                        "type": "string",
                                        "format": "date-time"
                                    },
                                    "notes": {
                                        "description": "Payment notes - if not sent then the notes from the charge will be used",
                                        "type": "string",
                                        "example": "Paid with credit"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation - return sale's payments",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "Payment",
                                            "description": "A payment is the act of allocating a charge to a sale. A payment can be made in full or partially.",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 6
                                                },
                                                "amount": {
                                                    "type": "number",
                                                    "format": "double",
                                                    "example": "100.00"
                                                },
                                                "amount_refunded": {
                                                    "type": "number",
                                                    "format": "double",
                                                    "example": "0.00"
                                                },
                                                "amount_left": {
                                                    "type": "number",
                                                    "format": "double",
                                                    "example": "0.00"
                                                },
                                                "made_at": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "example": "2023-12-14T11:32:44.000000Z"
                                                },
                                                "notes": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": ""
                                                },
                                                "sale_id": {
                                                    "type": "integer",
                                                    "example": 5
                                                },
                                                "sale": {
                                                    "type": "object",
                                                    "$ref": "#/paths/~1api~1v1~1sales/post/responses/200/content/application~1json/schema/properties/data"
                                                },
                                                "charge_id": {
                                                    "type": "integer",
                                                    "example": 4
                                                },
                                                "charge": {
                                                    "type": "object",
                                                    "$ref": "#/paths/~1api~1v1~1charges/post/responses/201/content/application~1json/schema/properties/data"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "$ref": "#/paths/~1api~1v1~1files/post/responses/422"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/service-packages": {
            "get": {
                "tags": [
                    "Service Packages"
                ],
                "summary": "List all ServicePackages",
                "description": "Permissions needed: NONE\nSearches clinic's service packages by name and returns the result\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/0"
                    },
                    {
                        "name": "filter[search]",
                        "in": "query",
                        "description": "Service Package's name",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[visit_type_id]",
                        "in": "query",
                        "description": "Visit Type Id",
                        "explode": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    },
                    {
                        "name": "filter[aaha_codes]",
                        "in": "query",
                        "description": "Service Id",
                        "explode": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    {
                        "name": "pet_id",
                        "in": "query",
                        "description": "Pet Id that is used to check if the service package is within the pet's wellness plan benefits",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[status]",
                        "in": "query",
                        "description": "Status of the service package (ex: 'enabled', 'disabled')",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "enabled",
                                "disabled"
                            ]
                        }
                    },
                    {
                        "name": "filter[one_level_services]",
                        "in": "query",
                        "description": "Filter by one level services (ex: '1')",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include(ex: 'products', 'products.product', 'products.product.stock', 'taskTemplates' 'products.product.latestPurchaseOrderItem', 'servicePackageServices.products.product', 'labTests', 'labTests.lab', 'subServiceOn', 'taxRates')",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Sorting(ex: 'name', 'price', 'aaha_code')",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1api~1v1~1service-packages~1%7Bid%7D/get/responses/200/content/application~1json/schema/properties/data"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links"
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$reg": "../../../../shared/responses/400.yaml"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/service-packages/{id}": {
            "get": {
                "tags": [
                    "Service Packages"
                ],
                "summary": "View existing Service Package",
                "description": "Returns an existing service package and all its details.",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include(ex: 'products', 'products.product', 'products.product.productCategory', 'products.product.stock', 'products.product.latestPurchaseOrderItem','servicePackageServices.products.product', 'labTests', 'subServiceOn', 'labTests.lab', 'aahaCategory', 'taskTemplates')",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "ServicePackage",
                                            "description": "ServicePackage = Services. A service package is a collection of services and products that are sold together. It is a way to group multiple lab test/products together to make it easier to sell them. For example, a service package might include a blood test, and a few products. Service packages can also not contain any products or lab tests, for example, a grooming session. A service package appears as an individual line item on the sale/invoice.",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "lorem"
                                                },
                                                "client_name": {
                                                    "type": "string",
                                                    "example": "ipsum",
                                                    "nullable": true
                                                },
                                                "staff_description": {
                                                    "type": "string",
                                                    "example": "dolor",
                                                    "nullable": true
                                                },
                                                "description": {
                                                    "type": "string",
                                                    "example": "ipsum sin dolor"
                                                },
                                                "price": {
                                                    "type": "string",
                                                    "example": "20.00"
                                                },
                                                "price_includes_tax": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "tax": {
                                                    "type": "number",
                                                    "deprecated": true,
                                                    "description": "Deprecated. Summed percentage of `tax_rates`. Use `tax_rates` instead.",
                                                    "example": 10
                                                },
                                                "tax_rates": {
                                                    "type": "array",
                                                    "description": "Tax rates applied to this item. Always present.",
                                                    "items": {
                                                        "$ref": "#/paths/~1api~1v1~1products~1%7Bid%7D/get/responses/200/content/application~1json/schema/properties/data/properties/tax_rates/items"
                                                    }
                                                },
                                                "unit_price": {
                                                    "type": "string",
                                                    "example": "20.00"
                                                },
                                                "clinic_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "visit_type_id": {
                                                    "type": "integer",
                                                    "nullable": true
                                                },
                                                "category": {
                                                    "type": "string",
                                                    "example": "Ophthalmology"
                                                },
                                                "aaha_code": {
                                                    "type": "string",
                                                    "example": 5000
                                                },
                                                "barcode": {
                                                    "type": "string",
                                                    "example": "123-sku"
                                                },
                                                "task_templates": {
                                                    "type": "array",
                                                    "nullable": true,
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "example": "lorem"
                                                            }
                                                        }
                                                    }
                                                },
                                                "is_plan_benefit": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "is_deleted": {
                                                    "type": "boolean",
                                                    "example": false
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/species": {
            "get": {
                "tags": [
                    "Species"
                ],
                "summary": "List all species",
                "description": "Permissions needed: NONE\nReturns list of species\n",
                "parameters": [
                    {
                        "name": "filter[search]",
                        "in": "query",
                        "description": "search by name",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1tags/get/parameters/5"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "title": "Species",
                                                "description": "A species of a pet",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "label": {
                                                        "type": "string",
                                                        "description": "The name in english",
                                                        "example": "Dog"
                                                    },
                                                    "species": {
                                                        "type": "string",
                                                        "description": "The name translated in the language of the vet accessing the resource",
                                                        "example": "Dog"
                                                    }
                                                }
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links"
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/tags": {
            "get": {
                "tags": [
                    "Tags"
                ],
                "summary": "List all tags",
                "description": "Permissions needed: NONE\nReturns list of Tags\n",
                "parameters": [
                    {
                        "name": "filter[entity_type]",
                        "in": "query",
                        "description": "Entity Type (Ex. <i>App\\\\Models\\\\Pet<i>, <i>App\\\\Models\\\\User<i>)",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "App\\\\Models\\\\Pet",
                                "App\\\\Models\\\\User"
                            ]
                        }
                    },
                    {
                        "name": "filter[color_level]",
                        "in": "query",
                        "description": "Tag Color (any hex color, ex:<i>#FF0000</i>)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[value]",
                        "in": "query",
                        "description": "Tag name",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/0"
                    },
                    {
                        "name": "filter[trashed]",
                        "in": "query",
                        "description": "Allow to include soft-deleted items (<i>with</i>: include soft-deleted records to the result set; <i>only</i>: return only 'trashed' records at the result set)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page (on pagination, default 1)",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1api~1v1~1tags/post/responses/201/content/application~1json/schema/properties/data"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links"
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "post": {
                "tags": [
                    "Tags"
                ],
                "summary": "Create a Tag",
                "description": "Permissions needed: NONE\nCreate a new Tag record\n",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "entity_type": {
                                        "description": "Tag type (on what entities it can be used)",
                                        "type": "string",
                                        "enum": [
                                            "pet",
                                            "user"
                                        ],
                                        "example": "pet"
                                    },
                                    "clinic_id": {
                                        "description": "Clinic Id.",
                                        "type": "integer",
                                        "example": 766
                                    },
                                    "color_level": {
                                        "description": "Tag Color (any hex color, ex:<i>#FF0000</i>)",
                                        "type": "string",
                                        "example": "#FF0000"
                                    },
                                    "value": {
                                        "description": "Tag value",
                                        "type": "string",
                                        "example": "Happy"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "Tag",
                                            "description": "Tags are purely informative and can be used to categorize pets or petParents in the system.",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "entity_type": {
                                                    "type": "string",
                                                    "enum": [
                                                        "App\\\\Models\\\\Pet",
                                                        "App\\\\Models\\\\User"
                                                    ],
                                                    "example": "App\\\\Models\\\\Pet"
                                                },
                                                "clinic_id": {
                                                    "type": "integer",
                                                    "example": 766
                                                },
                                                "color_level": {
                                                    "type": "string",
                                                    "example": "#FF0000"
                                                },
                                                "value": {
                                                    "type": "string",
                                                    "example": "Happy"
                                                },
                                                "created_at": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "example": "2021-10-05T12:52:53.000000Z"
                                                },
                                                "deleted_at": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "nullable": true,
                                                    "example": null
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/tags/{id}": {
            "get": {
                "tags": [
                    "Tags"
                ],
                "summary": "Update a Tag",
                "description": "Permissions needed: NONE\nReturns a Tag record\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/paths/~1api~1v1~1tags/post/responses/201/content/application~1json/schema/properties/data"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Tags"
                ],
                "summary": "Delete a Tag",
                "description": "Permissions needed: NONE\nSoft Delete a Tag\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "responses": {
                    "204": {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/responses/204"
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/taggables": {
            "get": {
                "tags": [
                    "Tags"
                ],
                "summary": "list all Taggables",
                "description": "Permissions needed: NONE\nReturns list of Taggables\n",
                "parameters": [
                    {
                        "name": "filter[entity_type]",
                        "in": "query",
                        "description": "Entity Type (Ex. <i>App\\Models\\Pet<i>, <i>Pet<i>, <i>pet<i>; <i>user<i>)",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[entity_id]",
                        "in": "query",
                        "description": "Entity ID (<font color='red'>required</font> if filter[tag_id] is not set)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[tag_id]",
                        "in": "query",
                        "description": "Tag Id",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[color_level]",
                        "in": "query",
                        "description": "Tag Color (any hex color, ex:<i>#FF0000</i>)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/0"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1tags/get/parameters/4"
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional relation to include(ex:<i>tag</i>)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "tag"
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1tags/get/parameters/5"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/11"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1api~1v1~1taggables/post/responses/201/content/application~1json/schema/properties/data"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links"
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "post": {
                "tags": [
                    "Tags"
                ],
                "summary": "Create a Taggable",
                "description": "Permissions needed: NONE\nStore Taggable record\n",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "entity_type": {
                                        "description": "Entity type.",
                                        "type": "string",
                                        "enum": [
                                            "pet",
                                            "user"
                                        ],
                                        "example": "pet"
                                    },
                                    "entity_id": {
                                        "description": "Entity Id.",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "tag_id": {
                                        "description": "Tag Id.",
                                        "type": "integer",
                                        "example": 1
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "Taggable",
                                            "description": "Taggable is the pivot in the many-to-many relationship between a tag and an entity (petParent or pet)",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "entity_type": {
                                                    "type": "string",
                                                    "enum": [
                                                        "App\\\\Models\\\\Pet",
                                                        "App\\\\Models\\\\User"
                                                    ],
                                                    "example": "App\\\\Models\\\\Pet"
                                                },
                                                "entity_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "tag_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "created_at": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "example": "2021-11-15T11:37:46.000000Z"
                                                },
                                                "deleted_at": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "tag": {
                                                    "$ref": "#/paths/~1api~1v1~1tags/post/responses/201/content/application~1json/schema/properties/data"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/taggables/{id}": {
            "get": {
                "tags": [
                    "Tags"
                ],
                "summary": "Retrieve a Taggable",
                "description": "Permissions needed: NONE\nReturns a Taggable record by id\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/paths/~1api~1v1~1taggables/post/responses/201/content/application~1json/schema/properties/data"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Tags"
                ],
                "summary": "Delete a Taggable",
                "description": "Permissions needed: NONE\nSoft Delete a Taggable record\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "responses": {
                    "204": {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/responses/204"
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/vets": {
            "get": {
                "tags": [
                    "Vets"
                ],
                "summary": "List all Vets",
                "description": "Permissions needed: ACCESS_PATIENTS\nReturns the Vet list from a clinic\n",
                "parameters": [
                    {
                        "name": "filter[clinic_id]",
                        "in": "query",
                        "description": "Clinic IDs (comma separated)",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/1"
                    },
                    {
                        "name": "filter[id]",
                        "in": "query",
                        "description": "Ids of the entities that are related to the endpoint",
                        "style": "form",
                        "explode": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    },
                    {
                        "name": "filter[query]",
                        "description": "Search query string",
                        "required": false,
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[email]",
                        "in": "query",
                        "description": "Vet email",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[active]",
                        "in": "query",
                        "description": "Filter only by vets that are active. Exclude to get all vets.",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "enum": [
                                "active"
                            ]
                        }
                    },
                    {
                        "name": "filter[status]",
                        "in": "query",
                        "description": "`0` - Inactive `1` - Active\n",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "enum": [
                                0,
                                1
                            ]
                        }
                    },
                    {
                        "name": "filter[is_available_for_appointments]",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "filter[is_visible_on_calendar]",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1tags/get/parameters/4"
                    },
                    {
                        "name": "filter[vet_role_id]",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[available_between]",
                        "in": "query",
                        "description": "Filter by availability. Format: YYYY-MM-DD,YYYY-MM-DD or YYYY-MM-DD",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[type]",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "veterinarian",
                                "technician",
                                "groomer",
                                "practice_manager",
                                "receptionist",
                                "support_staff"
                            ]
                        }
                    },
                    {
                        "name": "filter[visit_type_id]",
                        "in": "query",
                        "description": "Filter by visit type ID",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[booking_status]",
                        "in": "query",
                        "description": "Filter by booking status",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "inactive",
                                "staffing_only",
                                "internal_needs_setup",
                                "internal_ready",
                                "online_needs_setup",
                                "online_ready"
                            ]
                        }
                    },
                    {
                        "name": "filter[team_id]",
                        "in": "query",
                        "description": "Filter by team ID",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include. You can use multiple, comma separated.  Options: multipleClinic, multipleClinic.rooms, vetRolesAll, services, visitTypes, employee.chatUser, employees.teams, colleague_order, shifts, employees.vet.visitTypes, employees.vet.shifts, employees.clinic. employee.chatUser manages has_chat_user attribute, true if chatUser is active, false if non-existent or inactive",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Order by field(s) (status, first_name, last_name, colleague_order) Use a minus before for descending order -status",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1tags/get/parameters/5"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/11"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1api~1v1~1vets~1%7Bid%7D/get/responses/200/content/application~1json/schema/properties/data"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links"
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/vets/{id}": {
            "get": {
                "tags": [
                    "Vets"
                ],
                "summary": "Retrieve a Vet",
                "description": "Permissions needed: ACCESS_PATIENTS\nReturns a Vet entity\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional relations to include(Ex.: multipleClinic, multipleClinic.rooms, vetRolesAll, services, visitTypes, employees.teams)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "Vet",
                                            "description": "A vet is the user of the system. A vet is any member of the animal hospital staff that has an account in Digitail. Each user has a specific role in the system and can be associated with multiple clinics.",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "first_name": {
                                                    "type": "string",
                                                    "example": "John"
                                                },
                                                "last_name": {
                                                    "type": "string",
                                                    "example": "Doe"
                                                },
                                                "full_name": {
                                                    "type": "string",
                                                    "example": "John Doe"
                                                },
                                                "name_with_title": {
                                                    "type": "string",
                                                    "example": "Dr. John Doe"
                                                },
                                                "email": {
                                                    "type": "string",
                                                    "example": "vet@example.com"
                                                },
                                                "phone": {
                                                    "type": "string",
                                                    "example": "123456789"
                                                },
                                                "avatar": {
                                                    "type": "string",
                                                    "example": "https://vet.digitail.io/images/profilepic.jpg"
                                                },
                                                "stamp": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": "https://vet.digitail.io/images/signature.jpg"
                                                },
                                                "license_number": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": "123456789"
                                                },
                                                "job_title": {
                                                    "type": "string",
                                                    "example": "Dr."
                                                },
                                                "deleted_at": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "active": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "video_link": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": "https://digitail.com/video"
                                                },
                                                "public_appointment_link": {
                                                    "type": "string",
                                                    "example": "https://digitail.com/clinics/clinic-slug/vet-slug"
                                                },
                                                "type": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "enum": [
                                                        "veterinarian",
                                                        "technician",
                                                        "groomer",
                                                        "practice_manager",
                                                        "receptionist",
                                                        "support_staff"
                                                    ]
                                                },
                                                "two_factor_enabled": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "has_chat_user": {
                                                    "description": "true if chatUser is active, false if non-existent or inactive",
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "colleague_order": {
                                                    "type": "integer",
                                                    "nullable": true,
                                                    "example": 1
                                                },
                                                "is_visible_on_calendar": {
                                                    "type": "boolean",
                                                    "nullable": true
                                                },
                                                "employees": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "clinic_id": {
                                                                "type": "integer"
                                                            },
                                                            "vet_role_id": {
                                                                "type": "integer"
                                                            },
                                                            "is_available_for_appointments": {
                                                                "type": "boolean"
                                                            },
                                                            "is_visible_on_calendar": {
                                                                "type": "boolean"
                                                            },
                                                            "type": {
                                                                "type": "string"
                                                            },
                                                            "teams": {
                                                                "type": "array",
                                                                "nullable": true,
                                                                "items": {
                                                                    "$ref": "#/paths/~1api~1v1~1vets~1%7Bid%7D/get/responses/200/content/application~1json/schema/properties/data/properties/teams/items"
                                                                }
                                                            }
                                                        }
                                                    }
                                                },
                                                "teams": {
                                                    "type": "array",
                                                    "nullable": true,
                                                    "items": {
                                                        "type": "object",
                                                        "title": "Team",
                                                        "nullable": true,
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "name": {
                                                                "type": "string"
                                                            },
                                                            "handle": {
                                                                "type": "string"
                                                            },
                                                            "clinic_id": {
                                                                "type": "integer"
                                                            },
                                                            "description": {
                                                                "type": "string",
                                                                "nullable": true
                                                            },
                                                            "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                    "by_vet",
                                                                    "by_vet_type"
                                                                ]
                                                            },
                                                            "status": {
                                                                "type": "string",
                                                                "enum": [
                                                                    "active",
                                                                    "inactive"
                                                                ]
                                                            },
                                                            "color": {
                                                                "type": "string",
                                                                "nullable": true
                                                            },
                                                            "vet_types": {
                                                                "type": "array",
                                                                "nullable": true,
                                                                "items": {
                                                                    "type": "string",
                                                                    "enum": [
                                                                        "veterinarian",
                                                                        "technician",
                                                                        "groomer",
                                                                        "practice_manager",
                                                                        "receptionist",
                                                                        "support_staff"
                                                                    ]
                                                                }
                                                            },
                                                            "vets": {
                                                                "type": "array",
                                                                "items": {
                                                                    "$ref": "#/paths/~1api~1v1~1vets~1%7Bid%7D~1colleagues-calendar-order/get/responses/200/content/application~1json/schema/properties/data/items"
                                                                }
                                                            },
                                                            "vets_count": {
                                                                "type": "integer",
                                                                "nullable": true
                                                            }
                                                        }
                                                    }
                                                },
                                                "visit_types": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/paths/~1api~1v1~1records/post/responses/201/content/application~1json/schema/properties/data/properties/visit_types/items"
                                                    }
                                                },
                                                "booking_status": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "enum": [
                                                        "inactive",
                                                        "staffing_only",
                                                        "internal_needs_setup",
                                                        "internal_ready",
                                                        "online_needs_setup",
                                                        "online_ready"
                                                    ]
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/vets/{id}/colleagues-calendar-order": {
            "get": {
                "tags": [
                    "Vets"
                ],
                "summary": "List colleagues calendar order for Vet",
                "description": "Permissions needed: NONE\nVet get colleagues calendar order\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "title": "OldVet",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "first_name": {
                                                        "type": "integer",
                                                        "example": "John"
                                                    },
                                                    "last_name": {
                                                        "type": "string",
                                                        "example": "Doe"
                                                    },
                                                    "full_name": {
                                                        "type": "string",
                                                        "example": "John Doe"
                                                    },
                                                    "name_with_title": {
                                                        "type": "string",
                                                        "example": "Dr. John Doe"
                                                    },
                                                    "avatar": {
                                                        "type": "string",
                                                        "example": "http://digitail.test/images/profilepic.jpg"
                                                    },
                                                    "job_title": {
                                                        "type": "string",
                                                        "example": "Dr."
                                                    },
                                                    "active": {
                                                        "type": "boolean",
                                                        "example": true
                                                    },
                                                    "clinic": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "integer"
                                                        },
                                                        "example": [
                                                            1,
                                                            2
                                                        ]
                                                    },
                                                    "listing_index": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "video_link": {
                                                        "type": "string",
                                                        "nullable": true,
                                                        "example": "https://digitail.com/video"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "post": {
                "tags": [
                    "Vets"
                ],
                "summary": "Update colleagues calendar order for Vet",
                "description": "Permissions needed: NONE\nVet change colleagues calendar order\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "vet_colleague_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "vet_colleague_index": {
                                                    "type": "integer",
                                                    "example": 1
                                                }
                                            }
                                        }
                                    },
                                    "return_vets": {
                                        "type": "boolean",
                                        "example": true
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1api~1v1~1vets~1%7Bid%7D~1colleagues-calendar-order/get/responses/200/content/application~1json/schema/properties/data/items"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "422": {
                        "$ref": "#/paths/~1api~1v1~1files/post/responses/422"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/vets/{id}/schedule": {
            "get": {
                "tags": [
                    "Vets"
                ],
                "summary": "Retrieve Vet Schedule",
                "description": "Permissions needed: NONE\nGet Schedule by Clinic id and Vet id\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "filter[clinic_id]",
                        "in": "query",
                        "description": "clinic id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[start_date]",
                        "in": "query",
                        "description": "Date",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "date",
                            "example": "2023-07-01"
                        }
                    },
                    {
                        "name": "filter[end_date]",
                        "in": "query",
                        "description": "Date, can be skipped for one day schedule",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date",
                            "example": "2023-07-04"
                        }
                    },
                    {
                        "name": "visit_type_id",
                        "in": "query",
                        "description": "visit_type_id for calc available slots, required one of service_id, visit_type_id or duration",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "duration",
                        "in": "query",
                        "description": "duration in minutes for calc available slots, required one of visit_type_id or duration",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "title": "VetSchedule",
                                                "properties": {
                                                    "weekday": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "is_open": {
                                                        "type": "boolean",
                                                        "example": true
                                                    },
                                                    "date": {
                                                        "type": "string",
                                                        "format": "date",
                                                        "example": "2022-02-22"
                                                    },
                                                    "intervals": {
                                                        "type": "array",
                                                        "items": {
                                                            "properties": {
                                                                "start_time": {
                                                                    "type": "string",
                                                                    "format": "date-time",
                                                                    "example": "2022-02-22T10:00:00.000000Z"
                                                                },
                                                                "end_time": {
                                                                    "type": "string",
                                                                    "format": "date-time",
                                                                    "example": "2022-02-22T10:30:00.000000Z"
                                                                }
                                                            }
                                                        }
                                                    },
                                                    "appointments": {
                                                        "type": "array",
                                                        "items": {
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer"
                                                                },
                                                                "start_time": {
                                                                    "type": "string",
                                                                    "format": "date-time",
                                                                    "example": "2022-02-22T10:00:00.000000Z"
                                                                },
                                                                "end_time": {
                                                                    "type": "string",
                                                                    "format": "date-time",
                                                                    "example": "2022-02-22T10:30:00.000000Z"
                                                                }
                                                            }
                                                        }
                                                    },
                                                    "events": {
                                                        "type": "array",
                                                        "items": {
                                                            "properties": {
                                                                "start_time": {
                                                                    "type": "string",
                                                                    "format": "date-time",
                                                                    "example": "2022-02-22T10:00:00.000000Z"
                                                                },
                                                                "end_time": {
                                                                    "type": "string",
                                                                    "format": "date-time",
                                                                    "example": "2022-02-22T10:30:00.000000Z"
                                                                }
                                                            }
                                                        }
                                                    },
                                                    "shift_rules": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer"
                                                                },
                                                                "name": {
                                                                    "type": "string",
                                                                    "nullable": true
                                                                },
                                                                "time_start": {
                                                                    "type": "string",
                                                                    "example": "11:00:00"
                                                                },
                                                                "time_end": {
                                                                    "type": "string",
                                                                    "example": "12:00:00"
                                                                },
                                                                "color": {
                                                                    "type": "string",
                                                                    "nullable": true,
                                                                    "example": "#FF0000"
                                                                },
                                                                "type": {
                                                                    "type": "string",
                                                                    "enum": [
                                                                        "available",
                                                                        "unbookable"
                                                                    ]
                                                                },
                                                                "visit_types": {
                                                                    "type": "array",
                                                                    "nullable": true,
                                                                    "items": {
                                                                        "$ref": "#/paths/~1api~1v1~1records/post/responses/201/content/application~1json/schema/properties/data/properties/visit_types/items"
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/charges": {
            "post": {
                "tags": [
                    "Charges"
                ],
                "summary": "Create a Charge",
                "description": "Permissions needed: any of (CREATE_CHECKUPS, VIEW_COUNTER_SALE)\nCreates a new charge for a specific pet parent and clinic and returns it.\n`surcharge` is accepted only for DSP integrated saved card payments (when `provider_data.payment_method_id` is provided).\n",
                "parameters": [
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include:  mainSale,mainPayment,payments,chargeReceipt"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "clinic_id": {
                                        "description": "Clinic is on which pet parent is client on.",
                                        "type": "integer",
                                        "example": 1234
                                    },
                                    "client_id": {
                                        "description": "Pet parent id",
                                        "type": "integer",
                                        "example": 234
                                    },
                                    "sale_id": {
                                        "description": "Id of sale to associate the charge to, if <i>as_credit</i> is <i>false</i> the sale will be paid first if there are multiple due sales and <i>amount</i> is greater than sale amount due",
                                        "type": "integer",
                                        "example": 234
                                    },
                                    "amount": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 100
                                    },
                                    "type": {
                                        "type": "integer",
                                        "enum": [
                                            1,
                                            2,
                                            3,
                                            4,
                                            6,
                                            7
                                        ],
                                        "description": "`1` - Cash `2` - Card `3` - Order `6` - Check `7` - Other\n",
                                        "example": 2
                                    },
                                    "card_brand": {
                                        "type": "string",
                                        "nullable": true,
                                        "enum": [
                                            "master_card",
                                            "visa",
                                            "american_express",
                                            "discover",
                                            "other"
                                        ],
                                        "example": "master_card"
                                    },
                                    "provider_data": {
                                        "type": "object",
                                        "title": "Payment provider data",
                                        "description": "Required for DSP integrated saved card payments.",
                                        "nullable": true,
                                        "properties": {
                                            "payment_method_id": {
                                                "type": "string",
                                                "description": "The saved card payment method id to use for this charge.",
                                                "example": "pm_123"
                                            }
                                        }
                                    },
                                    "date": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2020-01-01T00:00:00Z"
                                    },
                                    "notes": {
                                        "description": "Payment note",
                                        "type": "string",
                                        "nullable": true,
                                        "example": null
                                    },
                                    "create_receipt": {
                                        "type": "boolean",
                                        "nullable": true,
                                        "example": false
                                    },
                                    "as_credit": {
                                        "description": "If true charge is not applied to due sales and is kept as client credit",
                                        "type": "boolean",
                                        "example": false
                                    },
                                    "surcharge": {
                                        "description": "Surcharge amount to be added to the charge total. Can be sent only for DSP integrated saved card payments (`provider_data.payment_method_id`).",
                                        "type": "number",
                                        "format": "float",
                                        "minimum": 0,
                                        "exclusiveMinimum": true,
                                        "example": 0.35
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "Charge",
                                            "description": "A charge is the act of the customer paying the clinic. A charge can later on be allocated to different sales through payments. If no sale is outstanding, the charge will be left as a credit in the customer's account.",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "amount": {
                                                    "type": "string",
                                                    "example": "100.00"
                                                },
                                                "amount_refunded": {
                                                    "type": "string",
                                                    "example": "0.00"
                                                },
                                                "amount_left": {
                                                    "description": "Amount left to refund",
                                                    "type": "string",
                                                    "format": "float",
                                                    "example": 0
                                                },
                                                "made_at": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "example": "2023-12-14T11:32:44.000000Z"
                                                },
                                                "type": {
                                                    "type": "integer",
                                                    "enum": [
                                                        1,
                                                        2,
                                                        3,
                                                        5,
                                                        6,
                                                        7,
                                                        8,
                                                        9
                                                    ],
                                                    "description": "`1` - Cash `2` - Card `3` - Order `5` - Online `6` - Check `7` - Other `9` - Care Credit\n",
                                                    "example": 2
                                                },
                                                "card_brand": {
                                                    "$ref": "#/paths/~1api~1v1~1charges/post/requestBody/content/application~1json/schema/properties/card_brand"
                                                },
                                                "main_sale_id": {
                                                    "description": "Sale id charge is associated to",
                                                    "type": "integer",
                                                    "nullable": true,
                                                    "example": 1
                                                },
                                                "main_sale": {
                                                    "type": "object"
                                                },
                                                "main_payment_id": {
                                                    "type": "integer",
                                                    "nullable": true,
                                                    "example": 1
                                                },
                                                "main_payment": {
                                                    "type": "object",
                                                    "nullable": true
                                                },
                                                "has_single_payment": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "has_multiple_payment": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "payments": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/paths/~1api~1v1~1sales~1%7Bid%7D~1pay-with-credit/post/responses/200/content/application~1json/schema/properties/data"
                                                    }
                                                },
                                                "paid_sales": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/paths/~1api~1v1~1sales/post/responses/200/content/application~1json/schema/properties/data"
                                                    }
                                                },
                                                "charge_receipt": {
                                                    "type": "object"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "example": {
                                        "message": "The given data was invalid.",
                                        "errors": {
                                            "card_brand": [
                                                "The card brand field can only be provided on Payments with Cards"
                                            ],
                                            "surcharge": [
                                                "The surcharge field can only be provided for DSP integrated saved card payments."
                                            ]
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/patients/{id}/estimates": {
            "get": {
                "tags": [
                    "Pets"
                ],
                "summary": "List all Estimates for Patient",
                "description": "Returns list of Patient's Estimates",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1client-communications/get/parameters/3"
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional relationships or information to include with the main entity(s) of the response. Each endpoint has its own set of available includes.",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            },
                            "example": [
                                "clinic",
                                "patient",
                                "patient.petParent"
                            ]
                        }
                    },
                    {
                        "name": "filter[status]",
                        "description": "Estimate status (PENDING - 0, DECLINED - 1, APPROVED - 2)",
                        "in": "query",
                        "type": "string",
                        "enum": [
                            0,
                            1,
                            2
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1api~1v1~1patients~1%7Bid%7D~1estimates~1%7Bestimate%7D/get/responses/200/content/application~1json/schema"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    }
                }
            }
        },
        "/api/v1/patients/{id}/estimates/{estimate}": {
            "get": {
                "tags": [
                    "Patient Estimates"
                ],
                "summary": "View Patient Estimate",
                "description": "Shows a Patient Estimate",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "estimate",
                        "in": "path",
                        "description": "Estimate ID",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include. You can use multiple, comma separated. Options: record, record.responsible, printedFile, printedFile.patient, printedFile.patient.pet, printedFile.patient.pet.owners, printedFile.pet, printedFile.pet.owners",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "title": "Estimate",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "example": 4
                                        },
                                        "clinic_id": {
                                            "type": "integer",
                                            "example": 2608
                                        },
                                        "record_id": {
                                            "type": "integer",
                                            "example": 357
                                        },
                                        "record": {
                                            "description": "Only present when `record` is requested via the `include` query parameter.",
                                            "allOf": [
                                                {
                                                    "$ref": "#/paths/~1api~1v1~1records/post/responses/201/content/application~1json/schema/properties/data"
                                                }
                                            ]
                                        },
                                        "patient_id": {
                                            "type": "integer",
                                            "example": 411
                                        },
                                        "status": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "title": {
                                            "type": "string",
                                            "example": "Test Title"
                                        },
                                        "public_notes": {
                                            "type": "string",
                                            "example": "Optio eos quisquam necessitatibus nihil omnis. Est earum modi rerum delectus. Aut ipsam sapiente eveniet aperiam ex est."
                                        },
                                        "internal_notes": {
                                            "type": "string",
                                            "example": "Tempore eaque ut nihil repellendus beatae. Harum et molestias et dolores quos. Velit omnis quos ex modi tenetur sint. Incidunt omnis cum ad nihil voluptas sint."
                                        },
                                        "low_discount_type": {
                                            "type": "integer",
                                            "example": 0
                                        },
                                        "low_discount": {
                                            "type": "integer",
                                            "example": 0
                                        },
                                        "high_discount_type": {
                                            "type": "integer",
                                            "example": 0
                                        },
                                        "high_discount": {
                                            "type": "integer",
                                            "example": 0
                                        },
                                        "treatments": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "title": "EstimateTreatment",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 16
                                                    },
                                                    "product_id": {
                                                        "type": "integer",
                                                        "example": 409
                                                    },
                                                    "low_quantity": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "high_quantity": {
                                                        "type": "integer",
                                                        "example": 5
                                                    },
                                                    "low_quantity_unit_id": {
                                                        "type": "integer",
                                                        "example": 0
                                                    },
                                                    "high_quantity_unit_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "status": {
                                                        "type": "integer",
                                                        "example": 2
                                                    },
                                                    "notes": {
                                                        "type": null
                                                    },
                                                    "low_end": {
                                                        "type": "number",
                                                        "example": 0.19
                                                    },
                                                    "low_end_without_tax": {
                                                        "type": "number",
                                                        "example": 0.16
                                                    },
                                                    "high_end": {
                                                        "type": "number",
                                                        "example": 8.4
                                                    },
                                                    "high_end_without_tax": {
                                                        "type": "number",
                                                        "example": 7
                                                    },
                                                    "product": {
                                                        "$ref": "#/paths/~1api~1v1~1products~1%7Bid%7D/get/responses/200/content/application~1json/schema/properties/data"
                                                    }
                                                }
                                            }
                                        },
                                        "services": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "title": "EstimateService",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 15
                                                    },
                                                    "service_package_id": {
                                                        "type": "integer",
                                                        "example": 43
                                                    },
                                                    "status": {
                                                        "type": "integer",
                                                        "example": 0
                                                    },
                                                    "low_quantity": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "high_quantity": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "low_end": {
                                                        "type": "number",
                                                        "example": 0
                                                    },
                                                    "low_end_without_tax": {
                                                        "type": "number",
                                                        "example": 0
                                                    },
                                                    "high_end": {
                                                        "type": "number",
                                                        "example": 1
                                                    },
                                                    "high_end_without_tax": {
                                                        "type": "number",
                                                        "example": 0.84
                                                    },
                                                    "low_end_total": {
                                                        "type": "number",
                                                        "example": 0
                                                    },
                                                    "high_end_total": {
                                                        "type": "number",
                                                        "example": 1
                                                    },
                                                    "notes": {
                                                        "type": "string",
                                                        "example": "distinctio"
                                                    },
                                                    "products": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer",
                                                                    "example": 12
                                                                },
                                                                "product_id": {
                                                                    "type": "integer",
                                                                    "example": 409
                                                                },
                                                                "low_quantity": {
                                                                    "type": "number",
                                                                    "example": 1
                                                                },
                                                                "high_quantity": {
                                                                    "type": "number",
                                                                    "example": 2
                                                                },
                                                                "low_quantity_unit_id": {
                                                                    "type": "integer",
                                                                    "example": 0
                                                                },
                                                                "high_quantity_unit_id": {
                                                                    "type": "integer",
                                                                    "example": 1
                                                                },
                                                                "low_end": {
                                                                    "type": "number",
                                                                    "example": 0.19
                                                                },
                                                                "low_end_without_tax": {
                                                                    "type": "number",
                                                                    "example": 0.16
                                                                },
                                                                "high_end": {
                                                                    "type": "number",
                                                                    "example": 8.4
                                                                },
                                                                "high_end_without_tax": {
                                                                    "type": "number",
                                                                    "example": 7
                                                                },
                                                                "status": {
                                                                    "type": "integer",
                                                                    "example": 0
                                                                },
                                                                "rejection_reason": {
                                                                    "type": "integer",
                                                                    "nullable": true,
                                                                    "example": null
                                                                },
                                                                "notes": {
                                                                    "type": "string",
                                                                    "nullable": true,
                                                                    "example": null
                                                                },
                                                                "product": {
                                                                    "$ref": "#/paths/~1api~1v1~1products~1%7Bid%7D/get/responses/200/content/application~1json/schema/properties/data"
                                                                }
                                                            }
                                                        }
                                                    },
                                                    "service": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 43
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "example": "Service package #et"
                                                            },
                                                            "category": {
                                                                "type": "object",
                                                                "properties": {
                                                                    "id": {
                                                                        "type": "integer",
                                                                        "example": 544
                                                                    },
                                                                    "category_id": {
                                                                        "type": "string",
                                                                        "example": "544"
                                                                    },
                                                                    "label": {
                                                                        "type": "string",
                                                                        "example": "General Checkup"
                                                                    }
                                                                }
                                                            },
                                                            "price": {
                                                                "type": "string",
                                                                "example": "120.500"
                                                            },
                                                            "discount": {
                                                                "type": "integer",
                                                                "example": 0
                                                            },
                                                            "description": {
                                                                "type": "string",
                                                                "example": "maiores ut necessitatibus"
                                                            },
                                                            "suggested_products": {
                                                                "type": "array",
                                                                "items": []
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        },
                                        "low_payment_estimation": {
                                            "type": "object",
                                            "title": "PaymentEstimation",
                                            "properties": {
                                                "subtotal": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "vat": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "discount": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "example": 0
                                                }
                                            }
                                        },
                                        "high_payment_estimation": {
                                            "$ref": "#/paths/~1api~1v1~1patients~1%7Bid%7D~1estimates~1%7Bestimate%7D/get/responses/200/content/application~1json/schema/properties/low_payment_estimation"
                                        },
                                        "created_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "example": "2023-06-16T10:47:31.000000Z"
                                        },
                                        "sale_id": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "moved_to_sale": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "printed_file": {
                                            "type": "object",
                                            "title": "PrintedFile",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 9
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "nullable": true,
                                                    "example": null
                                                },
                                                "title": {
                                                    "type": "string",
                                                    "example": "Rabies Certificate For Daisy"
                                                },
                                                "real_name": {
                                                    "type": "string",
                                                    "example": "Rabies Certificate For Daisy.pdf"
                                                },
                                                "printable_file_id": {
                                                    "type": "string",
                                                    "example": "1086"
                                                },
                                                "vet_id": {
                                                    "type": "string",
                                                    "example": "1568"
                                                },
                                                "patient_id": {
                                                    "type": "string",
                                                    "example": "316635"
                                                },
                                                "token": {
                                                    "type": "string"
                                                },
                                                "notified_at": {
                                                    "type": "string",
                                                    "example": "2021-11-19T13:40:23.000000Z"
                                                },
                                                "signed_at": {
                                                    "type": "string",
                                                    "example": "2021-11-19T13:40:23.000000Z"
                                                },
                                                "confirmed_at": {
                                                    "type": "string",
                                                    "example": "2021-11-19T13:40:23.000000Z"
                                                },
                                                "has_signature_shortcode": {
                                                    "type": "boolean"
                                                },
                                                "has_fillable_inputs": {
                                                    "type": "boolean"
                                                },
                                                "type": {
                                                    "type": "string",
                                                    "enum": [
                                                        "form",
                                                        "certificate"
                                                    ]
                                                },
                                                "created_at": {
                                                    "type": "string",
                                                    "example": "2021-11-19T13:40:23.000000Z"
                                                },
                                                "patient": {
                                                    "type": "object",
                                                    "nullable": true,
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "pet_id": {
                                                            "type": "integer"
                                                        },
                                                        "pet": {
                                                            "nullable": true,
                                                            "type": "object",
                                                            "title": "Pet",
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer",
                                                                    "example": 429
                                                                },
                                                                "nickname": {
                                                                    "type": "string",
                                                                    "example": "Larry"
                                                                },
                                                                "species_id": {
                                                                    "type": "string",
                                                                    "example": "857"
                                                                },
                                                                "breed_id": {
                                                                    "type": "string",
                                                                    "example": "429"
                                                                },
                                                                "observations": {
                                                                    "type": "string",
                                                                    "example": ""
                                                                },
                                                                "gender": {
                                                                    "type": "string",
                                                                    "example": "female"
                                                                },
                                                                "microchip": {
                                                                    "type": "string",
                                                                    "example": "311010324"
                                                                },
                                                                "crossbreed": {
                                                                    "type": "string",
                                                                    "example": "0"
                                                                },
                                                                "crossbreed_details_id": {
                                                                    "type": null
                                                                },
                                                                "color": {
                                                                    "type": "string",
                                                                    "example": "Chocolate"
                                                                },
                                                                "distinctive_marks": {
                                                                    "type": "string",
                                                                    "example": "maiores"
                                                                },
                                                                "birthday": {
                                                                    "type": "string",
                                                                    "example": "1979-12-30"
                                                                },
                                                                "gender_string": {
                                                                    "type": null
                                                                },
                                                                "chip_number": {
                                                                    "type": "string",
                                                                    "example": "311010324"
                                                                },
                                                                "microchip_location": {
                                                                    "type": null
                                                                },
                                                                "insurance_number": {
                                                                    "type": null
                                                                },
                                                                "passport": {
                                                                    "type": "string",
                                                                    "example": ""
                                                                },
                                                                "profile_picture": {
                                                                    "type": "string",
                                                                    "example": "https://dev-1-public-digitail.s3.eu-central-1.amazonaws.com/mofe/uploads/OVq90HYgJ86f08WHre8w"
                                                                },
                                                                "description": {
                                                                    "type": "string",
                                                                    "example": "nR6EMINZn89N8breVBtv"
                                                                },
                                                                "constitution": {
                                                                    "type": null
                                                                },
                                                                "conformation": {
                                                                    "type": null
                                                                },
                                                                "weight": {
                                                                    "type": "string",
                                                                    "example": "21"
                                                                },
                                                                "allergies": {
                                                                    "type": null
                                                                },
                                                                "nr_recs": {
                                                                    "type": null
                                                                },
                                                                "blood_type": {
                                                                    "type": null
                                                                },
                                                                "hormonal_status": {
                                                                    "type": "integer",
                                                                    "example": 0
                                                                },
                                                                "owners": {
                                                                    "type": "array",
                                                                    "nullable": true,
                                                                    "items": {
                                                                        "type": "object",
                                                                        "title": "PetParent",
                                                                        "properties": {
                                                                            "id": {
                                                                                "type": "integer",
                                                                                "example": 705
                                                                            },
                                                                            "name": {
                                                                                "type": "string",
                                                                                "example": "Emily"
                                                                            },
                                                                            "last_name": {
                                                                                "type": "string",
                                                                                "example": "Oberbrunner"
                                                                            },
                                                                            "full_name": {
                                                                                "type": "string",
                                                                                "example": "Emily Oberbrunner"
                                                                            },
                                                                            "email": {
                                                                                "type": "string",
                                                                                "example": "parent@pet.tail"
                                                                            },
                                                                            "phone": {
                                                                                "type": "string",
                                                                                "description": "Phone number in E.164 format",
                                                                                "example": "+16175551212"
                                                                            },
                                                                            "secondary_phone": {
                                                                                "type": "string",
                                                                                "description": "Phone number in E.164 format",
                                                                                "example": "+16175551212"
                                                                            },
                                                                            "chatUid": {
                                                                                "type": null
                                                                            },
                                                                            "has_app": {
                                                                                "type": "integer",
                                                                                "example": 0
                                                                            },
                                                                            "has_app_date": {
                                                                                "type": null
                                                                            },
                                                                            "enable_chat_without_app": {
                                                                                "type": "string",
                                                                                "example": "0"
                                                                            },
                                                                            "created_at": {
                                                                                "type": "string",
                                                                                "example": "2023-04-18 11:53:29"
                                                                            },
                                                                            "address": {
                                                                                "type": "string",
                                                                                "example": "71936 Dimitri Station Apt. 627\nNew Britney, NJ 77974-6353"
                                                                            },
                                                                            "address_2": {
                                                                                "type": "string",
                                                                                "example": "Apt. 422"
                                                                            },
                                                                            "city": {
                                                                                "type": "string",
                                                                                "example": "East Terrenceton"
                                                                            },
                                                                            "birthdate": {
                                                                                "type": null
                                                                            },
                                                                            "observations": {
                                                                                "type": "string",
                                                                                "example": ""
                                                                            },
                                                                            "cnp": {
                                                                                "type": "string",
                                                                                "example": "471221487970"
                                                                            },
                                                                            "chip_number": {
                                                                                "type": "string",
                                                                                "example": "619664"
                                                                            },
                                                                            "current_client_id": {
                                                                                "type": null
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    }
                }
            }
        },
        "/api/v1/public/clinics/{slug}/available-dates": {
            "get": {
                "tags": [
                    "Public Clinics"
                ],
                "summary": "List Clinic available dates",
                "description": "Permissions needed: NONE\nReturns clinic available dates based on vets' available intervals, vets' appointments, vets' tasks, vets' services and service duration.\n",
                "security": [],
                "parameters": [
                    {
                        "name": "slug",
                        "in": "path",
                        "description": "The Clinic slug",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[start_date]",
                        "in": "query",
                        "description": "Date",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "date",
                            "example": "2024-02-01"
                        }
                    },
                    {
                        "name": "filter[end_date]",
                        "in": "query",
                        "description": "Date, can be skipped for one day schedule",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date",
                            "example": "2024-02-28"
                        }
                    },
                    {
                        "name": "filter[visit_type_id]",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[duration]",
                        "in": "query",
                        "description": "duration in minutes for calc available slots, required one of visit_type_id or duration",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[vet_slug]",
                        "in": "query",
                        "description": "The Vet slug",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string",
                                                "format": "date",
                                                "example": "2023-07-01"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/public/clinics/{slug}/vets-timeslots": {
            "get": {
                "tags": [
                    "Public Clinics"
                ],
                "summary": "List clinic vets available timeslots",
                "description": "Permissions needed: NONE\nReturns clinic vets' available timeslots based on their vets' available intervals, vets' appointments, vets' tasks, vets' services and service duration.\n",
                "security": [],
                "parameters": [
                    {
                        "name": "slug",
                        "in": "path",
                        "description": "The Clinic slug",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[start_date]",
                        "in": "query",
                        "description": "Date, if not provided, the first week with available slots within the next two months will be returned",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date",
                            "example": "2024-02-01"
                        }
                    },
                    {
                        "name": "filter[end_date]",
                        "in": "query",
                        "description": "Date, can be skipped for one day schedule",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date",
                            "example": "2024-02-28"
                        }
                    },
                    {
                        "name": "filter[visit_type_id]",
                        "in": "query",
                        "description": "visit_type_id for calc available slots, required one of visit_type_id or duration",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[duration]",
                        "in": "query",
                        "description": "duration in minutes for calc available slots, required one of visit_type_id or duration",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[vet_slug]",
                        "in": "query",
                        "description": "The Vet slug",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "any_staff",
                        "in": "query",
                        "description": "Return only available slots without staff details",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "grouped",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "oneOf": [
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "first_name": {
                                                                "type": "string"
                                                            },
                                                            "last_name": {
                                                                "type": "string"
                                                            },
                                                            "job_title": {
                                                                "type": "string"
                                                            },
                                                            "avatar": {
                                                                "type": "string"
                                                            },
                                                            "schedule": {
                                                                "type": "object",
                                                                "properties": {
                                                                    "date": {
                                                                        "type": "string",
                                                                        "example": "2024-02-06"
                                                                    },
                                                                    "slots": {
                                                                        "type": "array",
                                                                        "items": {
                                                                            "type": "object",
                                                                            "properties": {
                                                                                "start_time": {
                                                                                    "type": "string",
                                                                                    "example": "2024-02-06T14:00:00.000000Z"
                                                                                },
                                                                                "end_time": {
                                                                                    "type": "string",
                                                                                    "example": "2024-02-06T14:30:00.000000Z"
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    },
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "date": {
                                                                "type": "string",
                                                                "example": "2024-02-06"
                                                            },
                                                            "slots": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "object",
                                                                    "properties": {
                                                                        "start_time": {
                                                                            "type": "string",
                                                                            "example": "2024-02-06T14:00:00.000000Z"
                                                                        },
                                                                        "end_time": {
                                                                            "type": "string",
                                                                            "example": "2024-02-06T14:30:00.000000Z"
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    },
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "vets": {
                                                                "type": "object"
                                                            },
                                                            "slots_by_date_by_vet": {
                                                                "type": "object"
                                                            },
                                                            "slots_by_date_by_slot": {
                                                                "type": "object"
                                                            }
                                                        },
                                                        "example": {
                                                            "vets": {
                                                                "349": {
                                                                    "id": 349,
                                                                    "first_name": "Marc",
                                                                    "last_name": "Bednar",
                                                                    "full_name": "Marc Bednar",
                                                                    "avatar": "https://digitail.test/images/profilepic.jpg",
                                                                    "job_title": null
                                                                }
                                                            },
                                                            "slots_by_date_by_vet": {
                                                                "2024-01-01": {
                                                                    "349": [
                                                                        {
                                                                            "start_time": "2024-01-01T08:00:00.000000Z",
                                                                            "end_time": "2024-01-01T08:30:00.000000Z"
                                                                        }
                                                                    ]
                                                                }
                                                            },
                                                            "slots_by_date_by_slot": {
                                                                "2024-01-01": {
                                                                    "2024-01-01T08:00:00.000000Z": {
                                                                        "start_time": "2024-01-01T08:00:00.000000Z",
                                                                        "end_time": "2024-01-01T08:30:00.000000Z",
                                                                        "vet_ids": [
                                                                            349
                                                                        ]
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                ]
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "start_date": {
                                                    "type": "string",
                                                    "example": "2024-02-06"
                                                },
                                                "end_date": {
                                                    "type": "string",
                                                    "example": "2024-02-12"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/public/vets": {
            "get": {
                "tags": [
                    "Public Vets"
                ],
                "summary": "List all Public Vets",
                "description": "Permissions needed: NONE\nReturns the list of clinic vets.\n",
                "security": [],
                "parameters": [
                    {
                        "name": "filter[clinic_slug]",
                        "in": "query",
                        "description": "Clinic slug",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Order by field(s) (first_name) Use a minus before for descending order -first_name",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1tags/get/parameters/5"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/11"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "title": "Vet",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "first_name": {
                                                        "type": "string",
                                                        "example": "John"
                                                    },
                                                    "last_name": {
                                                        "type": "string",
                                                        "example": "Doe"
                                                    },
                                                    "full_name": {
                                                        "type": "string",
                                                        "example": "John Doe"
                                                    },
                                                    "avatar": {
                                                        "type": "string",
                                                        "example": "https://vet.digitail.io/images/profilepic.jpg"
                                                    },
                                                    "job_title": {
                                                        "nullable": true,
                                                        "type": "string",
                                                        "example": "Dr."
                                                    }
                                                }
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links"
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/clients/{client}/payment-provider-cards": {
            "get": {
                "tags": [
                    "Clients"
                ],
                "description": "Get saved payment provider cards.\n",
                "parameters": [
                    {
                        "name": "client",
                        "in": "path",
                        "description": "Client id OR {clinic-id}-{pet-parent-id} tuple.",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "examples": {
                            "clientId": {
                                "value": "123",
                                "summary": "Client id"
                            },
                            "clinicIdAndPetParentId": {
                                "value": "766-371232",
                                "summary": "Clinic id and pet parent id tuple"
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "title": "Payment Provider Card",
                                                "properties": {
                                                    "id": {
                                                        "type": "string",
                                                        "example": "pi_fake"
                                                    },
                                                    "brand": {
                                                        "$ref": "#/paths/~1api~1v1~1charges/post/requestBody/content/application~1json/schema/properties/card_brand"
                                                    },
                                                    "last4": {
                                                        "type": "string",
                                                        "example": "4242"
                                                    },
                                                    "exp_month": {
                                                        "type": "integer",
                                                        "example": 12
                                                    },
                                                    "exp_year": {
                                                        "type": "integer",
                                                        "example": 2022
                                                    }
                                                }
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links"
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/clients/{client}/add-payment-provider-card-link": {
            "post": {
                "tags": [
                    "Clients"
                ],
                "description": "Get add payment provider card link (that you can use to redirect) for a client.\n",
                "parameters": [
                    {
                        "name": "client",
                        "in": "path",
                        "description": "Client id OR {clinic-id}-{pet-parent-id} tuple.",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "examples": {
                            "clientId": {
                                "value": "123",
                                "summary": "Client id"
                            },
                            "clinicIdAndPetParentId": {
                                "value": "766-371232",
                                "summary": "Clinic id and pet parent id tuple"
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "title": "Payment Provider Card Link",
                                    "properties": {
                                        "url": {
                                            "type": "string",
                                            "example": "https://stripe.com/setup-intents/si_1234567890abcdefg"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/clients/{client}/payment-provider-cards/{id}": {
            "delete": {
                "tags": [
                    "Clients"
                ],
                "description": "Deletes a client's  payment provider card",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "responses": {
                    "204": {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/responses/204"
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/public/clinics/{slug}": {
            "get": {
                "tags": [
                    "Public Clinics"
                ],
                "summary": "Retrieve Clinic by slug",
                "description": "Permissions needed: NONE\nReturns Clinic details.\n",
                "security": [],
                "parameters": [
                    {
                        "name": "slug",
                        "in": "path",
                        "description": "The Clinic slug",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include. You can use multiple, comma separated. Options: country, country.language, schedules, schedules.intervals, visit_types.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "Clinic",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Animal Hospital of All Pets"
                                                },
                                                "address": {
                                                    "type": "string",
                                                    "example": "Yigal Alon St 126, Tel Aviv-Yafo, 6744332, Israel",
                                                    "nullable": true
                                                },
                                                "phone": {
                                                    "type": "string",
                                                    "example": "555-555 5555",
                                                    "nullable": true
                                                },
                                                "email": {
                                                    "type": "string",
                                                    "example": "clinic@example.com"
                                                },
                                                "city": {
                                                    "type": "string",
                                                    "nullable": true
                                                },
                                                "street": {
                                                    "type": "string",
                                                    "example": "Yigal Alon Street",
                                                    "nullable": true
                                                },
                                                "street_number": {
                                                    "type": "string",
                                                    "example": 126,
                                                    "nullable": true
                                                },
                                                "region": {
                                                    "type": "string",
                                                    "example": "Tel Aviv District",
                                                    "nullable": true
                                                },
                                                "timezone": {
                                                    "type": "string",
                                                    "example": "Asia/Jerusalem"
                                                },
                                                "zip": {
                                                    "type": "string",
                                                    "example": 6744332
                                                },
                                                "country": {
                                                    "type": "object",
                                                    "title": "Country",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer",
                                                            "example": 6
                                                        },
                                                        "name": {
                                                            "type": "string",
                                                            "example": "United States"
                                                        },
                                                        "iso_code": {
                                                            "type": "string",
                                                            "example": "us"
                                                        },
                                                        "code": {
                                                            "type": "string",
                                                            "example": "usa"
                                                        },
                                                        "language": {
                                                            "nullable": true,
                                                            "type": "object",
                                                            "title": "Language",
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer",
                                                                    "example": 6
                                                                },
                                                                "name": {
                                                                    "type": "string",
                                                                    "example": "English (US)"
                                                                },
                                                                "short_name": {
                                                                    "type": "string",
                                                                    "example": "en-us"
                                                                },
                                                                "code": {
                                                                    "type": "string",
                                                                    "example": "en-us"
                                                                }
                                                            }
                                                        }
                                                    }
                                                },
                                                "preferences": {
                                                    "type": "object",
                                                    "title": "ClinicPublicPreferences",
                                                    "description": "The subset of clinic settings exposed on public and pet-parent payloads. The numeric toggles are 0 or 1.",
                                                    "properties": {
                                                        "currency": {
                                                            "type": "string",
                                                            "example": "CAD",
                                                            "nullable": true
                                                        },
                                                        "locale": {
                                                            "type": "string",
                                                            "example": "en",
                                                            "nullable": true
                                                        },
                                                        "shop_enabled": {
                                                            "type": "number",
                                                            "example": 0,
                                                            "nullable": true
                                                        },
                                                        "chat_app_integration": {
                                                            "type": "number",
                                                            "example": 1,
                                                            "nullable": true
                                                        },
                                                        "require_client_address": {
                                                            "type": "number",
                                                            "example": 0,
                                                            "nullable": true
                                                        },
                                                        "clinic_share_case_file": {
                                                            "type": "number",
                                                            "example": 0,
                                                            "nullable": true
                                                        },
                                                        "any_staff_option_disabled": {
                                                            "type": "number",
                                                            "example": 0,
                                                            "nullable": true
                                                        },
                                                        "auto_approve_online_appointments": {
                                                            "type": "number",
                                                            "example": 0,
                                                            "nullable": true
                                                        },
                                                        "selling_price_includes_tax": {
                                                            "type": "boolean",
                                                            "example": false,
                                                            "nullable": true
                                                        }
                                                    }
                                                },
                                                "visit_types": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/paths/~1api~1v1~1records/post/responses/201/content/application~1json/schema/properties/data/properties/visit_types/items"
                                                    }
                                                },
                                                "visit_type_categories": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "title": "Visit Type",
                                                        "properties": {
                                                            "category": {
                                                                "type": "string"
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "visit_types": {
                                                                "type": "array",
                                                                "items": {
                                                                    "$ref": "#/paths/~1api~1v1~1records/post/responses/201/content/application~1json/schema/properties/data/properties/visit_types/items"
                                                                }
                                                            }
                                                        }
                                                    }
                                                },
                                                "public_notice": {
                                                    "type": "string",
                                                    "nullable": true
                                                },
                                                "logo": {
                                                    "type": "string",
                                                    "nullable": true
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/public/clinics/{slug}/plans": {
            "get": {
                "tags": [
                    "Public Clinics"
                ],
                "summary": "List clinic plans by clinic slug",
                "description": "Permissions needed: NONE\nReturns the list of subscription plans for the given clinic.\n",
                "security": [],
                "parameters": [
                    {
                        "name": "slug",
                        "in": "path",
                        "description": "The Clinic slug",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include. You can use multiple, comma separated. Options: benefits, benefits.benefitable.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1tags/get/parameters/5"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/11"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "title": "Plan",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "clinic_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Basic"
                                                    },
                                                    "description": {
                                                        "type": "string",
                                                        "example": "Basic subscription plan"
                                                    },
                                                    "price": {
                                                        "type": "number",
                                                        "example": 10
                                                    },
                                                    "price_without_tax": {
                                                        "type": "number",
                                                        "example": 10
                                                    },
                                                    "tax": {
                                                        "type": "number",
                                                        "deprecated": true,
                                                        "description": "Deprecated. Summed percentage of `tax_rates`. Use `tax_rates` instead.",
                                                        "example": 0
                                                    },
                                                    "tax_rates": {
                                                        "type": "array",
                                                        "description": "Tax rates applied to this item. Always present.",
                                                        "items": {
                                                            "$ref": "#/paths/~1api~1v1~1products~1%7Bid%7D/get/responses/200/content/application~1json/schema/properties/data/properties/tax_rates/items"
                                                        }
                                                    },
                                                    "upfront_fee": {
                                                        "type": "number",
                                                        "example": 0
                                                    },
                                                    "upfront_fee_without_tax": {
                                                        "type": "number",
                                                        "example": 0
                                                    },
                                                    "periodicity": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "periodicity_type": {
                                                        "type": "string",
                                                        "enum": [
                                                            "day",
                                                            "week",
                                                            "month",
                                                            "quarter",
                                                            "year"
                                                        ]
                                                    },
                                                    "plan_duration": {
                                                        "type": "string",
                                                        "enum": [
                                                            "indefinite",
                                                            "1-year"
                                                        ],
                                                        "default": "indefinite"
                                                    },
                                                    "benefits": {
                                                        "type": "object",
                                                        "title": "Benefits",
                                                        "properties": {
                                                            "services": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "object",
                                                                    "properties": {
                                                                        "id": {
                                                                            "type": "integer",
                                                                            "example": 1
                                                                        },
                                                                        "service_package_id": {
                                                                            "type": "integer",
                                                                            "example": 1
                                                                        },
                                                                        "limit": {
                                                                            "type": "integer",
                                                                            "example": 1
                                                                        },
                                                                        "discount": {
                                                                            "type": "number",
                                                                            "example": 0
                                                                        }
                                                                    }
                                                                }
                                                            },
                                                            "service_aaha_codes": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "object",
                                                                    "properties": {
                                                                        "id": {
                                                                            "type": "integer",
                                                                            "example": 1
                                                                        },
                                                                        "aaha_code": {
                                                                            "type": "string",
                                                                            "example": "AHA123"
                                                                        },
                                                                        "discount": {
                                                                            "type": "number",
                                                                            "example": 0
                                                                        },
                                                                        "limit": {
                                                                            "type": "integer",
                                                                            "example": 1
                                                                        }
                                                                    }
                                                                }
                                                            },
                                                            "products": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "object",
                                                                    "properties": {
                                                                        "id": {
                                                                            "type": "integer",
                                                                            "example": 1
                                                                        },
                                                                        "product_id": {
                                                                            "type": "integer",
                                                                            "example": 1
                                                                        },
                                                                        "limit": {
                                                                            "type": "integer",
                                                                            "example": 1
                                                                        },
                                                                        "limit_unit_type_id": {
                                                                            "type": "integer",
                                                                            "example": 0
                                                                        },
                                                                        "limit_unit_type": {
                                                                            "type": "string",
                                                                            "example": "subunit"
                                                                        },
                                                                        "discount": {
                                                                            "type": "number",
                                                                            "example": 0
                                                                        }
                                                                    }
                                                                }
                                                            },
                                                            "product_categories": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "object",
                                                                    "properties": {
                                                                        "id": {
                                                                            "type": "integer",
                                                                            "example": 1
                                                                        },
                                                                        "product_category_id": {
                                                                            "type": "integer",
                                                                            "example": 1
                                                                        },
                                                                        "discount": {
                                                                            "type": "number",
                                                                            "example": 0
                                                                        }
                                                                    }
                                                                }
                                                            },
                                                            "product_aaha_codes": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "object",
                                                                    "properties": {
                                                                        "id": {
                                                                            "type": "integer",
                                                                            "example": 1
                                                                        },
                                                                        "aaha_code": {
                                                                            "type": "string",
                                                                            "example": "AHA123"
                                                                        },
                                                                        "discount": {
                                                                            "type": "number",
                                                                            "example": 0
                                                                        },
                                                                        "limit": {
                                                                            "type": "integer",
                                                                            "example": 1
                                                                        },
                                                                        "limit_unit_type_id": {
                                                                            "type": "integer",
                                                                            "example": 0
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links"
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/clinics": {
            "get": {
                "tags": [
                    "Clinics"
                ],
                "summary": "Get Clinics list by ids",
                "description": "Returns a Clinics list by ids",
                "parameters": [
                    {
                        "name": "filter[clinic_id]",
                        "in": "query",
                        "description": "Clinic IDs (comma separated), if not provided, will return all current vet clinics",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[is_admin]",
                        "in": "query",
                        "description": "If true, will filter only clinics where user is admin",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "enum": [
                                1
                            ]
                        }
                    },
                    {
                        "name": "filter[group_id]",
                        "in": "query",
                        "description": "Group ID",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include. You can use multiple, comma separated. Options: vets,rooms,reminderPeriods",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1api~1v1~1clinic~1%7Bid%7D/get/responses/200/content/application~1json/schema/properties/data"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/clinics/schedules": {
            "get": {
                "tags": [
                    "Clinics"
                ],
                "summary": "Get clinics schedules.",
                "description": "Returns clinics schedules.",
                "parameters": [
                    {
                        "name": "filter[clinic_ids][]",
                        "in": "query",
                        "description": "Ids of the clinics",
                        "required": true,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    },
                    {
                        "name": "filter[vet_ids][]",
                        "in": "query",
                        "description": "Ids of the vets",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    },
                    {
                        "name": "filter[clinic_schedules]",
                        "in": "query",
                        "description": "if it is true, then clinic schedules will be returned",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "filter[start_date]",
                        "in": "query",
                        "description": "Date",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "date",
                            "example": "2024-02-01"
                        }
                    },
                    {
                        "name": "filter[end_date]",
                        "in": "query",
                        "description": "Date, can be skipped for one day schedule",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date",
                            "example": "2024-02-28"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "clinic_schedules": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "additionalProperties": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "title": "Clinic Schedule",
                                                                "properties": {
                                                                    "clinic_id": {
                                                                        "type": "integer",
                                                                        "example": 1
                                                                    },
                                                                    "weekday": {
                                                                        "type": "integer",
                                                                        "example": 1
                                                                    },
                                                                    "is_open": {
                                                                        "type": "boolean",
                                                                        "example": true
                                                                    },
                                                                    "date": {
                                                                        "type": "string",
                                                                        "format": "date",
                                                                        "example": "2022-02-22"
                                                                    },
                                                                    "intervals": {
                                                                        "type": "array",
                                                                        "items": {
                                                                            "properties": {
                                                                                "start_time": {
                                                                                    "type": "string",
                                                                                    "format": "date-time",
                                                                                    "example": "2022-02-22T10:00:00.000000Z"
                                                                                },
                                                                                "end_time": {
                                                                                    "type": "string",
                                                                                    "format": "date-time",
                                                                                    "example": "2022-02-22T10:30:00.000000Z"
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                },
                                                "vet_schedules": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "additionalProperties": {
                                                            "type": "object",
                                                            "additionalProperties": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "object",
                                                                    "title": "Vet Schedule",
                                                                    "properties": {
                                                                        "vet_id": {
                                                                            "type": "integer",
                                                                            "example": 1
                                                                        },
                                                                        "clinic_id": {
                                                                            "type": "integer",
                                                                            "example": 1
                                                                        },
                                                                        "weekday": {
                                                                            "type": "integer",
                                                                            "example": 1
                                                                        },
                                                                        "is_open": {
                                                                            "type": "boolean",
                                                                            "example": true
                                                                        },
                                                                        "date": {
                                                                            "type": "string",
                                                                            "format": "date",
                                                                            "example": "2022-02-22"
                                                                        },
                                                                        "intervals": {
                                                                            "type": "array",
                                                                            "items": {
                                                                                "properties": {
                                                                                    "start_time": {
                                                                                        "type": "string",
                                                                                        "format": "date-time",
                                                                                        "example": "2022-02-22T10:00:00.000000Z"
                                                                                    },
                                                                                    "end_time": {
                                                                                        "type": "string",
                                                                                        "format": "date-time",
                                                                                        "example": "2022-02-22T10:30:00.000000Z"
                                                                                    }
                                                                                }
                                                                            }
                                                                        },
                                                                        "breaks": {
                                                                            "type": "array",
                                                                            "items": {
                                                                                "properties": {
                                                                                    "start_time": {
                                                                                        "type": "string",
                                                                                        "format": "date-time",
                                                                                        "example": "2022-02-22T10:00:00.000000Z"
                                                                                    },
                                                                                    "end_time": {
                                                                                        "type": "string",
                                                                                        "format": "date-time",
                                                                                        "example": "2022-02-22T10:30:00.000000Z"
                                                                                    }
                                                                                }
                                                                            }
                                                                        },
                                                                        "scheduled_count": {
                                                                            "type": "integer",
                                                                            "example": 1
                                                                        },
                                                                        "free_percent": {
                                                                            "type": "integer",
                                                                            "example": 100
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/credit-notes": {
            "get": {
                "tags": [
                    "Credit Notes"
                ],
                "summary": "Get a list of Credit notes",
                "description": "Returns list of Credit notes",
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1api~1v1~1credit-notes/post/responses/201/content/application~1json/schema/properties/data"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links"
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/0"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/get/parameters/2"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/1"
                    },
                    {
                        "name": "filter[status]",
                        "in": "query",
                        "description": "Status (array: <i>opened, closed, partially_applied</i>)",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer",
                                "enum": [
                                    "opened",
                                    "closed",
                                    "partially_applied"
                                ]
                            }
                        }
                    },
                    {
                        "name": "filter[type]",
                        "in": "query",
                        "description": "Type (array: <i>product_return, ad_hoc</i>)",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "product_return",
                                    "ad_hoc"
                                ]
                            }
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional relations to include(comma separated attributes. Ex.: customer,customer.chatUser,sale,vet,charge,charge.sales,charge.sales.file)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "append",
                        "in": "query",
                        "description": "Additional attributes to include(comma separated attributes. Ex: <i>credit_applied,tax_amounts_by_rate<i/>)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[made_at]",
                        "in": "query",
                        "description": "Dates between when credit note was added in the platform",
                        "required": false,
                        "style": "form",
                        "explode": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2024-04-26T06:39:10.000000Z,2024-04-30T06:39:10.000000Z"
                            }
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "made_at",
                                "total",
                                "credit"
                            ]
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1tags/get/parameters/5"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/11"
                    }
                ]
            },
            "post": {
                "tags": [
                    "Credit Notes"
                ],
                "summary": "Create a new Credit Note",
                "description": "Create a Credit Note",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "title": "CreditNote",
                                "required": [
                                    "clinic_id",
                                    "customer_id",
                                    "amount",
                                    "date",
                                    "reason"
                                ],
                                "properties": {
                                    "clinic_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "sale_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "customer_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "amount": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 100
                                    },
                                    "reason": {
                                        "type": "string",
                                        "example": "Reason for CreditNote"
                                    },
                                    "date": {
                                        "type": "string",
                                        "format": "date-time",
                                        "description": "Creation date and time in UTC as Zulu ISO8601",
                                        "example": "2021-01-30T08:30:00Z"
                                    },
                                    "description": {
                                        "type": "string",
                                        "description": "Credit note description",
                                        "example": "Short description"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "CreditNote",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "clinic_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "vet_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "sale_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "customer_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "status": {
                                                    "type": "string",
                                                    "example": "opened"
                                                },
                                                "type": {
                                                    "type": "string",
                                                    "example": "product_return"
                                                },
                                                "series": {
                                                    "type": "string",
                                                    "example": "DGT"
                                                },
                                                "number": {
                                                    "type": "string",
                                                    "example": "1"
                                                },
                                                "tax_amount": {
                                                    "type": "string",
                                                    "example": "250.00"
                                                },
                                                "subtotal": {
                                                    "type": "string",
                                                    "example": "250.00"
                                                },
                                                "total": {
                                                    "type": "string",
                                                    "example": "250.00"
                                                },
                                                "description": {
                                                    "type": "string",
                                                    "example": "Short description"
                                                },
                                                "made_at": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "example": "2021-01-30T08:30:00Z"
                                                },
                                                "voided_at": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "example": "2021-01-30T08:30:00Z"
                                                },
                                                "created_at": {
                                                    "type": "string",
                                                    "example": "2022-07-18T08:58:36.000000Z"
                                                },
                                                "updated_at": {
                                                    "type": "string",
                                                    "example": "2022-07-18T08:58:36.000000Z"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "422": {
                        "$ref": "#/paths/~1api~1v1~1files/post/responses/422"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/credit-notes/{id}": {
            "get": {
                "tags": [
                    "Credit Notes"
                ],
                "summary": "Get Credit Note details by ID",
                "description": "Returns a Credit Note entity",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include. You can use multiple, comma separated. Options: clinic,vet,customer,sale,sale.record,sale.record.pet,charge,charge.sales",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "append",
                        "in": "query",
                        "description": "Additional attributes to include(comma separated attributes. Ex: <i>credit_applied,tax_amounts_by_rate,does_refund_require_terminal<i/>)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/paths/~1api~1v1~1credit-notes/post/responses/201/content/application~1json/schema/properties/data"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "404": {
                        "title": "Not Found",
                        "description": "The specified resource was not found.",
                        "content": {
                            "application/json": {}
                        }
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/visit-types/group-by-category": {
            "get": {
                "tags": [
                    "Visit Types"
                ],
                "summary": "List all Visit Types Grouped by Category",
                "description": "Permissions needed: ACCESS_ADMINISTRATION_SETTINGS\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1files/get/parameters/6"
                    },
                    {
                        "name": "filter[clinic_group_id]",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[is_enterprise_mode]",
                        "in": "query",
                        "required": false,
                        "description": "When `true` and `filter[clinic_id]` is set, returns clinic-level visit types together with group-level visit types of the clinic's group that have not yet been copied to the clinic (i.e., have no active `template_id` reference). Soft-deleted clinic copies do not block the corresponding group template from appearing.\n",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1vets/get/parameters/2"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1tags/get/parameters/4"
                    },
                    {
                        "name": "filter[available_for_variant_content]",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[with_trashed_that_have_service_packages]",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Include additional data: printableFiles, servicePackages, instances, vets"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "category": {
                                                        "type": "string"
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "visit_types": {
                                                        "type": "array",
                                                        "items": {
                                                            "$ref": "#/paths/~1api~1v1~1visit-types/get/responses/200/content/application~1json/schema/properties/data/items"
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/visit-types/categories": {
            "get": {
                "tags": [
                    "Visit Types"
                ],
                "summary": "List all Visit Type Categories",
                "description": "Permissions needed: ACCESS_ADMINISTRATION_SETTINGS\n",
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "category": {
                                                        "type": "string",
                                                        "enum": [
                                                            "euthanasia",
                                                            "spay_neuter",
                                                            "microchipping",
                                                            "consultation_exams",
                                                            "surgery",
                                                            "vaccines",
                                                            "medical_procedures",
                                                            "imagining_diagnostics",
                                                            "boarding",
                                                            "grooming",
                                                            "admin",
                                                            "other"
                                                        ]
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/visit-types": {
            "get": {
                "tags": [
                    "Visit Types"
                ],
                "summary": "List all Visit Types",
                "description": "Permissions needed: ACCESS_ADMINISTRATION_SETTINGS\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1files/get/parameters/6"
                    },
                    {
                        "name": "filter[clinic_group_id]",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[is_enterprise_mode]",
                        "in": "query",
                        "required": false,
                        "description": "When `true` and `filter[clinic_id]` is set, returns clinic-level visit types together with group-level visit types of the clinic's group that have not yet been copied to the clinic (i.e., have no active `template_id` reference). Soft-deleted clinic copies do not block the corresponding group template from appearing.\n",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1vets/get/parameters/2"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1tags/get/parameters/4"
                    },
                    {
                        "name": "filter[available_for_variant_content]",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[with_trashed_that_have_service_packages]",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Include additional data: printableFiles, servicePackages, instances, taskTemplates, vets"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "title": "Visit Type",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "clinic_id": {
                                                        "type": "integer",
                                                        "nullable": true
                                                    },
                                                    "clinic_group_id": {
                                                        "type": "integer",
                                                        "nullable": true
                                                    },
                                                    "template_id": {
                                                        "type": "integer",
                                                        "nullable": true
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "description": {
                                                        "type": "string"
                                                    },
                                                    "category": {
                                                        "type": "string",
                                                        "enum": [
                                                            "euthanasia",
                                                            "spay_neuter",
                                                            "microchipping",
                                                            "consultation_exams",
                                                            "surgery",
                                                            "vaccines",
                                                            "medical_procedures",
                                                            "imagining_diagnostics",
                                                            "boarding",
                                                            "grooming",
                                                            "admin",
                                                            "other"
                                                        ]
                                                    },
                                                    "duration": {
                                                        "type": "integer"
                                                    },
                                                    "is_visible": {
                                                        "type": "boolean"
                                                    },
                                                    "is_notifiable": {
                                                        "type": "boolean"
                                                    },
                                                    "color": {
                                                        "type": "string"
                                                    },
                                                    "order": {
                                                        "type": "integer",
                                                        "nullable": true
                                                    },
                                                    "deposit_for_online_booking": {
                                                        "type": "number",
                                                        "format": "float"
                                                    },
                                                    "is_drop_off_enabled": {
                                                        "type": "boolean"
                                                    },
                                                    "default_drop_off_time": {
                                                        "type": "string",
                                                        "nullable": true,
                                                        "example": "09:00"
                                                    },
                                                    "default_drop_off_vet_id": {
                                                        "type": "integer",
                                                        "nullable": true
                                                    },
                                                    "default_drop_off_vet": {
                                                        "type": "object",
                                                        "nullable": true,
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "first_name": {
                                                                "type": "string"
                                                            },
                                                            "last_name": {
                                                                "type": "string"
                                                            },
                                                            "avatar": {
                                                                "type": "string"
                                                            },
                                                            "job_title": {
                                                                "type": "string"
                                                            }
                                                        }
                                                    },
                                                    "created_at": {
                                                        "type": "string",
                                                        "nullable": true,
                                                        "example": "2024-11-27T10:06:56.000000Z"
                                                    },
                                                    "printable_files": {
                                                        "type": "array",
                                                        "nullable": true,
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer"
                                                                },
                                                                "title": {
                                                                    "type": "string"
                                                                }
                                                            }
                                                        }
                                                    },
                                                    "service_packages": {
                                                        "type": "array",
                                                        "nullable": true,
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer"
                                                                },
                                                                "name": {
                                                                    "type": "string"
                                                                },
                                                                "description": {
                                                                    "type": "string"
                                                                },
                                                                "unit_price": {
                                                                    "type": "string",
                                                                    "nullable": true
                                                                },
                                                                "price": {
                                                                    "type": "string",
                                                                    "nullable": true
                                                                },
                                                                "price_include_tax": {
                                                                    "type": "boolean",
                                                                    "nullable": true
                                                                },
                                                                "tax": {
                                                                    "type": "number",
                                                                    "format": "float",
                                                                    "nullable": true
                                                                }
                                                            }
                                                        }
                                                    },
                                                    "vets": {
                                                        "type": "array",
                                                        "nullable": true,
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer"
                                                                },
                                                                "first_name": {
                                                                    "type": "string"
                                                                },
                                                                "last_name": {
                                                                    "type": "string"
                                                                },
                                                                "avatar": {
                                                                    "type": "string"
                                                                },
                                                                "job_title": {
                                                                    "type": "string"
                                                                }
                                                            }
                                                        }
                                                    },
                                                    "instances": {
                                                        "type": "array",
                                                        "nullable": true,
                                                        "items": {
                                                            "$ref": "#/paths/~1api~1v1~1visit-types/get/responses/200/content/application~1json/schema/properties/data/items"
                                                        }
                                                    },
                                                    "task_templates": {
                                                        "type": "array",
                                                        "nullable": true,
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer"
                                                                },
                                                                "name": {
                                                                    "type": "string"
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        },
                                        "links": {
                                            "type": "array",
                                            "title": "SpatiePaginationLinks",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "url": {
                                                        "type": "string",
                                                        "nullable": true,
                                                        "example": "&laquo; Previous"
                                                    }
                                                }
                                            },
                                            "example": [
                                                {
                                                    "url": null,
                                                    "label": "&laquo; Previous",
                                                    "active": false
                                                },
                                                {
                                                    "url": "https://developer.digitail.io/api/v1/entities?page=1",
                                                    "label": "1",
                                                    "active": true
                                                },
                                                {
                                                    "url": "https://developer.digitail.io/api/v1/entities?page=2",
                                                    "label": "Next &raquo;",
                                                    "active": true
                                                }
                                            ]
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/pet-parents/{pet_parent}/save-internal-notes": {
            "patch": {
                "tags": [
                    "Pet Parents"
                ],
                "summary": "Update pet parent internal notes",
                "description": "Update pet parent internal notes",
                "operationId": "petParentSaveInternalNotes",
                "parameters": [
                    {
                        "name": "pet_parent",
                        "in": "path",
                        "description": "Pet parent id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "observations": {
                                        "description": "Observations / Internal Notes",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {}
                        }
                    },
                    "204": {
                        "description": "No Content",
                        "content": {}
                    },
                    "400": {
                        "description": "Bad request",
                        "content": {
                            "application/json": {}
                        }
                    }
                }
            }
        },
        "/api/v1/blood-types": {
            "get": {
                "tags": [
                    "BloodTypes"
                ],
                "summary": "List all BloodTypes",
                "description": "Permissions needed: NONE\nReturns list of blood types\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1tags/get/parameters/5"
                    },
                    {
                        "name": "filter[species_id]",
                        "in": "query",
                        "description": "Id of the related Species",
                        "required": false,
                        "style": "form",
                        "explode": false,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "title": "BloodType",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "type": {
                                                        "type": "string",
                                                        "example": "A"
                                                    },
                                                    "species_id": {
                                                        "type": "string",
                                                        "example": "1"
                                                    }
                                                }
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links"
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/roles": {
            "get": {
                "tags": [
                    "Roles"
                ],
                "summary": "List all Roles",
                "description": "Permissions needed: ACCESS_ADMINISTRATION_SETTINGS\nReturns the Role list. Filter by clinic_id or group_id.\nWhen filtering by clinic_id for an enterprise clinic, the response automatically includes both clinic-local roles AND enterprise group-level roles. Non-enterprise clinics see only their own clinic-local roles (unchanged behavior).\nWhen filtering by group_id, the response includes both group-level roles and the clinic-local roles of every clinic in the group (requires enterprise admin permissions).\n",
                "parameters": [
                    {
                        "name": "filter[clinic_id]",
                        "in": "query",
                        "description": "Clinic ID. Returns clinic-local roles. For enterprise clinics, also includes group-level roles automatically. Required if filter[group_id] is not provided.",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[group_id]",
                        "in": "query",
                        "description": "Enterprise group ID. Returns group-level roles plus clinic-local roles for every clinic in the group. Required if filter[clinic_id] is not provided. Requires enterprise admin permissions.",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Additional info to include. You can use multiple, comma separated. Options: vetPermissions,vetPermissions.permissionGroup,vetPermissions.permissionSubGroup.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1api~1v1~1roles~1%7Bid%7D/get/responses/200/content/application~1json/schema/properties/data"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links"
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        },
                                        "permissions_groups": {
                                            "type": "object",
                                            "title": "PermissionGroup",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "title": {
                                                    "type": "string",
                                                    "example": "Patients"
                                                },
                                                "weight": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "permissions": {
                                                    "type": "object",
                                                    "title": "Permission",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer",
                                                            "example": 1
                                                        },
                                                        "title": {
                                                            "type": "string",
                                                            "example": "view_patients"
                                                        },
                                                        "weight": {
                                                            "type": "integer",
                                                            "example": 1
                                                        },
                                                        "depends_on": {
                                                            "$ref": "#/paths/~1api~1v1~1roles/get/responses/200/content/application~1json/schema/properties/permissions_groups/properties/permissions"
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "post": {
                "tags": [
                    "Roles"
                ],
                "summary": "Create a Role",
                "description": "Permissions needed: ACCESS_ADMINISTRATION_SETTINGS\nStore Role for a clinic\n",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "title": "RoleBodyStore",
                                "description": "Role Store Request Body. Provide either clinic_id or group_id (mutually exclusive). Use group_id for enterprise group-level roles (requires enterprise admin). Use clinic_id for clinic-local roles.\n",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "example": "Doctor"
                                    },
                                    "clinic_id": {
                                        "type": "integer",
                                        "description": "The clinic to create the role for. Required if group_id is not provided. Mutually exclusive with group_id.",
                                        "example": 1
                                    },
                                    "group_id": {
                                        "type": "integer",
                                        "description": "The enterprise group to create the role for. Required if clinic_id is not provided. Mutually exclusive with clinic_id. Requires enterprise admin permissions.",
                                        "example": null
                                    },
                                    "permissions_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "integer",
                                    "description": "Role Id"
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/roles/{id}": {
            "get": {
                "tags": [
                    "Roles"
                ],
                "summary": "Retrieve a Role",
                "description": "Permissions needed: ACCESS_ADMINISTRATION_SETTINGS\nReturns a Role entity\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "title": "Role",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "clinic_id": {
                                                    "type": "integer",
                                                    "nullable": true,
                                                    "description": "The clinic this role belongs to. Null for enterprise (group-level) roles.",
                                                    "example": 1
                                                },
                                                "group_id": {
                                                    "type": "integer",
                                                    "nullable": true,
                                                    "description": "The enterprise group this role belongs to. Null for clinic-local roles.",
                                                    "example": null
                                                },
                                                "title": {
                                                    "type": "string",
                                                    "example": "Doctor"
                                                },
                                                "immutable": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "permissions_categories": {
                                                    "type": "object",
                                                    "description": "Keys are permissions groups ids.",
                                                    "additionalProperties": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer"
                                                                },
                                                                "title": {
                                                                    "type": "string"
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            },
            "patch": {
                "tags": [
                    "Roles"
                ],
                "summary": "Update a Role",
                "description": "Permissions needed: ACCESS_ADMINISTRATION_SETTINGS\nUpdate a specific Role\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "title": "RoleBodyUpdate",
                                "description": "Role Update Request Body",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "example": "Doctor"
                                    },
                                    "permissions_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/responses/204"
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Roles"
                ],
                "summary": "Delete a Role",
                "description": "Permissions needed: ACCESS_ADMINISTRATION_SETTINGS\nDelete a Role by ID\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "responses": {
                    "204": {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/responses/204"
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    }
                }
            }
        },
        "/api/v1/roles/{id}/vets": {
            "get": {
                "tags": [
                    "Roles"
                ],
                "summary": "List all Vets of Role",
                "description": "Permissions needed: ACCESS_ADMINISTRATION_SETTINGS\nReturn Vets associated with Role\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/parameters/0"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1api~1v1~1vets~1%7Bid%7D/get/responses/200/content/application~1json/schema/properties/data"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links"
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/permissions": {
            "get": {
                "tags": [
                    "Roles"
                ],
                "summary": "List all Permissions",
                "description": "Permissions needed: NONE\nReturns the Permission list\n",
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1api~1v1~1roles/get/responses/200/content/application~1json/schema/properties/permissions_groups"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/reminder-protocol-usages": {
            "get": {
                "tags": [
                    "Reminder Protocol Usages"
                ],
                "summary": "Get a list of reminder protocol usage for a pet",
                "description": "Returns list of all of the reminder protocol usage for a pet. This information can be found in the UI on the pet's profile page under the \"Preventive\" tab.\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1pets/get/parameters/0"
                    },
                    {
                        "$ref": "#/paths/~1api~1v1~1files/get/parameters/0"
                    },
                    {
                        "name": "filter[reminder_protocol_template_id]",
                        "in": "query",
                        "description": "Filter by reminder protocol template ID including the ones with the same treatment_type. The `treatment_type` is only applicable for clinic groups.\n",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[reminder_protocol_template_ids]",
                        "in": "query",
                        "description": "Filters by an array of Protocol Templates IDs",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[latest]",
                        "in": "query",
                        "description": "Filter by latest usage for each reminder protocol template",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "filter[due_date_type]",
                        "in": "query",
                        "description": "Filter by the state of an usage",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "due",
                                "overdue",
                                "upcoming"
                            ]
                        }
                    },
                    {
                        "name": "filter[active]",
                        "in": "query",
                        "description": "Filter by active status",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "filter[exclude_historical]",
                        "in": "query",
                        "description": "Exclude usages generated by custom products added from the pet's health card",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "filter[date_before]",
                        "in": "query",
                        "description": "Filter the usages that have administration_date smaller or equal than the given date (Y-m-d)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[date_after]",
                        "in": "query",
                        "description": "Filter the usages that have administration_date bigger or equal than the given date (Y-m-d)"
                    },
                    {
                        "name": "filter[last_fetched]",
                        "in": "query",
                        "description": "Filter the usages that have been updated after the given date (Y-m-d)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "title": "ReminderProtocolUsage",
                                                "description": "Reminder protocol usage is a record of a treatment that was given to a pet triggered by reminder protocol template.",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "clinic_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "reminder_protocol_template_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "record_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "pet_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "vet_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "treatment_type_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "due_date": {
                                                        "description": "This date is in the clinic's timezone, this will be deprecated in the future so please use the due_date_utc field",
                                                        "type": "string",
                                                        "format": "date",
                                                        "example": "2022-09-28T00:00:00.000Z"
                                                    },
                                                    "administration_date": {
                                                        "description": "This date is in the clinic's timezone, this will be deprecated in the future so please use the administration_date_utc field",
                                                        "type": "string",
                                                        "format": "date",
                                                        "example": "2022-09-28T00:00:00.000Z"
                                                    },
                                                    "clinic": {
                                                        "$ref": "#/paths/~1api~1v1~1clinic~1%7Bid%7D/get/responses/200/content/application~1json/schema/properties/data"
                                                    },
                                                    "due_date_utc": {
                                                        "type": "string",
                                                        "format": "date",
                                                        "example": "2022-09-28T00:00:00.000Z"
                                                    },
                                                    "administration_date_utc": {
                                                        "type": "string",
                                                        "format": "date",
                                                        "example": "2022-09-28T00:00:00.000Z"
                                                    },
                                                    "overwritten_by": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "is_active": {
                                                        "type": "boolean",
                                                        "example": true
                                                    },
                                                    "pet": {
                                                        "type": "object",
                                                        "title": "Pet",
                                                        "description": "General information about the pet.",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "nickname": {
                                                                "type": "string"
                                                            },
                                                            "species": {
                                                                "type": "object",
                                                                "properties": {
                                                                    "id": {
                                                                        "type": "integer"
                                                                    },
                                                                    "label": {
                                                                        "type": "string"
                                                                    }
                                                                }
                                                            },
                                                            "breed": {
                                                                "type": "object",
                                                                "properties": {
                                                                    "id": {
                                                                        "type": "integer"
                                                                    },
                                                                    "label": {
                                                                        "type": "string"
                                                                    },
                                                                    "species_id": {
                                                                        "type": "integer"
                                                                    }
                                                                }
                                                            },
                                                            "birthday": {
                                                                "type": "string"
                                                            },
                                                            "gender": {
                                                                "type": "string",
                                                                "enum": [
                                                                    "male",
                                                                    "female",
                                                                    "unknown"
                                                                ]
                                                            },
                                                            "hormonal_status": {
                                                                "type": "integer",
                                                                "enum": [
                                                                    0,
                                                                    1,
                                                                    2
                                                                ]
                                                            },
                                                            "profile_picture": {
                                                                "type": "string"
                                                            }
                                                        }
                                                    },
                                                    "protocol_template": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "example": "Reminder Protocol Template"
                                                            },
                                                            "clinic_id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "is_enabled": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "product_categories": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "object",
                                                                    "properties": {
                                                                        "id": {
                                                                            "type": "integer",
                                                                            "example": 74
                                                                        },
                                                                        "product_category_id": {
                                                                            "type": "integer",
                                                                            "example": 153
                                                                        },
                                                                        "name": {
                                                                            "type": "string",
                                                                            "example": "Stupefiante"
                                                                        },
                                                                        "products": {
                                                                            "type": "array",
                                                                            "items": {
                                                                                "type": "object",
                                                                                "properties": {
                                                                                    "id": {
                                                                                        "type": "integer",
                                                                                        "example": 36
                                                                                    },
                                                                                    "name": {
                                                                                        "type": "string",
                                                                                        "example": "Vaccine"
                                                                                    }
                                                                                }
                                                                            }
                                                                        },
                                                                        "created_at": {
                                                                            "type": "string",
                                                                            "format": "date-time",
                                                                            "example": "2023-07-11T15:24:15.000Z"
                                                                        }
                                                                    }
                                                                },
                                                                "example": [
                                                                    {
                                                                        "id": 74,
                                                                        "product_category_id": 153,
                                                                        "name": "Stupefiante",
                                                                        "products": [
                                                                            {
                                                                                "id": 36,
                                                                                "name": "Product"
                                                                            }
                                                                        ],
                                                                        "created_at": "2023-07-11T15:24:15.000000Z"
                                                                    }
                                                                ]
                                                            },
                                                            "visit_types": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "object",
                                                                    "properties": {
                                                                        "id": {
                                                                            "type": "integer"
                                                                        },
                                                                        "visit_type_id": {
                                                                            "type": "integer"
                                                                        },
                                                                        "name": {
                                                                            "type": "string"
                                                                        },
                                                                        "services": {
                                                                            "type": "array",
                                                                            "items": {
                                                                                "type": "object",
                                                                                "properties": {
                                                                                    "id": {
                                                                                        "type": "integer"
                                                                                    },
                                                                                    "name": {
                                                                                        "type": "string"
                                                                                    }
                                                                                }
                                                                            }
                                                                        },
                                                                        "created_at": {
                                                                            "type": "string",
                                                                            "format": "date-time",
                                                                            "example": "2023-07-11T07:41:16.000Z"
                                                                        }
                                                                    }
                                                                }
                                                            },
                                                            "template_overwrites": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "object",
                                                                    "properties": {
                                                                        "id": {
                                                                            "type": "integer"
                                                                        },
                                                                        "name": {
                                                                            "type": "string"
                                                                        }
                                                                    }
                                                                },
                                                                "example": [
                                                                    {
                                                                        "id": 2,
                                                                        "name": "Reminder Protocol Template Overwritten by this Protocol"
                                                                    }
                                                                ]
                                                            },
                                                            "template_overwritten_by": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "object",
                                                                    "properties": {
                                                                        "id": {
                                                                            "type": "integer"
                                                                        },
                                                                        "name": {
                                                                            "type": "string"
                                                                        }
                                                                    }
                                                                },
                                                                "example": [
                                                                    {
                                                                        "id": 3,
                                                                        "name": "Reminder Protocol Template that Overwrites this Protocol"
                                                                    }
                                                                ]
                                                            },
                                                            "intervals": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "object",
                                                                    "properties": {
                                                                        "id": {
                                                                            "type": "integer"
                                                                        },
                                                                        "duration": {
                                                                            "type": "integer"
                                                                        },
                                                                        "unit": {
                                                                            "type": "string"
                                                                        },
                                                                        "time_to_in_days": {
                                                                            "type": "integer"
                                                                        }
                                                                    }
                                                                },
                                                                "example": [
                                                                    {
                                                                        "id": 1,
                                                                        "duration": 1,
                                                                        "unit": "day",
                                                                        "time_to_in_days": 1
                                                                    }
                                                                ]
                                                            },
                                                            "created_at": {
                                                                "type": "string",
                                                                "format": "date-time",
                                                                "example": "2023-06-27T15:12:43.000000Z"
                                                            },
                                                            "updated_at": {
                                                                "type": "string",
                                                                "format": "date-time",
                                                                "example": "2023-06-27T15:12:43.000000Z"
                                                            }
                                                        }
                                                    },
                                                    "protocol_usage_items": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "object",
                                                            "title": "ReminderProtocolUsageItem",
                                                            "description": "Reminder protocol usage item is a type of item that triggered the creation of a reminder protocol usage on a record.",
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer",
                                                                    "example": 1
                                                                },
                                                                "reminder_protocol_id": {
                                                                    "type": "integer",
                                                                    "example": 1
                                                                },
                                                                "reminder_protocol_usage_itemable_id": {
                                                                    "type": "integer",
                                                                    "example": 1
                                                                },
                                                                "reminder_protocol_usage_itemable_type": {
                                                                    "type": "string",
                                                                    "example": "App\\\\Models\\\\Treatment"
                                                                },
                                                                "reminder_protocol_usage_itemable": {
                                                                    "type": "object",
                                                                    "properties": {
                                                                        "name": {
                                                                            "type": "string",
                                                                            "example": "Product #9911"
                                                                        },
                                                                        "batch_number": {
                                                                            "type": "string",
                                                                            "example": "Test batch - 1123"
                                                                        },
                                                                        "manufacturer": {
                                                                            "type": "string",
                                                                            "example": "Test manufacturer"
                                                                        },
                                                                        "rabic_tag_number": {
                                                                            "type": "string",
                                                                            "example": "Rabic - #12121"
                                                                        },
                                                                        "expiration_date": {
                                                                            "type": "string",
                                                                            "format": "date",
                                                                            "example": "2023-11-22T00:00:00.000Z"
                                                                        },
                                                                        "printed_files": {
                                                                            "type": "array",
                                                                            "items": {
                                                                                "type": "object",
                                                                                "properties": {
                                                                                    "id": {
                                                                                        "type": "integer",
                                                                                        "example": 1
                                                                                    },
                                                                                    "name": {
                                                                                        "type": "string",
                                                                                        "example": "Test certificate"
                                                                                    },
                                                                                    "title": {
                                                                                        "type": "string",
                                                                                        "example": "Test title"
                                                                                    },
                                                                                    "real_name": {
                                                                                        "type": "string",
                                                                                        "example": "Test real name.pdf"
                                                                                    },
                                                                                    "printable_file_id": {
                                                                                        "type": "integer",
                                                                                        "example": 1
                                                                                    },
                                                                                    "vet_id": {
                                                                                        "type": "integer",
                                                                                        "example": 6
                                                                                    },
                                                                                    "patient_id": {
                                                                                        "type": "integer",
                                                                                        "example": 2
                                                                                    },
                                                                                    "created_at": {
                                                                                        "type": "string",
                                                                                        "format": "date-time",
                                                                                        "example": "2023-09-14T11:26:45.000000Z"
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links"
                                        },
                                        "meta": {
                                            "$ref": "#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/pets/{pet}/reminder-protocols/export-pdf": {
            "get": {
                "tags": [
                    "Reminder Protocol Usages"
                ],
                "summary": "Export reminder protocol usage for a pet",
                "description": "Export reminder protocol usage for a pet\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1files/get/parameters/0"
                    },
                    {
                        "name": "filter[reminder_protocol_template_ids]",
                        "in": "query",
                        "description": "Filters by an array of Protocol Templates IDs",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[date_after]",
                        "in": "query",
                        "description": "Filter the usages that have administration_date bigger or equal than the given date (Y-m-d)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[date_before]",
                        "in": "query",
                        "description": "Filter the usages that have administration_date smaller or equal than the given date (Y-m-d)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[exclude_historical]",
                        "in": "query",
                        "description": "Exclude usages generated by custom products added from the pet's health card",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "filter[clinic_id]",
                        "in": "query",
                        "description": "Filter by clinic ID",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[vet_id]",
                        "in": "query",
                        "description": "Filter by vet ID",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/pdf": {}
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/pets/{pet}/reminder-protocols/preview": {
            "get": {
                "tags": [
                    "Reminder Protocol Usages"
                ],
                "summary": "Retrieve Reminder Protocol Usages HTML Preview",
                "description": "Permissions needed: ACCESS_PATIENTS\nPreview Reminder Protocol Usages pdf\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1files/get/parameters/0"
                    },
                    {
                        "name": "filter[reminder_protocol_template_ids]",
                        "in": "query",
                        "description": "Filters by an array of Protocol Templates IDs",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[date_after]",
                        "in": "query",
                        "description": "Filter the usages that have administration_date bigger or equal than the given date (Y-m-d)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[date_before]",
                        "in": "query",
                        "description": "Filter the usages that have administration_date smaller or equal than the given date (Y-m-d)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[exclude_historical]",
                        "in": "query",
                        "description": "Exclude usages generated by custom products added from the pet's health card",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "filter[clinic_id]",
                        "in": "query",
                        "description": "Filter by clinic ID",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[vet_id]",
                        "in": "query",
                        "description": "Filter by vet ID",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/pdf": {}
                        }
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        },
        "/api/v1/pets/{pet}/reminder-protocols/sent-email-pdf": {
            "get": {
                "tags": [
                    "Reminder Protocol Usages"
                ],
                "summary": "Sent Reminder Protocol Usages to email",
                "description": "Permissions needed: ACCESS_PATIENTS\nSent Reminder Protocol Usages pdf in email\n",
                "parameters": [
                    {
                        "$ref": "#/paths/~1api~1v1~1files/get/parameters/0"
                    }
                ],
                "responses": {
                    "204": {
                        "$ref": "#/paths/~1api~1v1~1sales/delete/responses/204"
                    },
                    "400": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/400"
                    },
                    "401": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/401"
                    },
                    "403": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/403"
                    },
                    "429": {
                        "$ref": "#/paths/~1api~1v1~1pets/get/responses/429"
                    }
                }
            }
        }
    },
    "components": {
        "securitySchemes": {
            "passport": {
                "type": "oauth2",
                "description": "Laravel passport oauth2 security.",
                "flows": {
                    "authorizationCode": {
                        "authorizationUrl": "https://developer.digitail.io/oauth/authorize",
                        "tokenUrl": "https://developer.digitail.io/oauth/token",
                        "refreshUrl": "https://developer.digitail.io/token/refresh"
                    }
                }
            },
            "Bearer": {
                "type": "http",
                "scheme": "bearer",
                "bearerFormat": "JWT"
            }
        }
    },
    "tags": [
        {
            "name": "Appointments",
            "description": "Get appointments, appointment details, and update appointment status"
        },
        {
            "name": "Authentication",
            "description": "Current User information"
        },
        {
            "name": "BloodTypes",
            "description": "Get list of blood types per species"
        },
        {
            "name": "Breeds",
            "description": "Get list of breeds"
        },
        {
            "name": "Charges"
        },
        {
            "name": "Client Communication",
            "description": "Api Endpoints related to communications between a Clinic and a PetParent"
        },
        {
            "name": "Clients"
        },
        {
            "name": "Clinics",
            "description": "Get clinic details"
        },
        {
            "name": "Credit Notes",
            "description": "Api Endpoints For Credit Notes"
        },
        {
            "name": "Files",
            "description": "Interact with uploaded files linked to a pet"
        },
        {
            "name": "Invoices",
            "description": "Get a list of invoices, invoice details, invoice pdf, and email invoice pdf to a recipient"
        },
        {
            "name": "Labs",
            "description": "Endpoints for Labs"
        },
        {
            "name": "Medication",
            "description": "Api Endpoints For Pet's Medications"
        },
        {
            "name": "Patient Estimates"
        },
        {
            "name": "Periodical Treatments",
            "description": "Api Endpoints For Pet's Preventive Care"
        },
        {
            "name": "Pet Parents",
            "description": "Api Endpoints For Pet Parents"
        },
        {
            "name": "Pets",
            "description": "Get list of pets (patients), pet details, manage pet weight entries"
        },
        {
            "name": "Pets Archive"
        },
        {
            "name": "Prescriptions"
        },
        {
            "name": "Product"
        },
        {
            "name": "Public Clinics"
        },
        {
            "name": "Public Vets"
        },
        {
            "name": "Records",
            "description": "Api Endpoints For Records"
        },
        {
            "name": "Reminder Protocol Usages"
        },
        {
            "name": "Reports"
        },
        {
            "name": "Roles"
        },
        {
            "name": "Sales",
            "description": "Get a list of sales, change the state or customer, create a charge, consolidate invoice, dispute items and pay with credit"
        },
        {
            "name": "Service Packages",
            "description": "Api Endpoints For Service Packages"
        },
        {
            "name": "Species",
            "description": "Get list of species"
        },
        {
            "name": "Tags",
            "description": "Api Endpoints For Tags and Taggables management(for Pet;Owner)"
        },
        {
            "name": "Vets",
            "description": "Api Endpoints For Vets"
        },
        {
            "name": "Visit Types"
        }
    ],
    "security": [
        {
            "passport": []
        },
        {
            "Bearer": []
        }
    ]
}