{
    "openapi": "3.0.0",
    "info": {
        "title": "Free99 API's",
        "version": "1.0"
    },
    "servers": [
        {
            "url": "/api"
        }
    ],
    "paths": {
        "/countries": {
            "get": {
                "tags": [
                    "Global"
                ],
                "operationId": "821db37ff3b8d124fdb8bc6597f18741",
                "responses": {
                    "200": {
                        "description": "Countries",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            }
        },
        "/states": {
            "get": {
                "tags": [
                    "Global"
                ],
                "operationId": "a3fc19972b43498e542979088d3cad43",
                "responses": {
                    "200": {
                        "description": "List of all states without country filter",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            }
        },
        "/states/{countryId}": {
            "get": {
                "tags": [
                    "Global"
                ],
                "operationId": "60fe613acd12f48c77ab1033a2e97cc6",
                "parameters": [
                    {
                        "name": "countryId",
                        "in": "path",
                        "description": "Country ID to filter states",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of states filtered by country ID",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            }
        },
        "/order/pending": {
            "get": {
                "tags": [
                    "Order"
                ],
                "operationId": "98f8ea5a09100e69528138b93c2e36f0",
                "responses": {
                    "200": {
                        "description": "Pending orders",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            }
        },
        "/order/completed": {
            "get": {
                "tags": [
                    "Order"
                ],
                "operationId": "01efc51efae1b49237f6a59a9c7478a8",
                "responses": {
                    "200": {
                        "description": "Completed orders",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            }
        },
        "/order/recent": {
            "get": {
                "tags": [
                    "Order"
                ],
                "operationId": "219d8487e7dd37ea09e4993108e1efc2",
                "responses": {
                    "200": {
                        "description": "Recent orders",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            }
        },
        "/product/categories": {
            "get": {
                "tags": [
                    "Product"
                ],
                "operationId": "276e20c3bc9d6f14c7156b3064c680a5",
                "responses": {
                    "200": {
                        "description": "Product categories list",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            }
        },
        "/product/sizes": {
            "get": {
                "tags": [
                    "Product"
                ],
                "operationId": "3cbd4d279399ae98bc2ad12b2a1e229c",
                "responses": {
                    "200": {
                        "description": "Product sizes list",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            }
        },
        "/product": {
            "get": {
                "tags": [
                    "Product"
                ],
                "operationId": "7ceb642550a22afc218a30feb44caf00",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number of the product list",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Product list",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Product"
                ],
                "operationId": "b42d4b6165ae1989ec3d544986d086a4",
                "requestBody": {
                    "description": "Product creation data and image upload",
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "name",
                                    "category_id",
                                    "price",
                                    "stock_quantity",
                                    "photo"
                                ],
                                "properties": {
                                    "name": {
                                        "description": "Product name",
                                        "type": "string"
                                    },
                                    "category_id": {
                                        "description": "Category ID for the product",
                                        "type": "integer"
                                    },
                                    "product_brand_check": {
                                        "description": "Brand check",
                                        "type": "boolean"
                                    },
                                    "brand": {
                                        "description": "Brand of the product",
                                        "type": "string"
                                    },
                                    "product_variation_check": {
                                        "description": "Whether the product has variations",
                                        "type": "boolean"
                                    },
                                    "variation_sizes": {
                                        "description": "Sizes of the product variations",
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "variation_colors": {
                                        "description": "Colors of the product variations",
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "variation_prices": {
                                        "description": "Prices of the product variations",
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "featured": {
                                        "description": "Whether the product is featured",
                                        "type": "boolean"
                                    },
                                    "product_return": {
                                        "description": "Whether the product can be returned",
                                        "type": "boolean"
                                    },
                                    "product_return_policy": {
                                        "description": "Return policy for the product",
                                        "type": "string"
                                    },
                                    "stock_quantity": {
                                        "description": "Available stock quantity",
                                        "type": "integer"
                                    },
                                    "description": {
                                        "description": "Product description",
                                        "type": "string"
                                    },
                                    "price": {
                                        "description": "Price of the product",
                                        "type": "number",
                                        "format": "float"
                                    },
                                    "photo": {
                                        "description": "Primary photo of the product",
                                        "type": "string",
                                        "format": "binary"
                                    },
                                    "gallery[]": {
                                        "description": "Gallery images for the product",
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "format": "binary"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Product created successfully",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            }
        },
        "/product/{productId}": {
            "delete": {
                "tags": [
                    "Product"
                ],
                "operationId": "f8f42efd88674263c4a5a8758097f20c",
                "parameters": [
                    {
                        "name": "productId",
                        "in": "path",
                        "description": "Product ID",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Product list",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            }
        },
        "/product/detail/{productId}": {
            "get": {
                "tags": [
                    "Product"
                ],
                "operationId": "bf5bc0afa2207636ed18d8725a7778e9",
                "parameters": [
                    {
                        "name": "productId",
                        "in": "path",
                        "description": "Product ID",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Product Detail",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            }
        },
        "/product/review/{productId}": {
            "get": {
                "tags": [
                    "Product Review"
                ],
                "operationId": "b7d206f54e6a491a75827e4c2f512f64",
                "parameters": [
                    {
                        "name": "productId",
                        "in": "path",
                        "description": "Product ID",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Product Reviews",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            }
        },
        "/product/review": {
            "post": {
                "tags": [
                    "Product Review"
                ],
                "operationId": "1eaaaef1c5a0994df8b76b0b63f40203",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "_method",
                                    "product_id",
                                    "comment",
                                    "rating"
                                ],
                                "properties": {
                                    "_method": {
                                        "type": "string",
                                        "example": "post"
                                    },
                                    "product_id": {
                                        "description": "Product Id",
                                        "type": "integer"
                                    },
                                    "comment": {
                                        "description": "Comment",
                                        "type": "string"
                                    },
                                    "rating": {
                                        "description": "Rating",
                                        "type": "integer"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Product rating added successfully",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            }
        },
        "/user": {
            "get": {
                "tags": [
                    "Authenticated User"
                ],
                "operationId": "6570178f86b0b35fad12ad0af4b00449",
                "responses": {
                    "200": {
                        "description": "User",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Authenticated User"
                ],
                "operationId": "77dfb34fb8a3ecbe7a26f718c3a01dcc",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "_method",
                                    "name",
                                    "email"
                                ],
                                "properties": {
                                    "_method": {
                                        "type": "string",
                                        "example": "put"
                                    },
                                    "name": {
                                        "description": "User name",
                                        "type": "string"
                                    },
                                    "email": {
                                        "description": "User email",
                                        "type": "string",
                                        "format": "email"
                                    },
                                    "shop_name": {
                                        "type": "string"
                                    },
                                    "details": {
                                        "type": "string"
                                    },
                                    "register_number": {
                                        "type": "string"
                                    },
                                    "image": {
                                        "description": "Profile image file",
                                        "type": "string",
                                        "format": "binary"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Profile updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            }
        },
        "/user/update-password": {
            "post": {
                "tags": [
                    "Authenticated User"
                ],
                "operationId": "5ab4a565149a62cf26802f4d3cfbd435",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "_method",
                                    "current_password",
                                    "password",
                                    "password_confirmation"
                                ],
                                "properties": {
                                    "_method": {
                                        "type": "string",
                                        "example": "put"
                                    },
                                    "current_password": {
                                        "description": "Current Password of the user",
                                        "type": "string",
                                        "example": ""
                                    },
                                    "password": {
                                        "description": "New Password of the user",
                                        "type": "string",
                                        "example": ""
                                    },
                                    "password_confirmation": {
                                        "description": "Confirmation Password",
                                        "type": "string",
                                        "example": ""
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Password updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            }
        },
        "/packages": {
            "get": {
                "tags": [
                    "Subscription Pacakges"
                ],
                "operationId": "dbf376ffb8cb98fe2da8ef5a0fedc161",
                "responses": {
                    "200": {
                        "description": "Subscription Pacakges list",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            }
        },
        "/packages/purchase/{package}": {
            "post": {
                "tags": [
                    "Subscription Pacakges"
                ],
                "operationId": "01d9e1a441f4f721c5caae8d2ebdf683",
                "parameters": [
                    {
                        "name": "package",
                        "in": "path",
                        "description": "Package ID to filter states",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "subscription_code": {
                                        "description": "Subscriptiong code",
                                        "type": "string",
                                        "example": ""
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Purchase subscription successfully",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            }
        },
        "/auth/register": {
            "post": {
                "tags": [
                    "Authentication"
                ],
                "operationId": "a5e99257a0d904a2e1aedcc3e0621065",
                "requestBody": {
                    "description": "User registration",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "email",
                                    "password",
                                    "password_confirmation"
                                ],
                                "properties": {
                                    "name": {
                                        "description": "Name of the user",
                                        "type": "string"
                                    },
                                    "email": {
                                        "description": "Email of the user",
                                        "type": "string"
                                    },
                                    "password": {
                                        "description": "Password of the user",
                                        "type": "string"
                                    },
                                    "password_confirmation": {
                                        "description": "Confirmation Password",
                                        "type": "string"
                                    }
                                },
                                "type": "object",
                                "example": {
                                    "name": "john doe",
                                    "email": "johndoe@mailinator.com",
                                    "password": "testing..",
                                    "password_confirmation": "testing.."
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "User Registration",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                }
            }
        },
        "/auth/login": {
            "post": {
                "tags": [
                    "Authentication"
                ],
                "operationId": "cd16214b6282a5fcaf30cc623048e161",
                "requestBody": {
                    "description": "User login",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "email",
                                    "password"
                                ],
                                "properties": {
                                    "email": {
                                        "description": "Email of the user",
                                        "type": "string"
                                    },
                                    "password": {
                                        "description": "Password of the user",
                                        "type": "string"
                                    }
                                },
                                "type": "object",
                                "example": {
                                    "email": "johndoe@mailinator.com",
                                    "password": "testing.."
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "User Login",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                }
            }
        },
        "/user/logout": {
            "post": {
                "tags": [
                    "Authenticated User"
                ],
                "operationId": "808dff22421b866c8f0d6cd826e77b3b",
                "responses": {
                    "200": {
                        "description": "User Logout",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            }
        },
        "/vendor/order": {
            "get": {
                "tags": [
                    "Vendor"
                ],
                "operationId": "6e7f8b730bb11dd39ed0b3263b69ced3",
                "responses": {
                    "200": {
                        "description": "Vendor orders",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            }
        },
        "/vendor/invoice": {
            "get": {
                "tags": [
                    "Vendor"
                ],
                "operationId": "5c3223d70e328a5cc546f83cbe88ccc7",
                "responses": {
                    "200": {
                        "description": "Vendor invoice",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            }
        },
        "/user/wallet": {
            "get": {
                "tags": [
                    "User Wallet"
                ],
                "operationId": "64afe6c3b0d760c558afd593024d927b",
                "responses": {
                    "200": {
                        "description": "Wallet",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            }
        },
        "/user/wallet/stripe-connect": {
            "post": {
                "tags": [
                    "User Wallet"
                ],
                "operationId": "cbf2b7a7176ca1885c0356b545330541",
                "responses": {
                    "200": {
                        "description": "Stripe connect URL",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            }
        },
        "/wishlist": {
            "get": {
                "tags": [
                    "Wishlist"
                ],
                "operationId": "ed1e3d18696cd55a97334dcb7fe65d71",
                "responses": {
                    "200": {
                        "description": "wishlist list",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            }
        },
        "/wishlist/store": {
            "post": {
                "tags": [
                    "Wishlist"
                ],
                "operationId": "4ad3fee8eb4b30528e12a8484705170e",
                "requestBody": {
                    "description": "Wishlist added",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "product_id"
                                ],
                                "properties": {
                                    "product_id": {
                                        "description": "Product id",
                                        "type": "integer"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Wishlist added successfully",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            }
        },
        "/wishlist/remove/{wishlistId}": {
            "delete": {
                "tags": [
                    "Wishlist"
                ],
                "operationId": "1e549ec1a29754fedc8b996c7e6a0288",
                "parameters": [
                    {
                        "name": "wishlistId",
                        "in": "path",
                        "description": "Wishlist ID",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Wishlist remove",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    }
                ]
            }
        }
    },
    "components": {
        "securitySchemes": {
            "BearerAuth": {
                "type": "http",
                "description": "Enter JWT Bearer token **_only_**",
                "name": "Authorization",
                "in": "header",
                "bearerFormat": "JWT",
                "scheme": "bearer"
            }
        }
    },
    "tags": [
        {
            "name": "Authentication"
        },
        {
            "name": "Authenticated User"
        },
        {
            "name": "User Wallet"
        },
        {
            "name": "Global"
        },
        {
            "name": "Product"
        },
        {
            "name": "Subscription Pacakges"
        }
    ]
}