{
    "openapi": "3.0.0",
    "info": {
        "title": "MyBizz Hive API",
        "version": "1.0"
    },
    "servers": [
        {
            "url": "http://localhost:8000/api",
            "description": "Local server"
        },
        {
            "url": "http://204.236.184.192/api",
            "description": "Dev server"
        },
        {
            "url": "http://204.236.184.192/api"
        }
    ],
    "paths": {
        "/v1/login": {
            "post": {
                "tags": [
                    "auth"
                ],
                "summary": "Sign in",
                "description": "Login by email, password",
                "operationId": "authLogin",
                "requestBody": {
                    "description": "Pass user credentials",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "email",
                                    "password"
                                ],
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "user1@mail.com"
                                    },
                                    "password": {
                                        "type": "string",
                                        "format": "password",
                                        "example": "PassWord12345"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "422": {
                        "description": "Wrong credentials response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Sorry, wrong email address or password. Please try again"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/logout": {
            "get": {
                "tags": [
                    "auth"
                ],
                "summary": "Logout Route",
                "description": "Logout Route",
                "operationId": "/v1/logout",
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "Pass bearer access token in Authorization",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "User Logout Successfuly.",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    }
                }
            }
        },
        "/v1/refresh": {
            "post": {
                "tags": [
                    "auth"
                ],
                "summary": "Refresh Access Token",
                "description": "Refresh Access Token",
                "operationId": "/v1/refresh",
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "Pass bearer access token in Authorization",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Access token generated Successfuly.",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    }
                }
            }
        },
        "/v1/password/email": {
            "post": {
                "tags": [
                    "auth"
                ],
                "summary": "Request password reset link",
                "description": "Request password reset link",
                "operationId": "/v1/password/email",
                "parameters": [
                    {
                        "name": "email",
                        "in": "query",
                        "description": "user email",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Reset password email sent successfully.",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    }
                }
            }
        },
        "/v1/reset-password": {
            "post": {
                "tags": [
                    "auth"
                ],
                "summary": "Request password using reset link",
                "description": "Request password using reset link",
                "operationId": "/v1/reset-password/",
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "description": "reset password token",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "password",
                        "in": "query",
                        "description": "new password",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Reset password email sent successfully.",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    }
                }
            }
        },
        "/v1/register": {
            "post": {
                "tags": [
                    "auth"
                ],
                "summary": "Register new User",
                "description": "Register new User",
                "operationId": "/v1/register",
                "parameters": [
                    {
                        "name": "email",
                        "in": "query",
                        "description": "email id of new user",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "password",
                        "in": "query",
                        "description": "password for new account",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "password_confirmation",
                        "in": "query",
                        "description": "confirm password for new account",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "User Registered successfully.",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    }
                }
            }
        },
        "/v1/contact/create": {
            "post": {
                "tags": [
                    "Contact"
                ],
                "summary": "Create new contact",
                "description": "Create new contact",
                "operationId": "/v1/contact/create",
                "parameters": [
                    {
                        "name": "first_name",
                        "in": "query",
                        "description": "First name of contact",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "last_name",
                        "in": "query",
                        "description": "Last name of contact",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "email",
                        "in": "query",
                        "description": "email id of contact",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "phone_type",
                        "in": "query",
                        "description": "Phone type of contact",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "phone",
                        "in": "query",
                        "description": "phone number of contact",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "organization",
                        "in": "query",
                        "description": "Organization name of contact",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "title",
                        "in": "query",
                        "description": "Title number of contact",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "referred_by",
                        "in": "query",
                        "description": "Contact Id of person who referred this contact",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "first_name_information",
                        "in": "query",
                        "description": "Contact details",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "User Registered successfully.",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/v1/contact/update": {
            "post": {
                "tags": [
                    "Contact"
                ],
                "summary": "Update an existing contact",
                "description": "Update an existing contact",
                "operationId": "/v1/contact/update",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "Contact id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "first_name",
                        "in": "query",
                        "description": "First name of contact",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "last_name",
                        "in": "query",
                        "description": "Last name of contact",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "email",
                        "in": "query",
                        "description": "email id of contact",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "phone_type",
                        "in": "query",
                        "description": "Phone type of contact",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "phone",
                        "in": "query",
                        "description": "phone number of contact",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "organization",
                        "in": "query",
                        "description": "Organization name of contact",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "title",
                        "in": "query",
                        "description": "Title number of contact",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "referred_by",
                        "in": "query",
                        "description": "Contact Id of person who referred this contact",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "first_name_information",
                        "in": "query",
                        "description": "Contact details",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "User Registered successfully.",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/v1/contact/delete": {
            "post": {
                "tags": [
                    "Contact"
                ],
                "summary": "delete mulitple contacts",
                "description": "delete multiple contacts",
                "operationId": "/v1/contact/delete",
                "parameters": [
                    {
                        "name": "contact_id",
                        "in": "query",
                        "description": "Comma separated contact ids",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Contacts deleted successfully.",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/v1/contact/view": {
            "get": {
                "tags": [
                    "Contact"
                ],
                "summary": "View contact details",
                "description": "View contact details",
                "operationId": "/v1/contact/view",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "Contact id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "fields",
                        "in": "query",
                        "description": "Fields name of contact table",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "User Registered successfully.",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/v1/contact/list": {
            "post": {
                "tags": [
                    "Contact"
                ],
                "summary": "Fetch contact List",
                "description": "Fetch contact List",
                "operationId": "/v1/contact/list",
                "parameters": [
                    {
                        "name": "fields",
                        "in": "query",
                        "description": "Fields name of contact table",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Number of records per page",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "description": "Search term",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "User Registered successfully.",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/v1/contact/import": {
            "post": {
                "tags": [
                    "Contact Note"
                ],
                "summary": "Import contact",
                "description": "Import contact",
                "operationId": "/v1/contact/import",
                "parameters": [
                    {
                        "name": "import_file",
                        "in": "query",
                        "description": "Import file",
                        "required": true,
                        "schema": {
                            "type": "file"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Contact imported successfully successfully.",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/v1/contact/note/create": {
            "post": {
                "tags": [
                    "Contact Note"
                ],
                "summary": "Create note for contact",
                "description": "Create note for contact",
                "operationId": "/v1/contact/note/create",
                "parameters": [
                    {
                        "name": "contact_id",
                        "in": "query",
                        "description": "Contact id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "detail",
                        "in": "query",
                        "description": "Contact note detail",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "User Registered successfully.",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/v1/contact/note/update": {
            "post": {
                "tags": [
                    "Contact Note"
                ],
                "summary": "Update note for contact",
                "description": "Update note for contact",
                "operationId": "/v1/contact/note/update",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "Note id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "contact_id",
                        "in": "query",
                        "description": "Contact id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "detail",
                        "in": "query",
                        "description": "Contact note detail",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "User Registered successfully.",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/v1/contact/note/delete": {
            "post": {
                "tags": [
                    "Contact Note"
                ],
                "summary": "Delete note for contact",
                "description": "Delete note for contact",
                "operationId": "/v1/contact/note/delete",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "Note id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "contact_id",
                        "in": "query",
                        "description": "Contact id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "User Registered successfully.",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/v1/contact/note/view": {
            "post": {
                "tags": [
                    "Contact Note"
                ],
                "summary": "View contact note detail",
                "description": "View contact note detail",
                "operationId": "/v1/contact/note/view",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "Note id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "contact_id",
                        "in": "query",
                        "description": "Contact id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "User Registered successfully.",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/v1/contact/note/list": {
            "post": {
                "tags": [
                    "Contact Note"
                ],
                "summary": "Fetch list of contact notes",
                "description": "Fetch list of contact notes",
                "operationId": "/v1/contact/note/list",
                "parameters": [
                    {
                        "name": "contact_id",
                        "in": "query",
                        "description": "Contact id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "fields",
                        "in": "query",
                        "description": "Fields(columns) of contact table",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Number of records per page",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page no.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "User Registered successfully.",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/v1/contact/task/create": {
            "post": {
                "tags": [
                    "Contact Task"
                ],
                "summary": "Create contact task",
                "description": "Create contact task",
                "operationId": "/v1/contact/task/create",
                "parameters": [
                    {
                        "name": "contact_id",
                        "in": "query",
                        "description": "Contact id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "task_due_type",
                        "in": "query",
                        "description": "Task due type eg. in 2 days",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "task_type",
                        "in": "query",
                        "description": "Contact task type eg. to-do",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "refer_to",
                        "in": "query",
                        "description": "Contact id of person who reffered this contact",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "detail",
                        "in": "query",
                        "description": "Task detail",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "custom_date",
                        "in": "query",
                        "description": "Customer due date",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "User Registered successfully.",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/v1/contact/task/update": {
            "post": {
                "tags": [
                    "Contact Task"
                ],
                "summary": "Create contact task",
                "description": "Create contact task",
                "operationId": "/v1/contact/task/update",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "Contact task id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "contact_id",
                        "in": "query",
                        "description": "Contact id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "task_due_type",
                        "in": "query",
                        "description": "Task due type eg. in 2 days",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "task_type",
                        "in": "query",
                        "description": "Contact task type eg. to-do",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "refer_to",
                        "in": "query",
                        "description": "Contact id of person who reffered this contact",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "detail",
                        "in": "query",
                        "description": "Task detail",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "custom_date",
                        "in": "query",
                        "description": "Customer due date",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "User Registered successfully.",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/v1/contact/task/delete": {
            "post": {
                "tags": [
                    "Contact Task"
                ],
                "summary": "Delete contact task",
                "description": "Delete contact task",
                "operationId": "/v1/contact/task/delete",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "Contact task id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "contact_id",
                        "in": "query",
                        "description": "Contact id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "User Registered successfully.",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/v1/contact/task/view": {
            "post": {
                "tags": [
                    "Contact Task"
                ],
                "summary": "View contact task details",
                "description": "View contact task details",
                "operationId": "/v1/contact/task/view",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "Contact task id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "contact_id",
                        "in": "query",
                        "description": "Contact id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Data fetched successfully.",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/v1/contact/task/list": {
            "post": {
                "tags": [
                    "Contact Task"
                ],
                "summary": "Fetch list of contact tasks",
                "description": "Fetch list of contact tasks",
                "operationId": "/v1/contact/task/list",
                "parameters": [
                    {
                        "name": "contact_id",
                        "in": "query",
                        "description": "Contact id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "fields",
                        "in": "query",
                        "description": "Fields(columns) name of Contact task table",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Number of records per page.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page no.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Data fetched successfully.",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        }
    },
    "components": {
        "securitySchemes": {
            "bearerAuth": {
                "type": "http",
                "bearerFormat": "JWT",
                "scheme": "bearer"
            }
        }
    },
    "security": [
        []
    ]
}