{
    "openapi": "3.0.0",
    "info": {
        "title": "Larks holidays",
        "version": "1.0.0"
    },
    "servers": [
        {
            "url": "https://apinew.larkholidays.com/public/",
            "description": "Demo API Server"
        }
    ],
    "paths": {
        "/api/auth/register": {
            "post": {
                "tags": [
                    "Auth - API"
                ],
                "summary": "Store New User",
                "description": "It will return an access token",
                "operationId": "storeUser",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "John Doe"
                                    },
                                    "email": {
                                        "type": "string",
                                        "example": "john.doe@example.com"
                                    },
                                    "password": {
                                        "type": "string",
                                        "example": "password123"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation"
                    },
                    "400": {
                        "description": "Bad request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "406": {
                        "description": "Not acceptable"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                }
            }
        },
        "/api/auth/login": {
            "post": {
                "tags": [
                    "Auth - API"
                ],
                "summary": "To login the user",
                "description": "It will return an access token",
                "operationId": "login user",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "example": "john.doe@example.com"
                                    },
                                    "password": {
                                        "type": "string",
                                        "example": "password123"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation"
                    },
                    "400": {
                        "description": "Bad request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "406": {
                        "description": "Not acceptable"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                }
            }
        },
        "/api/logout": {
            "post": {
                "tags": [
                    "Auth - API"
                ],
                "summary": "To logout the user",
                "description": "It will return an access token",
                "operationId": "logout user",
                "responses": {
                    "200": {
                        "description": "Successful operation"
                    },
                    "400": {
                        "description": "Bad request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "406": {
                        "description": "Not acceptable"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/testing": {
            "get": {
                "tags": [
                    "Auth - API"
                ],
                "summary": "To get the user",
                "description": "It will return an access token",
                "operationId": "get user",
                "responses": {
                    "200": {
                        "description": "Successful operation"
                    },
                    "400": {
                        "description": "Bad request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "406": {
                        "description": "Not acceptable"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/cities": {
            "get": {
                "tags": [
                    "Dashboard"
                ],
                "summary": "To get cities",
                "description": "It will return an cities based on country",
                "operationId": "7946d8839a7c64bf8cfb2ebcceb39bfe",
                "parameters": [
                    {
                        "name": "country_id",
                        "in": "query",
                        "description": "Country id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "is_favourite",
                        "in": "query",
                        "description": "favourite",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation"
                    },
                    "400": {
                        "description": "Bad request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "406": {
                        "description": "Not acceptable"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                }
            }
        },
        "/api/countries/{country}/{city}": {
            "get": {
                "tags": [
                    "Dashboard"
                ],
                "summary": "To get places",
                "description": "It will return an places based on country and city",
                "operationId": "440a5744d36a28544d2929c3c4d4caf6",
                "parameters": [
                    {
                        "name": "country",
                        "in": "path",
                        "description": "country id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "city",
                        "in": "path",
                        "description": "city id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "categories",
                        "in": "query",
                        "description": "1 - popular places, 2 - recommended places",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation"
                    },
                    "400": {
                        "description": "Bad request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "406": {
                        "description": "Not acceptable"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                }
            }
        },
        "/api/vechile-search": {
            "get": {
                "tags": [
                    "Search page"
                ],
                "summary": "To get vechile details",
                "description": "It will return an vechile based on from and to date",
                "operationId": "0812d0813217f4efca289a7ef4a32ab7",
                "parameters": [
                    {
                        "name": "from",
                        "in": "query",
                        "description": "From city",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "to",
                        "in": "query",
                        "description": "To city",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date",
                        "in": "query",
                        "description": "YYYY-MM-DD",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation"
                    },
                    "400": {
                        "description": "Bad request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "406": {
                        "description": "Not acceptable"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                }
            }
        },
        "/api/booking": {
            "post": {
                "tags": [
                    "Booking"
                ],
                "summary": "To store or update the booking data",
                "description": "It will return a booking details id with encrpty",
                "operationId": "a3903fd39d2b01f1bbcad2a391aca827",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "id": {
                                        "type": "integer",
                                        "example": ""
                                    },
                                    "routes_with_price_id": {
                                        "type": "integer",
                                        "example": ""
                                    },
                                    "from": {
                                        "type": "integer",
                                        "example": ""
                                    },
                                    "to": {
                                        "type": "integer",
                                        "example": ""
                                    },
                                    "from_pickup": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "to_drop": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "from_lat": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "to_lat": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "date": {
                                        "type": "string",
                                        "example": "YYYY-MM-DD"
                                    },
                                    "adult": {
                                        "type": "integer",
                                        "example": ""
                                    },
                                    "child": {
                                        "type": "integer",
                                        "example": ""
                                    },
                                    "infint": {
                                        "type": "integer",
                                        "example": ""
                                    },
                                    "is_comfirm": {
                                        "type": "integer",
                                        "example": ""
                                    },
                                    "supplier_id": {
                                        "type": "integer",
                                        "example": ""
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation"
                    },
                    "400": {
                        "description": "Bad request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "406": {
                        "description": "Not acceptable"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                }
            }
        },
        "/api/get-booking-detail": {
            "get": {
                "tags": [
                    "Booking"
                ],
                "summary": "To get booking details",
                "description": "It will return an booking detail based on user given encrpty id",
                "operationId": "93d15c4a1c99d05b813be8fdf76106be",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "Enter your encrpty id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation"
                    },
                    "400": {
                        "description": "Bad request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "406": {
                        "description": "Not acceptable"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                }
            }
        },
        "/api/to-cities": {
            "get": {
                "tags": [
                    "Search page"
                ],
                "summary": "to get the cities",
                "description": "It will return a to cities list",
                "operationId": "a46d828ca8f429be04493a8e3dcc7790",
                "parameters": [
                    {
                        "name": "form_city",
                        "in": "query",
                        "description": "Enter your encrpty city",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation"
                    },
                    "400": {
                        "description": "Bad request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "406": {
                        "description": "Not acceptable"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                }
            }
        },
        "/api/get-auth-user": {
            "get": {
                "tags": [
                    "Users"
                ],
                "summary": "To get the user",
                "description": "It will return a user details",
                "operationId": "get users",
                "responses": {
                    "200": {
                        "description": "Successful operation"
                    },
                    "400": {
                        "description": "Bad request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "406": {
                        "description": "Not acceptable"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/update-user": {
            "post": {
                "tags": [
                    "Users"
                ],
                "summary": "To update user detail",
                "description": "It will success message",
                "operationId": "update user",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "900000"
                                    },
                                    "gender": {
                                        "type": "string",
                                        "example": "male or female or other"
                                    },
                                    "city": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "state": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "country": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "address": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "pincode": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "dob": {
                                        "type": "string",
                                        "example": "YYYY-MM-DD"
                                    },
                                    "country_code": {
                                        "type": "string",
                                        "example": ""
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation"
                    },
                    "400": {
                        "description": "Bad request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "406": {
                        "description": "Not acceptable"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/verify-coupon": {
            "post": {
                "tags": [
                    "Coupon"
                ],
                "summary": "To verify coupon",
                "description": "It will coupon data",
                "operationId": "verify-coupon",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "coupon_code": {
                                        "type": "string",
                                        "example": ""
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation"
                    },
                    "400": {
                        "description": "Bad request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "406": {
                        "description": "Not acceptable"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/otp-generate": {
            "post": {
                "tags": [
                    "Mobile with customer"
                ],
                "summary": "Generate OTP New User OR Old User",
                "description": "It will return an OTP and customer type",
                "operationId": "otpGeneration",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "mobile": {
                                        "type": "string",
                                        "example": "900000"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation"
                    },
                    "400": {
                        "description": "Bad request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "406": {
                        "description": "Not acceptable"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                }
            }
        },
        "/api/otp-verification": {
            "post": {
                "tags": [
                    "Mobile with customer"
                ],
                "summary": "To check Opt if it's new customer then store the name and email",
                "description": "It will return token",
                "operationId": "otpVerify",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "cust_id": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "otp": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "mobile": {
                                        "type": "string",
                                        "example": "900000"
                                    },
                                    "name": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "email": {
                                        "type": "string",
                                        "example": ""
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation"
                    },
                    "400": {
                        "description": "Bad request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "406": {
                        "description": "Not acceptable"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                }
            }
        }
    },
    "components": {
        "securitySchemes": {
            "bearerAuth": {
                "type": "http",
                "bearerFormat": "JWT",
                "scheme": "bearer"
            }
        }
    }
}