{
    "openapi": "3.0.3",
    "info": {
        "title": "Unified Platform \u2014 Modular Monolith API",
        "version": "2.0.0",
        "description": "Live route-driven OpenAPI document generated from the Laravel route list."
    },
    "servers": [
        {
            "url": "https://app.104.37.188.141.sslip.io",
            "description": "Local application server"
        }
    ],
    "tags": [
        {
            "name": "IAM & Auth",
            "description": "IAM & Auth"
        },
        {
            "name": "Core \u2014 Audit",
            "description": "Core \u2014 Audit"
        },
        {
            "name": "User",
            "description": "User"
        },
        {
            "name": "Commerce \u2014 Restaurant",
            "description": "Commerce \u2014 Restaurant"
        },
        {
            "name": "Commerce \u2014 Menu",
            "description": "Commerce \u2014 Menu"
        },
        {
            "name": "Commerce \u2014 Catalog",
            "description": "Commerce \u2014 Catalog"
        },
        {
            "name": "Commerce \u2014 Promotion",
            "description": "Commerce \u2014 Promotion"
        },
        {
            "name": "Fulfillment \u2014 Order",
            "description": "Fulfillment \u2014 Order"
        },
        {
            "name": "Fulfillment \u2014 Kitchen",
            "description": "Fulfillment \u2014 Kitchen"
        },
        {
            "name": "Fulfillment \u2014 Delivery",
            "description": "Fulfillment \u2014 Delivery"
        },
        {
            "name": "Fulfillment \u2014 Rider Fleet",
            "description": "Fulfillment \u2014 Rider Fleet"
        },
        {
            "name": "Fulfillment \u2014 Tracking",
            "description": "Fulfillment \u2014 Tracking"
        },
        {
            "name": "Financial \u2014 Payment",
            "description": "Financial \u2014 Payment"
        },
        {
            "name": "Financial \u2014 Ledger",
            "description": "Financial \u2014 Ledger"
        },
        {
            "name": "Booking \u2014 Reservation Engine",
            "description": "Booking \u2014 Reservation Engine"
        },
        {
            "name": "Booking \u2014 Availability",
            "description": "Booking \u2014 Availability"
        },
        {
            "name": "Core \u2014 Notification",
            "description": "Core \u2014 Notification"
        },
        {
            "name": "Customer",
            "description": "Customer"
        }
    ],
    "paths": {
        "/api/documentation": {
            "get": {
                "summary": "Get api/documentation",
                "tags": [
                    "Documentation"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/oauth2-callback": {
            "get": {
                "summary": "L5 swagger.default.oauth2_callback",
                "tags": [
                    "Oauth2-callback"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/auth/ping": {
            "get": {
                "summary": "Get api/v1/auth/ping",
                "tags": [
                    "Auth"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/auth/auth/google": {
            "post": {
                "summary": "Post api/v1/auth/auth/google",
                "tags": [
                    "Auth"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/auth/phone/otp": {
            "post": {
                "summary": "Post api/v1/auth/phone/otp",
                "tags": [
                    "Auth"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/auth/phone/verify": {
            "post": {
                "summary": "Post api/v1/auth/phone/verify",
                "tags": [
                    "Auth"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/auth/register": {
            "post": {
                "summary": "Post api/v1/auth/register",
                "tags": [
                    "Auth"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/auth/login": {
            "post": {
                "summary": "Post api/v1/auth/login",
                "tags": [
                    "Auth"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/auth/me": {
            "get": {
                "summary": "Get api/v1/auth/me",
                "tags": [
                    "Auth"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/auth/update": {
            "put": {
                "summary": "Put api/v1/auth/update",
                "tags": [
                    "Auth"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/auth/logout": {
            "post": {
                "summary": "Post api/v1/auth/logout",
                "tags": [
                    "Auth"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/auth/change-password": {
            "post": {
                "summary": "Post api/v1/auth/change password",
                "tags": [
                    "Auth"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/iam/ping": {
            "get": {
                "summary": "Get api/v1/iam/ping",
                "tags": [
                    "IAM & Auth"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/iam/auth/google": {
            "post": {
                "summary": "Post api/v1/iam/auth/google",
                "tags": [
                    "IAM & Auth"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/iam/phone/otp": {
            "post": {
                "summary": "Post api/v1/iam/phone/otp",
                "tags": [
                    "IAM & Auth"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/iam/phone/verify": {
            "post": {
                "summary": "Post api/v1/iam/phone/verify",
                "tags": [
                    "IAM & Auth"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/iam/register": {
            "post": {
                "summary": "Post api/v1/iam/register",
                "tags": [
                    "IAM & Auth"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/iam/login": {
            "post": {
                "summary": "Post api/v1/iam/login",
                "tags": [
                    "IAM & Auth"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/iam/me": {
            "get": {
                "summary": "Get api/v1/iam/me",
                "tags": [
                    "IAM & Auth"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/iam/update": {
            "put": {
                "summary": "Put api/v1/iam/update",
                "tags": [
                    "IAM & Auth"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/iam/logout": {
            "post": {
                "summary": "Post api/v1/iam/logout",
                "tags": [
                    "IAM & Auth"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/iam/change-password": {
            "post": {
                "summary": "Post api/v1/iam/change password",
                "tags": [
                    "IAM & Auth"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/users": {
            "get": {
                "summary": "Users.index",
                "tags": [
                    "Users"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            },
            "post": {
                "summary": "Users.store",
                "tags": [
                    "Users"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/users/{userId}": {
            "get": {
                "summary": "Users.show",
                "tags": [
                    "Users"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            },
            "put": {
                "summary": "Users.update",
                "tags": [
                    "Users"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            },
            "delete": {
                "summary": "Users.destroy",
                "tags": [
                    "Users"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/users/{userId}/deactivate": {
            "post": {
                "summary": "Users.deactivate",
                "tags": [
                    "Users"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/users/{userId}/assign-role": {
            "post": {
                "summary": "Users.assign role",
                "tags": [
                    "Users"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/users/{userId}/authorization": {
            "get": {
                "summary": "Users.authorization",
                "tags": [
                    "Users"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/notification/ping": {
            "get": {
                "summary": "Get api/v1/notification/ping",
                "tags": [
                    "Core \u2014 Notification"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/notifications": {
            "get": {
                "summary": "Get api/v1/notifications",
                "tags": [
                    "Notifications"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/notifications/unread-count": {
            "get": {
                "summary": "Get api/v1/notifications/unread count",
                "tags": [
                    "Notifications"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/notifications/{notification}/read": {
            "patch": {
                "summary": "Patch api/v1/notifications/{notification}/read",
                "tags": [
                    "Notifications"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/notifications/read-all": {
            "post": {
                "summary": "Post api/v1/notifications/read all",
                "tags": [
                    "Notifications"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/notifications/{notification}": {
            "delete": {
                "summary": "Delete api/v1/notifications/{notification}",
                "tags": [
                    "Notifications"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/notifications/devices": {
            "post": {
                "summary": "Post api/v1/notifications/devices",
                "tags": [
                    "Notifications"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/notifications/devices/{device}": {
            "delete": {
                "summary": "Delete api/v1/notifications/devices/{device}",
                "tags": [
                    "Notifications"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/notifications/preferences": {
            "get": {
                "summary": "Get api/v1/notifications/preferences",
                "tags": [
                    "Notifications"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            },
            "put": {
                "summary": "Put api/v1/notifications/preferences",
                "tags": [
                    "Notifications"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/notification-preferences": {
            "get": {
                "summary": "Get api/v1/notification preferences",
                "tags": [
                    "Notification-preferences"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            },
            "put": {
                "summary": "Put api/v1/notification preferences",
                "tags": [
                    "Notification-preferences"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/audit/ping": {
            "get": {
                "summary": "Get api/v1/audit/ping",
                "tags": [
                    "Core \u2014 Audit"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/audit/logs": {
            "get": {
                "summary": "Get api/v1/audit/logs",
                "tags": [
                    "Core \u2014 Audit"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            },
            "post": {
                "summary": "Post api/v1/audit/logs",
                "tags": [
                    "Core \u2014 Audit"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/audit/logs/{auditId}": {
            "get": {
                "summary": "Get api/v1/audit/logs/{auditId}",
                "tags": [
                    "Core \u2014 Audit"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/restaurants": {
            "get": {
                "summary": "Get api/v1/restaurants",
                "tags": [
                    "Restaurants"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/restaurants/{id}": {
            "get": {
                "summary": "Get api/v1/restaurants/{id}",
                "tags": [
                    "Restaurants"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/restaurant/ping": {
            "get": {
                "summary": "Get api/v1/restaurant/ping",
                "tags": [
                    "Commerce \u2014 Restaurant"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/restaurant": {
            "get": {
                "summary": "Get api/v1/restaurant",
                "tags": [
                    "Commerce \u2014 Restaurant"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/restaurant/{restaurantId}/branches": {
            "post": {
                "summary": "Post api/v1/restaurant/{restaurantId}/branches",
                "tags": [
                    "Commerce \u2014 Restaurant"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/restaurant/branches/{branchId}/operating-hours": {
            "put": {
                "summary": "Put api/v1/restaurant/branches/{branchId}/operating hours",
                "tags": [
                    "Commerce \u2014 Restaurant"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/menu/ping": {
            "get": {
                "summary": "Get api/v1/menu/ping",
                "tags": [
                    "Commerce \u2014 Menu"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/menu/restaurants/{restaurantId}": {
            "get": {
                "summary": "Get api/v1/menu/restaurants/{restaurantId}",
                "tags": [
                    "Commerce \u2014 Menu"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/menu/branches/{branchId}": {
            "get": {
                "summary": "Get api/v1/menu/branches/{branchId}",
                "tags": [
                    "Commerce \u2014 Menu"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/menu/merchant/menus": {
            "post": {
                "summary": "Post api/v1/menu/merchant/menus",
                "tags": [
                    "Commerce \u2014 Menu"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/menu/merchant/menus/{menuId}": {
            "put": {
                "summary": "Put api/v1/menu/merchant/menus/{menuId}",
                "tags": [
                    "Commerce \u2014 Menu"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            },
            "delete": {
                "summary": "Delete api/v1/menu/merchant/menus/{menuId}",
                "tags": [
                    "Commerce \u2014 Menu"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/menu/merchant/menus/{menuId}/branches": {
            "post": {
                "summary": "Post api/v1/menu/merchant/menus/{menuId}/branches",
                "tags": [
                    "Commerce \u2014 Menu"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/menu/merchant/menus/{menuId}/branches/{branchId}": {
            "delete": {
                "summary": "Delete api/v1/menu/merchant/menus/{menuId}/branches/{branchId}",
                "tags": [
                    "Commerce \u2014 Menu"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/menu/merchant/items": {
            "post": {
                "summary": "Post api/v1/menu/merchant/items",
                "tags": [
                    "Commerce \u2014 Menu"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/menu/merchant/items/{id}": {
            "put": {
                "summary": "Put api/v1/menu/merchant/items/{id}",
                "tags": [
                    "Commerce \u2014 Menu"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            },
            "delete": {
                "summary": "Delete api/v1/menu/merchant/items/{id}",
                "tags": [
                    "Commerce \u2014 Menu"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/menu/merchant/extras": {
            "post": {
                "summary": "Post api/v1/menu/merchant/extras",
                "tags": [
                    "Commerce \u2014 Menu"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/menu/merchant/extras/{id}": {
            "put": {
                "summary": "Put api/v1/menu/merchant/extras/{id}",
                "tags": [
                    "Commerce \u2014 Menu"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            },
            "delete": {
                "summary": "Delete api/v1/menu/merchant/extras/{id}",
                "tags": [
                    "Commerce \u2014 Menu"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/menu/merchant/branches/{branchId}/items/{itemId}/override": {
            "put": {
                "summary": "Put api/v1/menu/merchant/branches/{branchId}/items/{itemId}/override",
                "tags": [
                    "Commerce \u2014 Menu"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/catalog/ping": {
            "get": {
                "summary": "Get api/v1/catalog/ping",
                "tags": [
                    "Commerce \u2014 Catalog"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/customer/promotions/home": {
            "get": {
                "summary": "Get api/v1/customer/promotions/home",
                "tags": [
                    "Customer"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/customer/promotions/{promotion}": {
            "get": {
                "summary": "Get api/v1/customer/promotions/{promotion}",
                "tags": [
                    "Customer"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/customer/promotions/{promotion}/impression": {
            "post": {
                "summary": "Post api/v1/customer/promotions/{promotion}/impression",
                "tags": [
                    "Customer"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/customer/promotions/{promotion}/click": {
            "post": {
                "summary": "Post api/v1/customer/promotions/{promotion}/click",
                "tags": [
                    "Customer"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/promotions/upload-image": {
            "post": {
                "summary": "Post api/v1/promotions/upload image",
                "tags": [
                    "Promotions"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/promotions/advertisers": {
            "get": {
                "summary": "Get api/v1/promotions/advertisers",
                "tags": [
                    "Promotions"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            },
            "post": {
                "summary": "Post api/v1/promotions/advertisers",
                "tags": [
                    "Promotions"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/promotions": {
            "get": {
                "summary": "Get api/v1/promotions",
                "tags": [
                    "Promotions"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            },
            "post": {
                "summary": "Post api/v1/promotions",
                "tags": [
                    "Promotions"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/promotions/campaigns": {
            "post": {
                "summary": "Post api/v1/promotions/campaigns",
                "tags": [
                    "Promotions"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/promotions/purchases": {
            "post": {
                "summary": "Post api/v1/promotions/purchases",
                "tags": [
                    "Promotions"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/promotions/{promotion}": {
            "get": {
                "summary": "Get api/v1/promotions/{promotion}",
                "tags": [
                    "Promotions"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            },
            "put": {
                "summary": "Put api/v1/promotions/{promotion}",
                "tags": [
                    "Promotions"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/promotions/{promotion}/submit": {
            "post": {
                "summary": "Post api/v1/promotions/{promotion}/submit",
                "tags": [
                    "Promotions"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/promotions/{promotion}/approve": {
            "post": {
                "summary": "Post api/v1/promotions/{promotion}/approve",
                "tags": [
                    "Promotions"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/promotions/{promotion}/reject": {
            "post": {
                "summary": "Post api/v1/promotions/{promotion}/reject",
                "tags": [
                    "Promotions"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/promotions/{promotion}/activate": {
            "post": {
                "summary": "Post api/v1/promotions/{promotion}/activate",
                "tags": [
                    "Promotions"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/promotions/{promotion}/pause": {
            "post": {
                "summary": "Post api/v1/promotions/{promotion}/pause",
                "tags": [
                    "Promotions"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/promotions/{promotion}/cancel": {
            "post": {
                "summary": "Post api/v1/promotions/{promotion}/cancel",
                "tags": [
                    "Promotions"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/promotions/{promotion}/analytics": {
            "get": {
                "summary": "Get api/v1/promotions/{promotion}/analytics",
                "tags": [
                    "Promotions"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/order/ping": {
            "get": {
                "summary": "Get api/v1/order/ping",
                "tags": [
                    "Fulfillment \u2014 Order"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/order": {
            "post": {
                "summary": "Post api/v1/order",
                "tags": [
                    "Fulfillment \u2014 Order"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            },
            "get": {
                "summary": "Get api/v1/order",
                "tags": [
                    "Fulfillment \u2014 Order"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/order/{orderId}": {
            "get": {
                "summary": "Get api/v1/order/{orderId}",
                "tags": [
                    "Fulfillment \u2014 Order"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/order/{orderId}/cancel": {
            "post": {
                "summary": "Post api/v1/order/{orderId}/cancel",
                "tags": [
                    "Fulfillment \u2014 Order"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/orders/ping": {
            "get": {
                "summary": "Get api/v1/orders/ping",
                "tags": [
                    "Orders"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/orders": {
            "post": {
                "summary": "Post api/v1/orders",
                "tags": [
                    "Orders"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            },
            "get": {
                "summary": "Get api/v1/orders",
                "tags": [
                    "Orders"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/orders/{orderId}": {
            "get": {
                "summary": "Get api/v1/orders/{orderId}",
                "tags": [
                    "Orders"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/orders/{orderId}/cancel": {
            "post": {
                "summary": "Post api/v1/orders/{orderId}/cancel",
                "tags": [
                    "Orders"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/kitchen/ping": {
            "get": {
                "summary": "Get api/v1/kitchen/ping",
                "tags": [
                    "Fulfillment \u2014 Kitchen"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/delivery/ping": {
            "get": {
                "summary": "Get api/v1/delivery/ping",
                "tags": [
                    "Fulfillment \u2014 Delivery"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/delivery/restaurants": {
            "get": {
                "summary": "Get api/v1/delivery/restaurants",
                "tags": [
                    "Fulfillment \u2014 Delivery"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/delivery/orders": {
            "post": {
                "summary": "Post api/v1/delivery/orders",
                "tags": [
                    "Fulfillment \u2014 Delivery"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/delivery/orders/customer/{customerId}": {
            "get": {
                "summary": "Get api/v1/delivery/orders/customer/{customerId}",
                "tags": [
                    "Fulfillment \u2014 Delivery"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/rider/register": {
            "post": {
                "summary": "Post api/v1/rider/register",
                "tags": [
                    "Rider"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/rider/status": {
            "post": {
                "summary": "Post api/v1/rider/status",
                "tags": [
                    "Rider"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/rider/jobs/available": {
            "get": {
                "summary": "Get api/v1/rider/jobs/available",
                "tags": [
                    "Rider"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/rider/jobs/active": {
            "get": {
                "summary": "Get api/v1/rider/jobs/active",
                "tags": [
                    "Rider"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/rider/jobs/{jobId}/accept": {
            "post": {
                "summary": "Post api/v1/rider/jobs/{jobId}/accept",
                "tags": [
                    "Rider"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/rider/jobs/{jobId}/decline": {
            "post": {
                "summary": "Post api/v1/rider/jobs/{jobId}/decline",
                "tags": [
                    "Rider"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/rider/jobs/{jobId}/status": {
            "post": {
                "summary": "Post api/v1/rider/jobs/{jobId}/status",
                "tags": [
                    "Rider"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/rider/location": {
            "post": {
                "summary": "Post api/v1/rider/location",
                "tags": [
                    "Rider"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/rider/earnings": {
            "get": {
                "summary": "Get api/v1/rider/earnings",
                "tags": [
                    "Rider"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/fleet/ping": {
            "get": {
                "summary": "Get api/v1/fleet/ping",
                "tags": [
                    "Fulfillment \u2014 Rider Fleet"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/tracking/ping": {
            "get": {
                "summary": "Get api/v1/tracking/ping",
                "tags": [
                    "Fulfillment \u2014 Tracking"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/payment/ping": {
            "get": {
                "summary": "Payment.ping",
                "tags": [
                    "Financial \u2014 Payment"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/payment/initiate": {
            "post": {
                "summary": "Payment.initiate",
                "tags": [
                    "Financial \u2014 Payment"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/payment/verify/{intentId}": {
            "post": {
                "summary": "Payment.verify",
                "tags": [
                    "Financial \u2014 Payment"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/payment/webhook": {
            "post": {
                "summary": "Payment.webhook",
                "tags": [
                    "Financial \u2014 Payment"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/ledger/ping": {
            "get": {
                "summary": "Ledger.ping",
                "tags": [
                    "Financial \u2014 Ledger"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/ledger/restaurants/{restaurantId}/balance": {
            "get": {
                "summary": "Ledger.restaurant.balance",
                "tags": [
                    "Financial \u2014 Ledger"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/ledger/me/balance": {
            "get": {
                "summary": "Ledger.me.balance",
                "tags": [
                    "Financial \u2014 Ledger"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/ledger/me/transactions": {
            "get": {
                "summary": "Ledger.me.transactions",
                "tags": [
                    "Financial \u2014 Ledger"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/ledger/riders/{riderId}/balance": {
            "get": {
                "summary": "Ledger.rider.balance",
                "tags": [
                    "Financial \u2014 Ledger"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/ledger/riders/{riderId}/transactions": {
            "get": {
                "summary": "Ledger.rider.transactions",
                "tags": [
                    "Financial \u2014 Ledger"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/ledger/platform/summary": {
            "get": {
                "summary": "Ledger.platform.summary",
                "tags": [
                    "Financial \u2014 Ledger"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/payout/webhook": {
            "post": {
                "summary": "Post api/v1/payout/webhook",
                "tags": [
                    "Payout"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/payouts/banks": {
            "get": {
                "summary": "Get api/v1/payouts/banks",
                "tags": [
                    "Payouts"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/payouts/withdrawal-account": {
            "get": {
                "summary": "Get api/v1/payouts/withdrawal account",
                "tags": [
                    "Payouts"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            },
            "post": {
                "summary": "Post api/v1/payouts/withdrawal account",
                "tags": [
                    "Payouts"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/payouts/recipients": {
            "get": {
                "summary": "Get api/v1/payouts/recipients",
                "tags": [
                    "Payouts"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            },
            "post": {
                "summary": "Post api/v1/payouts/recipients",
                "tags": [
                    "Payouts"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/payouts/schedule": {
            "get": {
                "summary": "Get api/v1/payouts/schedule",
                "tags": [
                    "Payouts"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            },
            "post": {
                "summary": "Post api/v1/payouts/schedule",
                "tags": [
                    "Payouts"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            },
            "put": {
                "summary": "Put api/v1/payouts/schedule",
                "tags": [
                    "Payouts"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/payouts": {
            "post": {
                "summary": "Post api/v1/payouts",
                "tags": [
                    "Payouts"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            },
            "get": {
                "summary": "Get api/v1/payouts",
                "tags": [
                    "Payouts"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/payouts/{id}": {
            "get": {
                "summary": "Get api/v1/payouts/{id}",
                "tags": [
                    "Payouts"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/booking/ping": {
            "get": {
                "summary": "Get api/v1/booking/ping",
                "tags": [
                    "Booking \u2014 Reservation Engine"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/booking": {
            "post": {
                "summary": "Post api/v1/booking",
                "tags": [
                    "Booking \u2014 Reservation Engine"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/services": {
            "get": {
                "summary": "Get api/v1/services",
                "tags": [
                    "Services"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/availability/ping": {
            "get": {
                "summary": "Get api/v1/availability/ping",
                "tags": [
                    "Booking \u2014 Availability"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/ratings/summary": {
            "get": {
                "summary": "Get api/v1/ratings/summary",
                "tags": [
                    "Ratings"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/ratings/detail/{rating}": {
            "get": {
                "summary": "Get api/v1/ratings/detail/{rating}",
                "tags": [
                    "Ratings"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/ratings/{rateableType}/{rateableId}": {
            "get": {
                "summary": "Get api/v1/ratings/{rateableType}/{rateableId}",
                "tags": [
                    "Ratings"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/ratings/{rateableType}/{rateableId}/summary": {
            "get": {
                "summary": "Get api/v1/ratings/{rateableType}/{rateableId}/summary",
                "tags": [
                    "Ratings"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/ratings": {
            "post": {
                "summary": "Post api/v1/ratings",
                "tags": [
                    "Ratings"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/ratings/{rating}": {
            "put": {
                "summary": "Put api/v1/ratings/{rating}",
                "tags": [
                    "Ratings"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            },
            "delete": {
                "summary": "Delete api/v1/ratings/{rating}",
                "tags": [
                    "Ratings"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/health/live": {
            "get": {
                "summary": "Api.health.live",
                "tags": [
                    "Health"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/health/ready": {
            "get": {
                "summary": "Api.health.ready",
                "tags": [
                    "Health"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/user": {
            "get": {
                "summary": "Get api/user",
                "tags": [
                    "User"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/customer/branches/nearby": {
            "get": {
                "summary": "Get api/v1/customer/branches/nearby",
                "tags": [
                    "Customer"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v1/customer/register": {
            "post": {
                "summary": "Register customer",
                "tags": [
                    "Customer"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name",
                                    "email",
                                    "password"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "John Doe"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "john@example.com"
                                    },
                                    "password": {
                                        "type": "string",
                                        "format": "password",
                                        "example": "secret123"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "latitude": {
                                        "type": "number",
                                        "format": "float",
                                        "nullable": true
                                    },
                                    "longitude": {
                                        "type": "number",
                                        "format": "float",
                                        "nullable": true
                                    },
                                    "address_line": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "city": {
                                        "type": "string",
                                        "nullable": true
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Customer registered successfully"
                    }
                }
            }
        },
        "/api/v1/customer/location": {
            "post": {
                "summary": "Update customer location",
                "tags": [
                    "Customer"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "customer_id",
                                    "latitude",
                                    "longitude"
                                ],
                                "properties": {
                                    "customer_id": {
                                        "type": "string",
                                        "example": "cus_123"
                                    },
                                    "latitude": {
                                        "type": "number",
                                        "format": "float"
                                    },
                                    "longitude": {
                                        "type": "number",
                                        "format": "float"
                                    },
                                    "address_line": {
                                        "type": "string",
                                        "nullable": true
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Location updated"
                    }
                }
            }
        },
        "/api/v1/customer/address": {
            "post": {
                "summary": "Update default delivery address",
                "tags": [
                    "Customer"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "customer_id",
                                    "latitude",
                                    "longitude",
                                    "address_line"
                                ],
                                "properties": {
                                    "customer_id": {
                                        "type": "string",
                                        "example": "cus_123"
                                    },
                                    "latitude": {
                                        "type": "number",
                                        "format": "float"
                                    },
                                    "longitude": {
                                        "type": "number",
                                        "format": "float"
                                    },
                                    "address_line": {
                                        "type": "string",
                                        "example": "Bole Road 22"
                                    },
                                    "city": {
                                        "type": "string",
                                        "nullable": true
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Address updated"
                    }
                }
            }
        },
        "/api/v1/customer/profile/{customerId?}": {
            "get": {
                "summary": "Get api/v1/customer/profile/{customerId?}",
                "tags": [
                    "Customer"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/docs/openapi.json": {
            "get": {
                "summary": "Get api/docs/openapi.json",
                "tags": [
                    "Docs"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    }
}