{
  "openapi" : "3.0.1",
  "info" : {
    "title" : "WebSpec Service API",
    "description" : "<h3>WebSpec Multi-City Service Management API</h3>\n\n<p>This API provides comprehensive management capabilities for WebSpec's multi-city service marketplace platform.</p>\n\n<h4>Key Features:</h4>\n<ul>\n    <li><strong>City Management:</strong> Manage cities where services are available</li>\n    <li><strong>Business Type Management:</strong> Handle different types of businesses and services</li>\n    <li><strong>Category Management:</strong> Hierarchical service category organization</li>\n    <li><strong>Service Management:</strong> Comprehensive service catalog management</li>\n    <li><strong>Package Management:</strong> Service packages and customizable options</li>\n    <li><strong>City Mapping:</strong> City-specific availability and configuration</li>\n    <li><strong>User Customization:</strong> Personalized package customization</li>\n</ul>\n\n<h4>API Structure:</h4>\n<ul>\n    <li><strong>Cities:</strong> <code>/api/v1/cities</code> - City management and location services</li>\n    <li><strong>Types:</strong> <code>/api/v1/types</code> - Business type management</li>\n    <li><strong>Categories:</strong> <code>/api/v1/categories</code> - Service category hierarchy</li>\n    <li><strong>Services:</strong> <code>/api/v1/services</code> - Service catalog management</li>\n    <li><strong>Products:</strong> <code>/api/v1/products</code> - Product catalog management with inventory and pricing</li>\n    <li><strong>Product Categories:</strong> <code>/api/v1/product-categories</code> - Product category hierarchy management</li>\n    <li><strong>Packages:</strong> <code>/api/v1/service-packages</code> - Service package management</li>\n    <li><strong>Options:</strong> <code>/api/v1/package-options</code> - Package customization options</li>\n    <li><strong>City Mappings:</strong> <code>/api/v1/city-*-mappings</code> - City-specific configurations</li>\n</ul>\n\n<h4>Authentication:</h4>\n<p>Most endpoints require authentication via JWT token in the Authorization header.</p>\n<p>Public endpoints are available for service discovery and frontend integration.</p>\n\n<h4>Response Format:</h4>\n<p>All responses follow a standardized format with success/error status, message, and data payload.</p>\n",
    "contact" : {
      "name" : "WebSpec Development Team",
      "url" : "https://theclassy.com/contact",
      "email" : "dev@theclassy.com"
    },
    "license" : {
      "name" : "Proprietary License",
      "url" : "https://theclassy.com/license"
    },
    "version" : "1.0.0"
  },
  "servers" : [ {
    "url" : "/",
    "description" : "API Gateway"
  } ],
  "security" : [ {
    "bearerAuth" : [ ],
    "cityIdHeader" : [ ]
  } ],
  "tags" : [ {
    "name" : "Service Categories",
    "description" : "APIs for managing service categories with hierarchical structure"
  }, {
    "name" : "Audit Management",
    "description" : "APIs for viewing and managing audit logs (Admin only)"
  }, {
    "name" : "Brands",
    "description" : "APIs for managing brands and brand information"
  }, {
    "name" : "General FAQ Management",
    "description" : "APIs for managing general site FAQs"
  }, {
    "name" : "City Home Page Management",
    "description" : "APIs for managing city-specific home page settings"
  }, {
    "name" : "Service Visit Management",
    "description" : "APIs for managing service visits and visit tracking"
  }, {
    "name" : "Inventory Management",
    "description" : "APIs for comprehensive inventory management including stock tracking, reservations, and analytics"
  }, {
    "name" : "Services",
    "description" : "APIs for managing individual services like AC Repair, Laptop Service, etc."
  }, {
    "name" : "Health & Monitoring",
    "description" : "APIs for health checks and system monitoring"
  }, {
    "name" : "Service Package Management",
    "description" : "APIs for managing service packages with customization options"
  }, {
    "name" : "Revisit Request Management",
    "description" : "APIs for managing revisit requests and approval workflow"
  }, {
    "name" : "Cart Management",
    "description" : "APIs for managing shopping carts with products and services"
  }, {
    "name" : "Product Categories",
    "description" : "APIs for managing product categories with hierarchical structure"
  }, {
    "name" : "Sales Management",
    "description" : "APIs for managing sales transactions and analytics"
  }, {
    "name" : "Departments",
    "description" : "APIs for managing service departments"
  }, {
    "name" : "Root",
    "description" : "Root endpoints for service information"
  }, {
    "name" : "Section Management",
    "description" : "APIs for managing home page sections"
  }, {
    "name" : "Service Booking Management",
    "description" : "APIs for managing service bookings and booking lifecycle"
  }, {
    "name" : "Banners",
    "description" : "APIs for managing marketing banners"
  }, {
    "name" : "Services",
    "description" : "Public API for Browsing Services, Categories, Packages & Options"
  }, {
    "name" : "Home Page Sections",
    "description" : "APIs for managing city-specific home page sections"
  }, {
    "name" : "Package Option Items",
    "description" : "Manage parts from package_option_items"
  }, {
    "name" : "Package Option Management",
    "description" : "APIs for managing package customization options with single/multi-select configurations"
  }, {
    "name" : "Order Management",
    "description" : "APIs for managing orders and order items"
  }, {
    "name" : "Business Types",
    "description" : "APIs for managing business types and categories"
  }, {
    "name" : "Products",
    "description" : "APIs for managing products with comprehensive features"
  } ],
  "paths" : {
    "/api/v1/service/{id}" : {
      "get" : {
        "tags" : [ "Services" ],
        "summary" : "Get service by ID",
        "description" : "Retrieves a specific service by its ID",
        "operationId" : "getServiceById",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Service ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Service found successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ServiceResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Service not found"
          }
        }
      },
      "put" : {
        "tags" : [ "Services" ],
        "summary" : "Update a service",
        "description" : "Updates an existing service with new information",
        "operationId" : "updateService",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Service ID to update",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateServiceRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Service updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ServiceResponse"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal server error"
          },
          "400" : {
            "description" : "Invalid input data"
          },
          "409" : {
            "description" : "Service name or slug already exists"
          },
          "404" : {
            "description" : "Service not found"
          }
        }
      },
      "delete" : {
        "tags" : [ "Services" ],
        "summary" : "Delete a service",
        "description" : "Deletes a service (soft delete)",
        "operationId" : "deleteService",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Service ID to delete",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Service deleted successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal server error"
          },
          "404" : {
            "description" : "Service not found"
          }
        }
      }
    },
    "/api/v1/service/{id}/restore" : {
      "put" : {
        "tags" : [ "Services" ],
        "summary" : "Restore a service",
        "description" : "Restores a soft-deleted service and reactivates it",
        "operationId" : "restoreService",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Service ID to restore",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/types/{id}" : {
      "get" : {
        "tags" : [ "Business Types" ],
        "summary" : "Get type by ID",
        "description" : "Retrieves a specific service type by its ID",
        "operationId" : "getTypeById",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Type ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "60f7b3b3b3b3b3b3b3b3b3b3"
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Type found successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TypeResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Type not found"
          }
        }
      },
      "put" : {
        "tags" : [ "Business Types" ],
        "summary" : "Update a type",
        "description" : "Updates an existing business type with new information",
        "operationId" : "updateType",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Type ID to update",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateTypeRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "400" : {
            "description" : "Invalid input data"
          },
          "200" : {
            "description" : "Type updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TypeResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Type not found"
          }
        }
      },
      "delete" : {
        "tags" : [ "Business Types" ],
        "summary" : "Delete a type",
        "description" : "Soft deletes a business type (marks as inactive/deleted without permanent removal)",
        "operationId" : "deleteType",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Type ID to delete",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Type deleted successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal server error"
          },
          "404" : {
            "description" : "Type not found"
          }
        }
      }
    },
    "/api/v1/service/types/{id}/restore" : {
      "put" : {
        "tags" : [ "Business Types" ],
        "summary" : "Restore a type",
        "description" : "Restores a soft-deleted type and reactivates it",
        "operationId" : "restoreType",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Type ID to restore",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseTypeResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/{packageId}" : {
      "get" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Get package by ID",
        "description" : "Retrieves a service package by its unique identifier",
        "operationId" : "getPackageById",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "404" : {
            "description" : "Package not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "Package retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Update service package",
        "description" : "Updates an existing service package with new data",
        "operationId" : "updatePackage",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package ID to update",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "description" : "User ID updating the package",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "system"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdatePackageRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Package updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Package not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Delete package",
        "description" : "Performs a soft delete on a package, marking it as deleted while preserving data for audit trails",
        "operationId" : "deletePackage",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "description" : "User ID performing the deletion",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "system"
          }
        } ],
        "responses" : {
          "409" : {
            "description" : "Cannot delete package with active bookings",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          },
          "404" : {
            "description" : "Package not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          },
          "200" : {
            "description" : "Package deleted successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/{packageId}/restore" : {
      "put" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Restore deleted package",
        "description" : "Restores a soft-deleted package back to active state with draft status for review",
        "operationId" : "restorePackage",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "description" : "User ID performing the restoration",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "system"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Package restored successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Package not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Package is not deleted",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options/{optionId}" : {
      "get" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Get option by ID",
        "description" : "Retrieves a package option by its unique identifier with full configuration details",
        "operationId" : "getOptionById",
        "parameters" : [ {
          "name" : "optionId",
          "in" : "path",
          "description" : "Option unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "includePackageName",
          "in" : "query",
          "description" : "Include package name in response",
          "required" : false,
          "schema" : {
            "type" : "boolean",
            "default" : true
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Option retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePackageOption"
                }
              }
            }
          },
          "404" : {
            "description" : "Option not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePackageOption"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Update package option",
        "description" : "Updates an existing package option with new configurations, choices, and settings",
        "operationId" : "updateOption",
        "parameters" : [ {
          "name" : "optionId",
          "in" : "path",
          "description" : "Option unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "description" : "User ID performing the update",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "system"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdatePackageOptionRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Option updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePackageOption"
                }
              }
            }
          },
          "400" : {
            "description" : "Invalid request data",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePackageOption"
                }
              }
            }
          },
          "404" : {
            "description" : "Option not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePackageOption"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Delete option",
        "description" : "Performs a soft delete on an option, marking it as deleted while preserving data for audit trails",
        "operationId" : "deleteOption",
        "parameters" : [ {
          "name" : "optionId",
          "in" : "path",
          "description" : "Option unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "description" : "User ID performing the deletion",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "system"
          }
        } ],
        "responses" : {
          "409" : {
            "description" : "Cannot delete option in use",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          },
          "200" : {
            "description" : "Option deleted successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          },
          "404" : {
            "description" : "Option not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options/{optionId}/restore" : {
      "put" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Restore option",
        "description" : "Restores a soft-deleted parts group and reactivates it",
        "operationId" : "restoreOption",
        "parameters" : [ {
          "name" : "optionId",
          "in" : "path",
          "description" : "Option unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "description" : "User ID performing the restore",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "system"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePackageOption"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-option-items/{id}" : {
      "get" : {
        "tags" : [ "Package Option Items" ],
        "summary" : "Get package option item by ID",
        "operationId" : "getItemById",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePartItemResponse"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Package Option Items" ],
        "summary" : "Update package option item",
        "operationId" : "updateItem",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/PartItemRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePartItemResponse"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Package Option Items" ],
        "summary" : "Delete package option item",
        "operationId" : "deleteItem",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-option-items/{id}/restore" : {
      "put" : {
        "tags" : [ "Package Option Items" ],
        "summary" : "Restore package option item",
        "operationId" : "restoreItem",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePartItemResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/faqs/{id}" : {
      "get" : {
        "tags" : [ "General FAQ Management" ],
        "summary" : "Get FAQ by ID",
        "operationId" : "getFAQById",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseFAQResponse"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "General FAQ Management" ],
        "summary" : "Update FAQ",
        "operationId" : "updateFAQ",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateFAQRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseFAQResponse"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "General FAQ Management" ],
        "summary" : "Delete FAQ",
        "operationId" : "deleteFAQ",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/departments/{id}" : {
      "get" : {
        "tags" : [ "Departments" ],
        "summary" : "Get department by ID",
        "description" : "Retrieves a department by ID",
        "operationId" : "getDepartmentById",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Department ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseDepartmentResponse"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Departments" ],
        "summary" : "Update a department",
        "description" : "Updates a department",
        "operationId" : "updateDepartment",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Department ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateDepartmentRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseDepartmentResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/categories/{id}" : {
      "get" : {
        "tags" : [ "Service Categories" ],
        "summary" : "Get category by ID",
        "description" : "Retrieves a specific category by its unique identifier",
        "operationId" : "getCategoryById",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Category ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "507f1f77bcf86cd799439011"
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Category found successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Category not found"
          }
        }
      },
      "put" : {
        "tags" : [ "Service Categories" ],
        "summary" : "Update a category",
        "description" : "Updates an existing category with new information",
        "operationId" : "updateCategory",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Category ID to update",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "507f1f77bcf86cd799439011"
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateCategoryRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "400" : {
            "description" : "Invalid input data"
          },
          "200" : {
            "description" : "Category updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Category not found"
          }
        }
      },
      "delete" : {
        "tags" : [ "Service Categories" ],
        "summary" : "Delete a category",
        "description" : "Soft deletes a category (marks as inactive/deleted without permanent removal)",
        "operationId" : "deleteCategory",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Category ID to delete",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "507f1f77bcf86cd799439011"
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "404" : {
            "description" : "Category not found"
          },
          "200" : {
            "description" : "Category deleted successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/categories/{id}/restore" : {
      "put" : {
        "tags" : [ "Service Categories" ],
        "summary" : "Restore a category",
        "description" : "Restores a soft-deleted category and reactivates it",
        "operationId" : "restoreCategory",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Category ID to restore",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseCategoryResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/categories/{id}/featured" : {
      "put" : {
        "tags" : [ "Service Categories" ],
        "summary" : "Toggle category featured status",
        "description" : "Toggles the featured status of a category",
        "operationId" : "toggleCategoryFeatured",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Category ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "507f1f77bcf86cd799439011"
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Category featured status toggled successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal server error"
          },
          "404" : {
            "description" : "Category not found"
          }
        }
      }
    },
    "/api/v1/service/brands/{id}" : {
      "get" : {
        "tags" : [ "Brands" ],
        "summary" : "Get brand by ID",
        "description" : "Retrieves a specific brand by its ID",
        "operationId" : "getBrandById",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Brand ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Brand retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Brand not found"
          },
          "500" : {
            "description" : "Internal server error"
          }
        }
      },
      "put" : {
        "tags" : [ "Brands" ],
        "summary" : "Update brand",
        "description" : "Updates an existing brand",
        "operationId" : "updateBrand",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Brand ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateBrandRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "404" : {
            "description" : "Brand not found"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "400" : {
            "description" : "Invalid input data"
          },
          "200" : {
            "description" : "Brand updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Brands" ],
        "summary" : "Delete brand",
        "description" : "Soft deletes a brand (marks as deleted)",
        "operationId" : "deleteBrand",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Brand ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Brand deleted successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Brand not found"
          },
          "500" : {
            "description" : "Internal server error"
          }
        }
      }
    },
    "/api/v1/service/brands/{id}/featured" : {
      "put" : {
        "tags" : [ "Brands" ],
        "summary" : "Toggle brand featured status",
        "description" : "Toggles the featured status of a brand",
        "operationId" : "toggleFeaturedStatus",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Brand ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Brand featured status updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Brand not found"
          },
          "500" : {
            "description" : "Internal server error"
          }
        }
      }
    },
    "/api/v1/service/blogs/{id}" : {
      "get" : {
        "tags" : [ "blog-post-controller" ],
        "operationId" : "getBlogPostById",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseBlogPostResponse"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "blog-post-controller" ],
        "operationId" : "updateBlogPost",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateBlogPostRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseBlogPostResponse"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "blog-post-controller" ],
        "operationId" : "deleteBlogPost",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/banners/{id}" : {
      "get" : {
        "tags" : [ "Banners" ],
        "summary" : "Get banner by ID",
        "description" : "Retrieves a specific banner by its ID",
        "operationId" : "getBannerById",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Banner ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseBannerResponse"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Banners" ],
        "summary" : "Update banner",
        "description" : "Updates an existing banner",
        "operationId" : "updateBanner",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Banner ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateBannerRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseBannerResponse"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Banners" ],
        "summary" : "Delete banner",
        "description" : "Soft deletes a banner (marks as deleted)",
        "operationId" : "deleteBanner",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Banner ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/banners/{id}/status" : {
      "put" : {
        "tags" : [ "Banners" ],
        "summary" : "Update banner status with query parameter",
        "description" : "Updates the status of a banner using query parameter",
        "operationId" : "updateBannerStatusQuery",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Banner ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "status",
          "in" : "query",
          "description" : "Banner status",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseBannerResponse"
                }
              }
            }
          }
        }
      },
      "patch" : {
        "tags" : [ "Banners" ],
        "summary" : "Update banner status with request body",
        "description" : "Updates the status of a banner using request body",
        "operationId" : "updateBannerStatusBody",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Banner ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "object",
                "additionalProperties" : {
                  "type" : "object"
                },
                "description" : "Status update request"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseBannerResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/banners/{id}/featured" : {
      "put" : {
        "tags" : [ "Banners" ],
        "summary" : "Toggle banner featured status",
        "description" : "Toggles the featured status of a banner",
        "operationId" : "toggleFeaturedStatus_1",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Banner ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseBannerResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/sections/{id}" : {
      "get" : {
        "tags" : [ "Section Management" ],
        "summary" : "Get section by ID",
        "operationId" : "getSectionById",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseSection"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Section Management" ],
        "summary" : "Update section",
        "operationId" : "updateSection",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cityId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "settings",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "heroImages",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "binary"
            }
          }
        } ],
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "type" : "object",
                "properties" : {
                  "heroVideo" : {
                    "type" : "string",
                    "format" : "binary"
                  },
                  "bannerImage" : {
                    "type" : "string",
                    "format" : "binary"
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseSection"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Section Management" ],
        "summary" : "Delete section",
        "operationId" : "deleteSection",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/products/{id}" : {
      "get" : {
        "tags" : [ "Products" ],
        "summary" : "Get product by ID",
        "description" : "Retrieves a specific product by its unique identifier",
        "operationId" : "getProductById",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Product ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "507f1f77bcf86cd799439011"
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Product found successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Product not found"
          }
        }
      },
      "put" : {
        "tags" : [ "Products" ],
        "summary" : "Update a product",
        "description" : "Updates an existing product with new information",
        "operationId" : "updateProduct",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Product ID to update",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "507f1f77bcf86cd799439011"
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateProductRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "400" : {
            "description" : "Invalid input data"
          },
          "200" : {
            "description" : "Product updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Product not found"
          }
        }
      },
      "delete" : {
        "tags" : [ "Products" ],
        "summary" : "Delete a product",
        "description" : "Soft deletes a product (marks as inactive/deleted without permanent removal)",
        "operationId" : "deleteProduct",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Product ID to delete",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "507f1f77bcf86cd799439011"
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Product deleted successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal server error"
          },
          "404" : {
            "description" : "Product not found"
          }
        }
      }
    },
    "/api/v1/product-categories/{id}" : {
      "get" : {
        "tags" : [ "Product Categories" ],
        "summary" : "Get product category by ID",
        "description" : "Retrieves a specific product category by its unique identifier",
        "operationId" : "getProductCategoryById",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Product category ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "507f1f77bcf86cd799439011"
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "404" : {
            "description" : "Product category not found"
          },
          "200" : {
            "description" : "Product category found successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Product Categories" ],
        "summary" : "Update a product category",
        "description" : "Updates an existing product category with new information",
        "operationId" : "updateProductCategory",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Product category ID to update",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "507f1f77bcf86cd799439011"
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateProductCategoryRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Product category updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal server error"
          },
          "400" : {
            "description" : "Invalid input data"
          },
          "404" : {
            "description" : "Product category not found"
          }
        }
      },
      "delete" : {
        "tags" : [ "Product Categories" ],
        "summary" : "Delete a product category",
        "description" : "Soft deletes a product category (marks as inactive/deleted without permanent removal)",
        "operationId" : "deleteProductCategory",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Product category ID to delete",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "507f1f77bcf86cd799439011"
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "404" : {
            "description" : "Product category not found"
          },
          "200" : {
            "description" : "Product category deleted successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/inventory/{id}" : {
      "get" : {
        "tags" : [ "Inventory Management" ],
        "summary" : "Get inventory by ID",
        "description" : "Retrieves a specific inventory record by its ID",
        "operationId" : "getInventoryById",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Inventory ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "404" : {
            "description" : "Inventory not found"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Inventory found successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Inventory Management" ],
        "summary" : "Update inventory",
        "description" : "Updates an existing inventory record",
        "operationId" : "updateInventory",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Inventory ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateInventoryRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Inventory updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Inventory not found"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "400" : {
            "description" : "Invalid input data"
          }
        }
      },
      "delete" : {
        "tags" : [ "Inventory Management" ],
        "summary" : "Delete inventory",
        "description" : "Deletes an inventory record",
        "operationId" : "deleteInventory",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Inventory ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "404" : {
            "description" : "Inventory not found"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Inventory deleted successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/home-page-sections/{sectionId}" : {
      "get" : {
        "tags" : [ "Home Page Sections" ],
        "summary" : "Get a specific section by city and section ID",
        "operationId" : "getSection",
        "parameters" : [ {
          "name" : "sectionId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cityId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseHomePageSection"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Home Page Sections" ],
        "summary" : "Update or create a section with files",
        "operationId" : "updateSection_1",
        "parameters" : [ {
          "name" : "sectionId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cityId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "settings",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "isVisible",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "heroImages",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "binary"
            }
          }
        } ],
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "type" : "object",
                "properties" : {
                  "heroVideo" : {
                    "type" : "string",
                    "format" : "binary"
                  },
                  "bannerImage" : {
                    "type" : "string",
                    "format" : "binary"
                  },
                  "appDownloadImage" : {
                    "type" : "string",
                    "format" : "binary"
                  },
                  "aboutContentImage" : {
                    "type" : "string",
                    "format" : "binary"
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseHomePageSection"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/carts/{cartId}/items/{itemId}" : {
      "put" : {
        "tags" : [ "Cart Management" ],
        "summary" : "Update cart item",
        "description" : "Updates cart item details like variant, service date, etc.",
        "operationId" : "updateCartItem",
        "parameters" : [ {
          "name" : "cartId",
          "in" : "path",
          "description" : "Cart ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "itemId",
          "in" : "path",
          "description" : "Cart item ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateCartItemRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "404" : {
            "description" : "Cart or item not found"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "400" : {
            "description" : "Invalid input data"
          },
          "200" : {
            "description" : "Item updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Cart Management" ],
        "summary" : "Remove item from cart",
        "description" : "Removes a specific item from the shopping cart",
        "operationId" : "removeCartItem",
        "parameters" : [ {
          "name" : "cartId",
          "in" : "path",
          "description" : "Cart ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "itemId",
          "in" : "path",
          "description" : "Cart item ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "404" : {
            "description" : "Cart or item not found"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Item removed successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/carts/{cartId}/items/{itemId}/quantity" : {
      "put" : {
        "tags" : [ "Cart Management" ],
        "summary" : "Update cart item quantity",
        "description" : "Updates the quantity of a specific item in the cart",
        "operationId" : "updateCartItemQuantity",
        "parameters" : [ {
          "name" : "cartId",
          "in" : "path",
          "description" : "Cart ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "itemId",
          "in" : "path",
          "description" : "Cart item ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "quantity",
          "in" : "query",
          "description" : "New quantity",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "404" : {
            "description" : "Cart or item not found"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Item quantity updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Invalid quantity or insufficient stock"
          }
        }
      }
    },
    "/api/v1/carts/{cartId}/delivery" : {
      "put" : {
        "tags" : [ "Cart Management" ],
        "summary" : "Update delivery information",
        "description" : "Updates delivery address, type, and preferences for the cart",
        "operationId" : "updateDeliveryInfo",
        "parameters" : [ {
          "name" : "cartId",
          "in" : "path",
          "description" : "Cart ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateDeliveryInfoRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "404" : {
            "description" : "Cart not found"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "400" : {
            "description" : "Invalid delivery information"
          },
          "200" : {
            "description" : "Delivery information updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-visits/{visitId}" : {
      "get" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Get visit by ID",
        "description" : "Retrieves a service visit by its ID",
        "operationId" : "getVisitById",
        "parameters" : [ {
          "name" : "visitId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceVisitResponse"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Update service visit",
        "description" : "Updates an existing service visit",
        "operationId" : "updateVisit",
        "parameters" : [ {
          "name" : "visitId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateServiceVisitRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceVisitResponse"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Delete service visit",
        "description" : "Deletes a service visit (only if in scheduled status)",
        "operationId" : "deleteVisit",
        "parameters" : [ {
          "name" : "visitId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings/{bookingId}" : {
      "get" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Get booking by ID",
        "description" : "Retrieves a service booking by its ID",
        "operationId" : "getBookingById",
        "parameters" : [ {
          "name" : "bookingId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceBookingResponse"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Update service booking",
        "description" : "Updates an existing service booking",
        "operationId" : "updateBooking",
        "parameters" : [ {
          "name" : "bookingId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateServiceBookingRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceBookingResponse"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Delete service booking",
        "description" : "Deletes a service booking (only if in pending or cancelled status)",
        "operationId" : "deleteBooking",
        "parameters" : [ {
          "name" : "bookingId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/{saleId}" : {
      "get" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Get sale by ID",
        "description" : "Retrieves a sale by its ID",
        "operationId" : "getSaleById",
        "parameters" : [ {
          "name" : "saleId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseSaleResponse"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Update sale",
        "description" : "Updates an existing sale",
        "operationId" : "updateSale",
        "parameters" : [ {
          "name" : "saleId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateSaleRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseSaleResponse"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Delete sale",
        "description" : "Deletes a sale (only if not completed)",
        "operationId" : "deleteSale",
        "parameters" : [ {
          "name" : "saleId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/{requestId}" : {
      "get" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Get revisit request by ID",
        "description" : "Retrieves a revisit request by its ID",
        "operationId" : "getRevisitRequestById",
        "parameters" : [ {
          "name" : "requestId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseRevisitRequestResponse"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Update revisit request",
        "description" : "Updates an existing revisit request",
        "operationId" : "updateRevisitRequest",
        "parameters" : [ {
          "name" : "requestId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateRevisitRequestRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseRevisitRequestResponse"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Delete revisit request",
        "description" : "Deletes a revisit request (only if in requested status)",
        "operationId" : "deleteRevisitRequest",
        "parameters" : [ {
          "name" : "requestId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}" : {
      "get" : {
        "tags" : [ "Order Management" ],
        "summary" : "Get order by ID",
        "description" : "Retrieves an order by its ID",
        "operationId" : "getOrderById",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderResponse"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Order Management" ],
        "summary" : "Update order",
        "description" : "Updates an existing order",
        "operationId" : "updateOrder",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateOrderRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderResponse"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Order Management" ],
        "summary" : "Delete order",
        "description" : "Deletes an order (only if in pending or cancelled status)",
        "operationId" : "deleteOrder",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/items/{itemId}" : {
      "put" : {
        "tags" : [ "Order Management" ],
        "summary" : "Update order item",
        "description" : "Updates an existing order item",
        "operationId" : "updateOrderItem",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "itemId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateOrderItemRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderItemResponse"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Order Management" ],
        "summary" : "Remove order item",
        "description" : "Removes an item from an order",
        "operationId" : "removeOrderItem",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "itemId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/items/{itemId}/quantity" : {
      "put" : {
        "tags" : [ "Order Management" ],
        "summary" : "Update order item quantity",
        "description" : "Updates the quantity of an order item",
        "operationId" : "updateOrderItemQuantity",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "itemId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "quantity",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderItemResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/upload/merge" : {
      "post" : {
        "tags" : [ "chunk-upload-controller" ],
        "operationId" : "mergeChunks",
        "parameters" : [ {
          "name" : "uploadId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "totalChunks",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "fileName",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "folder",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "hero"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseMapStringObject"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/upload/chunk" : {
      "post" : {
        "tags" : [ "chunk-upload-controller" ],
        "operationId" : "uploadChunk",
        "parameters" : [ {
          "name" : "uploadId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "chunkIndex",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "totalChunks",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "fileName",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "required" : [ "chunk" ],
                "type" : "object",
                "properties" : {
                  "chunk" : {
                    "type" : "string",
                    "format" : "binary"
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseMapStringObject"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service" : {
      "get" : {
        "tags" : [ "Services" ],
        "summary" : "Get all services",
        "description" : "Retrieves all services with pagination, filtering, and sorting options",
        "operationId" : "getAllServices",
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "description" : "Page number (0-based)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 0
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 10
          },
          "example" : 10
        }, {
          "name" : "sortBy",
          "in" : "query",
          "description" : "Sort field",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "name"
          },
          "example" : "name"
        }, {
          "name" : "sortDir",
          "in" : "query",
          "description" : "Sort direction",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "asc"
          },
          "example" : "asc"
        }, {
          "name" : "status",
          "in" : "query",
          "description" : "Filter by status",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT", "OUT_OF_STOCK", "SEASONAL" ]
          }
        }, {
          "name" : "typeId",
          "in" : "query",
          "description" : "Filter by type ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "categoryId",
          "in" : "query",
          "description" : "Filter by category ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "departmentId",
          "in" : "query",
          "description" : "Filter by department ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "categorySlug",
          "in" : "query",
          "description" : "Filter by category Slug",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "search",
          "in" : "query",
          "description" : "Search term",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "featured",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "cityId",
          "in" : "query",
          "description" : "Filter by city ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "includeDeleted",
          "in" : "query",
          "description" : "Include deleted rows in the response",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "deletedOnly",
          "in" : "query",
          "description" : "Return only deleted rows",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Services retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Services" ],
        "summary" : "Create a new service",
        "description" : "Creates a new service with the provided information",
        "operationId" : "createService",
        "parameters" : [ {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateServiceRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "201" : {
            "description" : "Service created successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ServiceResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Invalid input data"
          },
          "409" : {
            "description" : "Service name or slug already exists"
          }
        }
      }
    },
    "/api/v1/service/upload/video" : {
      "post" : {
        "tags" : [ "Services" ],
        "summary" : "Upload service video",
        "description" : "Uploads a video file for a service",
        "operationId" : "uploadServiceVideo",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "required" : [ "file" ],
                "type" : "object",
                "properties" : {
                  "file" : {
                    "type" : "string",
                    "description" : "Video file to upload",
                    "format" : "binary"
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseString"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/types" : {
      "get" : {
        "tags" : [ "Business Types" ],
        "summary" : "Get all service types",
        "description" : "Retrieves all service types with pagination, filtering, and sorting options",
        "operationId" : "getAllTypes",
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "description" : "Page number (0-based)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 0
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 10
          },
          "example" : 10
        }, {
          "name" : "sortBy",
          "in" : "query",
          "description" : "Sort field",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "name"
          },
          "example" : "name"
        }, {
          "name" : "sortDir",
          "in" : "query",
          "description" : "Sort direction",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "asc"
          },
          "example" : "asc"
        }, {
          "name" : "status",
          "in" : "query",
          "description" : "Filter by status",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT" ]
          }
        }, {
          "name" : "search",
          "in" : "query",
          "description" : "Search term",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "featured",
          "in" : "query",
          "description" : "Filter featured types",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "cityId",
          "in" : "query",
          "description" : "Filter by city ID - returns only types available in the specified city",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "includeDeleted",
          "in" : "query",
          "description" : "Include deleted rows in the response",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "deletedOnly",
          "in" : "query",
          "description" : "Return only deleted rows",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Types retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Business Types" ],
        "summary" : "Create a new service type",
        "description" : "Creates a new business type like 'AC & Appliance Repair', 'Beauty & Wellness', etc.",
        "operationId" : "createType",
        "parameters" : [ {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateTypeRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "400" : {
            "description" : "Invalid input data"
          },
          "201" : {
            "description" : "Type created successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TypeResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages" : {
      "get" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Get all service packages with pagination",
        "description" : "Retrieves all service packages with comprehensive pagination, sorting, searching and advanced filtering. Returns PagedResponse with complete metadata.",
        "operationId" : "getAllPackages",
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "description" : "Page number (0-based)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Number of items per page",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 10
          }
        }, {
          "name" : "sort",
          "in" : "query",
          "description" : "Sort parameter (field,direction)",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "createdAt,desc"
          }
        }, {
          "name" : "search",
          "in" : "query",
          "description" : "Search query (name, description, code)",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "serviceId",
          "in" : "query",
          "description" : "Filter by service ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "typeId",
          "in" : "query",
          "description" : "Filter by type ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "categoryId",
          "in" : "query",
          "description" : "Filter by category ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "subCategoryId",
          "in" : "query",
          "description" : "Filter by subcategory ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "packageType",
          "in" : "query",
          "description" : "Filter by package type",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "BUNDLE", "LUXURY", "BASIC", "STANDARD", "PREMIUM", "DELUXE", "COMBO", "SUBSCRIPTION", "TRIAL", "CUSTOM", "SUB_PACKAGE" ]
          }
        }, {
          "name" : "status",
          "in" : "query",
          "description" : "Filter by status",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT", "OUT_OF_STOCK", "DISCONTINUED" ]
          }
        }, {
          "name" : "featured",
          "in" : "query",
          "description" : "Filter by featured flag",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "popular",
          "in" : "query",
          "description" : "Filter by popular flag",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "bookable",
          "in" : "query",
          "description" : "Filter by bookable flag",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "hasOffer",
          "in" : "query",
          "description" : "Filter by offer availability",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "minPrice",
          "in" : "query",
          "description" : "Minimum price filter",
          "required" : false,
          "schema" : {
            "type" : "number",
            "format" : "double"
          }
        }, {
          "name" : "maxPrice",
          "in" : "query",
          "description" : "Maximum price filter",
          "required" : false,
          "schema" : {
            "type" : "number",
            "format" : "double"
          }
        }, {
          "name" : "includeDeleted",
          "in" : "query",
          "description" : "Include deleted packages",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "deletedOnly",
          "in" : "query",
          "description" : "Show only deleted packages",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "includeOptionCount",
          "in" : "query",
          "description" : "Include package option count",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "cityId",
          "in" : "query",
          "description" : "Filter by city ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "parentId",
          "in" : "query",
          "description" : "Filter by parent package ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "subPackagesOnly",
          "in" : "query",
          "description" : "Show only sub-packages",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "topLevelOnly",
          "in" : "query",
          "description" : "Show only top-level packages",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Paginated packages retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePagedResponseServicePackageResponse"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Create a new service package",
        "description" : "Creates a new customizable service package with options and pricing",
        "operationId" : "createPackage",
        "parameters" : [ {
          "name" : "X-User-ID",
          "in" : "header",
          "description" : "User ID creating the package",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "system"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreatePackageRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "Package created successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ServicePackageResponse"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal server error",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Invalid request data",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/{packageId}/images" : {
      "post" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Upload package images",
        "description" : "Uploads multiple images for a service package",
        "operationId" : "uploadPackageImages",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "description" : "User ID",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "system"
          }
        } ],
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "required" : [ "files" ],
                "type" : "object",
                "properties" : {
                  "files" : {
                    "type" : "array",
                    "description" : "Image files",
                    "items" : {
                      "type" : "string",
                      "format" : "binary"
                    }
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "Images uploaded successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/{packageId}/clone" : {
      "post" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Clone package",
        "description" : "Creates a duplicate copy of an existing package with a new name, preserving all configurations and options",
        "operationId" : "clonePackage",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier to clone",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "newName",
          "in" : "query",
          "description" : "New name for the cloned package",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "description" : "User ID performing the cloning",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "system"
          }
        } ],
        "responses" : {
          "201" : {
            "description" : "Package cloned successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          },
          "409" : {
            "description" : "Package name already exists",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Original package not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/update-expired-offers" : {
      "post" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Update expired offers",
        "description" : "Batch processes and updates all packages with expired promotional offers, automatically disabling them",
        "operationId" : "updateExpiredOffers",
        "responses" : {
          "200" : {
            "description" : "Expired offers updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options" : {
      "get" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Get all package options",
        "description" : "Retrieves package options with pagination, sorting, and filtering by packageId",
        "operationId" : "getAllOptions",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "query",
          "description" : "Filter by package ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "subPackageId",
          "in" : "query",
          "description" : "Filter by exact sub-package ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "typeId",
          "in" : "query",
          "description" : "Filter by type ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "categoryId",
          "in" : "query",
          "description" : "Filter by category ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "serviceId",
          "in" : "query",
          "description" : "Filter by service ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cityId",
          "in" : "query",
          "description" : "Filter by city ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "search",
          "in" : "query",
          "description" : "Search by group name or description",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "optionGroupName",
          "in" : "query",
          "description" : "Legacy search by group name",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "optionType",
          "in" : "query",
          "description" : "Filter by option type",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "SINGLE_CHOICE", "MULTIPLE_CHOICE", "QUANTITY", "ADD_ON", "TEXT_INPUT", "DROPDOWN", "RANGE_SLIDER", "DATE_PICKER", "TIME_PICKER" ]
          }
        }, {
          "name" : "status",
          "in" : "query",
          "description" : "Filter by status",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT", "OUT_OF_STOCK", "SEASONAL", "COMING_SOON", "DISCONTINUED" ]
          }
        }, {
          "name" : "isRequired",
          "in" : "query",
          "description" : "Filter by required flag",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "isMultipleSelection",
          "in" : "query",
          "description" : "Filter by multiple selection flag",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "includeDeleted",
          "in" : "query",
          "description" : "Include deleted rows in the response",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "deletedOnly",
          "in" : "query",
          "description" : "Return only deleted rows",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "includePackageName",
          "in" : "query",
          "description" : "Include package name in response",
          "required" : false,
          "schema" : {
            "type" : "boolean",
            "default" : true
          }
        }, {
          "name" : "summaryOnly",
          "in" : "query",
          "description" : "Return list-optimized summary rows only",
          "required" : false,
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number (0-based)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Number of items per page",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 10
          }
        }, {
          "name" : "sort",
          "in" : "query",
          "description" : "Sort parameter (field-direction)",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "created-desc"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Options retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseObject"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Create package option",
        "description" : "Creates a new customizable option group with single or multi-select configurations",
        "operationId" : "createOption",
        "parameters" : [ {
          "name" : "X-User-ID",
          "in" : "header",
          "description" : "User ID creating the option",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "system"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreatePackageOptionRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "Option created successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PackageOption"
                }
              }
            }
          },
          "400" : {
            "description" : "Invalid request data",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePackageOption"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options/{optionId}/clone" : {
      "post" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Clone option",
        "description" : "Creates a duplicate copy of an existing option with a new group name, preserving all configurations and choices",
        "operationId" : "cloneOption",
        "parameters" : [ {
          "name" : "optionId",
          "in" : "path",
          "description" : "Option unique identifier to clone",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "newGroupName",
          "in" : "query",
          "description" : "New group name for the cloned option",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "description" : "User ID performing the cloning",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "system"
          }
        } ],
        "responses" : {
          "404" : {
            "description" : "Original option not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePackageOption"
                }
              }
            }
          },
          "201" : {
            "description" : "Option cloned successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePackageOption"
                }
              }
            }
          },
          "409" : {
            "description" : "Group name already exists",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePackageOption"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options/package/{packageId}/validate" : {
      "post" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Validate option choices",
        "description" : "Validates user selections for required options and business rules",
        "operationId" : "validateOptionChoices",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "description" : "Selected choice values",
                "items" : {
                  "type" : "string"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Validation completed",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseMapStringObject"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options/import" : {
      "post" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Import parts groups and parts from workbook",
        "description" : "Validates or imports parts groups and parts from a scoped XLSX workbook",
        "operationId" : "importPackageOptions",
        "parameters" : [ {
          "name" : "dryRun",
          "in" : "query",
          "description" : "Run validation only",
          "required" : false,
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        }, {
          "name" : "packageId",
          "in" : "query",
          "description" : "Filter by package ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "subPackageId",
          "in" : "query",
          "description" : "Filter by sub-package ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "typeId",
          "in" : "query",
          "description" : "Filter by type ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "categoryId",
          "in" : "query",
          "description" : "Filter by category ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "serviceId",
          "in" : "query",
          "description" : "Filter by service ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cityId",
          "in" : "query",
          "description" : "Filter by city ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "system"
          }
        } ],
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "required" : [ "file" ],
                "type" : "object",
                "properties" : {
                  "file" : {
                    "type" : "string",
                    "description" : "XLSX import file",
                    "format" : "binary"
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePackageOptionBulkImportResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options/bulk-delete" : {
      "post" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Bulk delete options",
        "description" : "Soft deletes multiple parts groups",
        "operationId" : "bulkDeleteOptions",
        "parameters" : [ {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "system"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "object",
                "additionalProperties" : {
                  "type" : "array",
                  "items" : {
                    "type" : "string"
                  }
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-option-items" : {
      "get" : {
        "tags" : [ "Package Option Items" ],
        "summary" : "Get package option items",
        "description" : "Get paginated items with optional search and status filters",
        "operationId" : "getItems",
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 10
          }
        }, {
          "name" : "search",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "status",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "itemType",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cityId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "typeId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "categoryId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "serviceId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "packageId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "minPrice",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "number",
            "format" : "double"
          }
        }, {
          "name" : "maxPrice",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "number",
            "format" : "double"
          }
        }, {
          "name" : "includeDeleted",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "deletedOnly",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePagePartItemResponse"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Package Option Items" ],
        "summary" : "Create package option item",
        "operationId" : "createItem",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/PartItemRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePartItemResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/faqs" : {
      "get" : {
        "tags" : [ "General FAQ Management" ],
        "summary" : "Get all FAQs (paged)",
        "operationId" : "getAllFAQs",
        "parameters" : [ {
          "name" : "pageable",
          "in" : "query",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/Pageable"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePageFAQResponse"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "General FAQ Management" ],
        "summary" : "Create new FAQ",
        "operationId" : "createFAQ",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateFAQRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseFAQResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/departments" : {
      "get" : {
        "tags" : [ "Departments" ],
        "summary" : "Get all departments",
        "description" : "Retrieves all departments",
        "operationId" : "getAllDepartments",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListDepartmentResponse"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Departments" ],
        "summary" : "Create a new department",
        "description" : "Creates a new department",
        "operationId" : "createDepartment",
        "parameters" : [ {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateDepartmentRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "400" : {
            "description" : "Invalid input data"
          },
          "201" : {
            "description" : "Department created successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/city-home-pages" : {
      "post" : {
        "tags" : [ "City Home Page Management" ],
        "summary" : "Create or update city home page settings",
        "operationId" : "saveHomePage",
        "parameters" : [ {
          "name" : "cityId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "settings",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "heroImages",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "binary"
            }
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "object",
                "properties" : {
                  "bannerImage" : {
                    "type" : "string",
                    "format" : "binary"
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseCityHomePage"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/categories" : {
      "get" : {
        "tags" : [ "Service Categories" ],
        "summary" : "Get all service categories",
        "description" : "Retrieves paginated categories with optional filtering by type, parent, status. Defaults to Level 0 (root) categories with nested subcategories structure.",
        "operationId" : "getAllCategories",
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "description" : "Page number for pagination (0-based)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 0
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Number of items per page",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 10
          },
          "example" : 10
        }, {
          "name" : "sortBy",
          "in" : "query",
          "description" : "Sort field name",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "name"
          },
          "example" : "name"
        }, {
          "name" : "sortDir",
          "in" : "query",
          "description" : "Sort direction",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "asc"
          },
          "example" : "asc"
        }, {
          "name" : "typeId",
          "in" : "query",
          "description" : "Filter by business type ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "parentId",
          "in" : "query",
          "description" : "Filter by parent category ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "status",
          "in" : "query",
          "description" : "Filter by category status",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT" ]
          }
        }, {
          "name" : "search",
          "in" : "query",
          "description" : "Search term for category name",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "isFeatured",
          "in" : "query",
          "description" : "Filter by featured status",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "level",
          "in" : "query",
          "description" : "Filter by hierarchy level",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "departmentId",
          "in" : "query",
          "description" : "Filter by department ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cityId",
          "in" : "query",
          "description" : "Filter by city ID - returns only categories available in the specified city",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "includeDeleted",
          "in" : "query",
          "description" : "Include deleted rows in the response",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "deletedOnly",
          "in" : "query",
          "description" : "Return only deleted rows",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Categories retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Service Categories" ],
        "summary" : "Create a new service category",
        "description" : "Creates a new category under a business type with hierarchical support",
        "operationId" : "createCategory",
        "parameters" : [ {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateCategoryRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Invalid input data or missing type ID"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "201" : {
            "description" : "Category created successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/categories/{id}/image" : {
      "post" : {
        "tags" : [ "Service Categories" ],
        "summary" : "Upload category image",
        "description" : "Uploads an image file for a category with optional alt text",
        "operationId" : "uploadCategoryImage",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Category ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "507f1f77bcf86cd799439011"
        }, {
          "name" : "alt",
          "in" : "query",
          "description" : "Alternative text for the image",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "required" : [ "file" ],
                "type" : "object",
                "properties" : {
                  "file" : {
                    "type" : "string",
                    "description" : "Image file to upload",
                    "format" : "binary"
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "404" : {
            "description" : "Category not found"
          },
          "400" : {
            "description" : "Invalid file or empty file"
          },
          "200" : {
            "description" : "Image uploaded successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ImageUploadResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/brands" : {
      "get" : {
        "tags" : [ "Brands" ],
        "summary" : "Get all brands",
        "description" : "Retrieves all brands with optional filtering, sorting, and pagination",
        "operationId" : "getAllBrands",
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "description" : "Page number (0-based)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 10
          }
        }, {
          "name" : "sortBy",
          "in" : "query",
          "description" : "Sort field",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "name"
          }
        }, {
          "name" : "sortDir",
          "in" : "query",
          "description" : "Sort direction",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "asc"
          }
        }, {
          "name" : "search",
          "in" : "query",
          "description" : "Search term",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "status",
          "in" : "query",
          "description" : "Filter by status",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DRAFT" ]
          }
        }, {
          "name" : "featured",
          "in" : "query",
          "description" : "Filter by featured status",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Brands retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal server error"
          }
        }
      },
      "post" : {
        "tags" : [ "Brands" ],
        "summary" : "Create a new brand",
        "description" : "Creates a new brand with all necessary information",
        "operationId" : "createBrand",
        "parameters" : [ {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateBrandRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "400" : {
            "description" : "Invalid input data"
          },
          "201" : {
            "description" : "Brand created successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/brands/{id}/image" : {
      "post" : {
        "tags" : [ "Brands" ],
        "summary" : "Upload brand image",
        "description" : "Uploads an image for a brand",
        "operationId" : "uploadBrandImage",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Brand ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "required" : [ "file" ],
                "type" : "object",
                "properties" : {
                  "file" : {
                    "type" : "string",
                    "description" : "Image file",
                    "format" : "binary"
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "400" : {
            "description" : "Invalid file"
          },
          "404" : {
            "description" : "Brand not found"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Brand image uploaded successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/blogs" : {
      "get" : {
        "tags" : [ "blog-post-controller" ],
        "operationId" : "getBlogPosts",
        "parameters" : [ {
          "name" : "search",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "status",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "DRAFT", "PUBLISHED", "ARCHIVED" ]
          }
        }, {
          "name" : "pageable",
          "in" : "query",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/Pageable"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePageBlogPostResponse"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "blog-post-controller" ],
        "operationId" : "createBlogPost",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateBlogPostRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseBlogPostResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/banners" : {
      "get" : {
        "tags" : [ "Banners" ],
        "summary" : "Get all banners",
        "description" : "Retrieves all banners with optional filtering, sorting, and pagination",
        "operationId" : "getAllBanners",
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "description" : "Page number (0-based)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 10
          }
        }, {
          "name" : "sortBy",
          "in" : "query",
          "description" : "Sort field",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "createdAt"
          }
        }, {
          "name" : "sortDir",
          "in" : "query",
          "description" : "Sort direction",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "desc"
          }
        }, {
          "name" : "search",
          "in" : "query",
          "description" : "Search term",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "status",
          "in" : "query",
          "description" : "Filter by status",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "DRAFT", "ACTIVE", "INACTIVE", "SCHEDULED", "EXPIRED", "DELETED" ]
          }
        }, {
          "name" : "position",
          "in" : "query",
          "description" : "Filter by position",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "HOME_HERO", "HOME_TOP", "HOME_MIDDLE", "HOME_BOTTOM", "SIDEBAR", "FOOTER", "CATEGORY_TOP", "SERVICE_TOP", "CHECKOUT_TOP", "POPUP", "FLOATING" ]
          }
        }, {
          "name" : "featured",
          "in" : "query",
          "description" : "Filter by featured status",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Banners retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Banners" ],
        "summary" : "Create a new banner",
        "description" : "Creates a new banner with all necessary information",
        "operationId" : "createBanner",
        "parameters" : [ {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateBannerRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "Banner created successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal server error"
          },
          "400" : {
            "description" : "Invalid input data"
          }
        }
      }
    },
    "/api/v1/service/banners/{id}/impression" : {
      "post" : {
        "tags" : [ "Banners" ],
        "summary" : "Track banner impression",
        "description" : "Increments impression count for a banner",
        "operationId" : "trackImpression",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Banner ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/banners/{id}/duplicate" : {
      "post" : {
        "tags" : [ "Banners" ],
        "summary" : "Duplicate banner",
        "description" : "Creates a copy of an existing banner",
        "operationId" : "duplicateBanner",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Banner ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseBannerResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/banners/{id}/click" : {
      "post" : {
        "tags" : [ "Banners" ],
        "summary" : "Track banner click",
        "description" : "Increments click count for a banner",
        "operationId" : "trackClick",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Banner ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/banners/cities/bulk" : {
      "post" : {
        "tags" : [ "Banners" ],
        "summary" : "Get banners for multiple cities",
        "description" : "Retrieves active banners for multiple cities",
        "operationId" : "getBannersForCities",
        "parameters" : [ {
          "name" : "position",
          "in" : "query",
          "description" : "Banner position filter",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "HOME_HERO", "HOME_TOP", "HOME_MIDDLE", "HOME_BOTTOM", "SIDEBAR", "FOOTER", "CATEGORY_TOP", "SERVICE_TOP", "CHECKOUT_TOP", "POPUP", "FLOATING" ]
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "description" : "City IDs list",
                "items" : {
                  "type" : "string"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseMapStringListBannerResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/sections" : {
      "get" : {
        "tags" : [ "Section Management" ],
        "summary" : "Get all sections (paged)",
        "operationId" : "getAllSections",
        "parameters" : [ {
          "name" : "pageable",
          "in" : "query",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/Pageable"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePageSection"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Section Management" ],
        "summary" : "Create new section",
        "operationId" : "createSection",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateSectionRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseSection"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/products" : {
      "get" : {
        "tags" : [ "Products" ],
        "summary" : "Get all products",
        "description" : "Retrieves paginated products with optional filtering by category, brand, status, price range",
        "operationId" : "getAllProducts",
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "description" : "Page number for pagination (0-based)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 0
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Number of items per page",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 10
          },
          "example" : 10
        }, {
          "name" : "sortBy",
          "in" : "query",
          "description" : "Sort field name",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "name"
          },
          "example" : "name"
        }, {
          "name" : "sortDir",
          "in" : "query",
          "description" : "Sort direction",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "asc"
          },
          "example" : "asc"
        }, {
          "name" : "categoryId",
          "in" : "query",
          "description" : "Filter by category ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "brandId",
          "in" : "query",
          "description" : "Filter by brand ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "status",
          "in" : "query",
          "description" : "Filter by product status",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "OUT_OF_STOCK", "DISCONTINUED", "DRAFT" ]
          }
        }, {
          "name" : "search",
          "in" : "query",
          "description" : "Search term for product name or description",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "isFeatured",
          "in" : "query",
          "description" : "Filter by featured status",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "isPopular",
          "in" : "query",
          "description" : "Filter by popular status",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "isBestseller",
          "in" : "query",
          "description" : "Filter by bestseller status",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "isNewArrival",
          "in" : "query",
          "description" : "Filter by new arrival status",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "minPrice",
          "in" : "query",
          "description" : "Minimum price filter",
          "required" : false,
          "schema" : {
            "type" : "number",
            "format" : "double"
          }
        }, {
          "name" : "maxPrice",
          "in" : "query",
          "description" : "Maximum price filter",
          "required" : false,
          "schema" : {
            "type" : "number",
            "format" : "double"
          }
        }, {
          "name" : "inStockOnly",
          "in" : "query",
          "description" : "Filter by in-stock products only",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "429" : {
            "description" : "Rate limit exceeded"
          },
          "200" : {
            "description" : "Products retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Products" ],
        "summary" : "Create a new product",
        "description" : "Creates a new product with all specifications and inventory details",
        "operationId" : "createProduct",
        "parameters" : [ {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateProductRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "403" : {
            "description" : "Access denied - product management privileges required"
          },
          "400" : {
            "description" : "Invalid input data or validation error"
          },
          "201" : {
            "description" : "Product created successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-categories" : {
      "get" : {
        "tags" : [ "Product Categories" ],
        "summary" : "Get all product categories",
        "description" : "Retrieves paginated product categories with optional filtering by parent, status",
        "operationId" : "getAllProductCategories",
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "description" : "Page number for pagination (0-based)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 0
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Number of items per page",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 10
          },
          "example" : 10
        }, {
          "name" : "sortBy",
          "in" : "query",
          "description" : "Sort field name",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "name"
          },
          "example" : "name"
        }, {
          "name" : "sortDir",
          "in" : "query",
          "description" : "Sort direction",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "asc"
          },
          "example" : "asc"
        }, {
          "name" : "parentId",
          "in" : "query",
          "description" : "Filter by parent category ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "status",
          "in" : "query",
          "description" : "Filter by category status",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT" ]
          }
        }, {
          "name" : "search",
          "in" : "query",
          "description" : "Search term for category name",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "isFeatured",
          "in" : "query",
          "description" : "Filter by featured status",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "level",
          "in" : "query",
          "description" : "Filter by hierarchy level",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "categoryType",
          "in" : "query",
          "description" : "Filter by category type",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Product categories retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Product Categories" ],
        "summary" : "Create a new product category",
        "description" : "Creates a new product category with hierarchical support",
        "operationId" : "createProductCategory",
        "parameters" : [ {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateProductCategoryRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "Product category created successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal server error"
          },
          "400" : {
            "description" : "Invalid input data"
          }
        }
      }
    },
    "/api/v1/inventory" : {
      "get" : {
        "tags" : [ "Inventory Management" ],
        "summary" : "Get all inventory",
        "description" : "Retrieves paginated inventory with optional filtering by city, status, and stock levels",
        "operationId" : "getAllInventory",
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "description" : "Page number",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 0
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 10
          },
          "example" : 10
        }, {
          "name" : "sortBy",
          "in" : "query",
          "description" : "Sort field",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "lastUpdated"
          },
          "example" : "lastUpdated"
        }, {
          "name" : "sortDir",
          "in" : "query",
          "description" : "Sort direction",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "desc"
          },
          "example" : "desc"
        }, {
          "name" : "cityId",
          "in" : "query",
          "description" : "Filter by city ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "productId",
          "in" : "query",
          "description" : "Filter by product ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "status",
          "in" : "query",
          "description" : "Filter by stock status",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "IN_STOCK", "LOW_STOCK", "OUT_OF_STOCK", "REORDER_REQUIRED", "OVERSTOCKED", "RESERVED", "DISCONTINUED", "DAMAGED", "EXPIRED", "QUARANTINED" ]
          }
        }, {
          "name" : "minStock",
          "in" : "query",
          "description" : "Minimum stock level filter",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "maxStock",
          "in" : "query",
          "description" : "Maximum stock level filter",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "alertsOnly",
          "in" : "query",
          "description" : "Filter items with alerts only",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Inventory retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Inventory Management" ],
        "summary" : "Create inventory record",
        "description" : "Creates a new inventory record for a product in a specific city",
        "operationId" : "createInventory",
        "parameters" : [ {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateInventoryRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "Inventory created successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal server error"
          },
          "400" : {
            "description" : "Invalid input data"
          },
          "429" : {
            "description" : "Rate limit exceeded"
          },
          "403" : {
            "description" : "Access denied - inventory management privileges required"
          }
        }
      }
    },
    "/api/v1/inventory/reserve" : {
      "post" : {
        "tags" : [ "Inventory Management" ],
        "summary" : "Reserve stock",
        "description" : "Reserves stock for a specific order or customer",
        "operationId" : "reserveStock",
        "parameters" : [ {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/StockReservationRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "404" : {
            "description" : "Inventory not found"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "400" : {
            "description" : "Insufficient stock or invalid request"
          },
          "200" : {
            "description" : "Stock reserved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/inventory/release" : {
      "post" : {
        "tags" : [ "Inventory Management" ],
        "summary" : "Release stock reservation",
        "description" : "Releases previously reserved stock",
        "operationId" : "releaseReservation",
        "parameters" : [ {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/StockReservationRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "404" : {
            "description" : "Inventory not found"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Stock reservation released successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/inventory/import" : {
      "post" : {
        "tags" : [ "Inventory Management" ],
        "summary" : "Import inventory from CSV",
        "description" : "Imports inventory data from a CSV file with bulk creation",
        "operationId" : "importInventoryFromCsv",
        "parameters" : [ {
          "name" : "skipErrors",
          "in" : "query",
          "description" : "Skip validation errors and continue import",
          "required" : false,
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "required" : [ "file" ],
                "type" : "object",
                "properties" : {
                  "file" : {
                    "type" : "string",
                    "description" : "CSV file containing inventory data",
                    "format" : "binary"
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "CSV import completed successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal server error"
          },
          "400" : {
            "description" : "Invalid CSV file or format"
          }
        }
      }
    },
    "/api/v1/inventory/confirm" : {
      "post" : {
        "tags" : [ "Inventory Management" ],
        "summary" : "Confirm stock reservation",
        "description" : "Confirms reserved stock and converts it to a sale",
        "operationId" : "confirmReservation",
        "parameters" : [ {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/StockReservationRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "404" : {
            "description" : "Inventory not found"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Stock reservation confirmed successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/inventory/bulk-update" : {
      "post" : {
        "tags" : [ "Inventory Management" ],
        "summary" : "Bulk stock updates",
        "description" : "Updates stock levels for multiple products/cities in a single operation",
        "operationId" : "bulkUpdateStock",
        "parameters" : [ {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BulkStockUpdateRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Invalid bulk update request"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Bulk stock update completed successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/carts" : {
      "post" : {
        "tags" : [ "Cart Management" ],
        "summary" : "Create a new cart",
        "description" : "Creates a new shopping cart for a customer or guest user",
        "operationId" : "createCart",
        "parameters" : [ {
          "name" : "customerId",
          "in" : "query",
          "description" : "Customer ID (optional for guest users)",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cityId",
          "in" : "query",
          "description" : "City ID for pricing context",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "description" : "Session ID for guest users",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "201" : {
            "description" : "Cart created successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Invalid input data"
          }
        }
      }
    },
    "/api/v1/carts/{cartId}/validate" : {
      "post" : {
        "tags" : [ "Cart Management" ],
        "summary" : "Validate cart",
        "description" : "Validates cart items for availability, pricing, and checkout readiness",
        "operationId" : "validateCart",
        "parameters" : [ {
          "name" : "cartId",
          "in" : "path",
          "description" : "Cart ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Cart validated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Cart not found"
          },
          "500" : {
            "description" : "Internal server error"
          }
        }
      }
    },
    "/api/v1/carts/{cartId}/services" : {
      "post" : {
        "tags" : [ "Cart Management" ],
        "summary" : "Add service to cart",
        "description" : "Adds a service booking to the shopping cart with scheduling details",
        "operationId" : "addServiceToCart",
        "parameters" : [ {
          "name" : "cartId",
          "in" : "path",
          "description" : "Cart ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AddServiceToCartRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "Service added to cart successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal server error"
          },
          "400" : {
            "description" : "Invalid input data or service not available"
          },
          "404" : {
            "description" : "Cart or service not found"
          }
        }
      }
    },
    "/api/v1/carts/{cartId}/products" : {
      "post" : {
        "tags" : [ "Cart Management" ],
        "summary" : "Add product to cart",
        "description" : "Adds a product to the shopping cart with specified quantity and options",
        "operationId" : "addProductToCart",
        "parameters" : [ {
          "name" : "cartId",
          "in" : "path",
          "description" : "Cart ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AddProductToCartRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "Product added to cart successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Cart or product not found"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "400" : {
            "description" : "Invalid input data or product not available"
          }
        }
      }
    },
    "/api/v1/carts/{cartId}/coupons" : {
      "post" : {
        "tags" : [ "Cart Management" ],
        "summary" : "Apply coupon to cart",
        "description" : "Applies a discount coupon to the shopping cart",
        "operationId" : "applyCoupon",
        "parameters" : [ {
          "name" : "cartId",
          "in" : "path",
          "description" : "Cart ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ApplyCouponRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "404" : {
            "description" : "Cart not found"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "400" : {
            "description" : "Invalid coupon or coupon not applicable"
          },
          "200" : {
            "description" : "Coupon applied successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Cart Management" ],
        "summary" : "Remove coupon from cart",
        "description" : "Removes the applied coupon from the shopping cart",
        "operationId" : "removeCoupon",
        "parameters" : [ {
          "name" : "cartId",
          "in" : "path",
          "description" : "Cart ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "404" : {
            "description" : "Cart not found"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Coupon removed successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/carts/{cartId}/calculate" : {
      "post" : {
        "tags" : [ "Cart Management" ],
        "summary" : "Calculate cart totals",
        "description" : "Recalculates cart totals including taxes, discounts, and delivery charges",
        "operationId" : "calculateCartTotals",
        "parameters" : [ {
          "name" : "cartId",
          "in" : "path",
          "description" : "Cart ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Cart totals calculated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Cart not found"
          },
          "500" : {
            "description" : "Internal server error"
          }
        }
      }
    },
    "/api/v1/carts/session/{sessionId}/convert" : {
      "post" : {
        "tags" : [ "Cart Management" ],
        "summary" : "Convert guest cart to customer cart",
        "description" : "Converts a guest cart to a customer cart when user logs in",
        "operationId" : "convertGuestCart",
        "parameters" : [ {
          "name" : "sessionId",
          "in" : "path",
          "description" : "Session ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "customerId",
          "in" : "query",
          "description" : "Customer ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "404" : {
            "description" : "Guest cart not found"
          },
          "200" : {
            "description" : "Cart converted successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal server error"
          }
        }
      }
    },
    "/api/service-visits" : {
      "post" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Create a new service visit",
        "description" : "Creates a new service visit for a booking",
        "operationId" : "createVisit",
        "parameters" : [ {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateServiceVisitRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceVisitResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-visits/{visitId}/work-progress-images" : {
      "post" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Add work progress images",
        "description" : "Adds work in progress images to the visit",
        "operationId" : "addWorkInProgressImages",
        "parameters" : [ {
          "name" : "visitId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "type" : "string"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceVisitResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-visits/{visitId}/work-description" : {
      "post" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Update work description",
        "description" : "Updates the work description for a visit",
        "operationId" : "updateWorkDescription",
        "parameters" : [ {
          "name" : "visitId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "workDescription",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceVisitResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-visits/{visitId}/update-timing" : {
      "post" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Update actual timing",
        "description" : "Updates the actual start and end times of a visit",
        "operationId" : "updateActualTiming",
        "parameters" : [ {
          "name" : "visitId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "actualStartTime",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "actualEndTime",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceVisitResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-visits/{visitId}/start" : {
      "post" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Start visit",
        "description" : "Marks a service visit as started",
        "operationId" : "startVisit",
        "parameters" : [ {
          "name" : "visitId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceVisitResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-visits/{visitId}/reschedule" : {
      "post" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Reschedule visit",
        "description" : "Reschedules a service visit to a new date",
        "operationId" : "rescheduleVisit",
        "parameters" : [ {
          "name" : "visitId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "newScheduledDate",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "reason",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceVisitResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-visits/{visitId}/record-departure" : {
      "post" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Record departure",
        "description" : "Records the vendor's departure time",
        "operationId" : "recordDeparture",
        "parameters" : [ {
          "name" : "visitId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "departureTime",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceVisitResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-visits/{visitId}/record-arrival" : {
      "post" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Record arrival",
        "description" : "Records the vendor's arrival time",
        "operationId" : "recordArrival",
        "parameters" : [ {
          "name" : "visitId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "arrivalTime",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceVisitResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-visits/{visitId}/materials-used" : {
      "post" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Add materials used",
        "description" : "Adds materials used during the visit",
        "operationId" : "addMaterialsUsed",
        "parameters" : [ {
          "name" : "visitId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cost",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "number",
            "format" : "double"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "type" : "string"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceVisitResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-visits/{visitId}/customer-feedback" : {
      "post" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Record customer feedback",
        "description" : "Records customer feedback and rating for the visit",
        "operationId" : "recordCustomerFeedback",
        "parameters" : [ {
          "name" : "visitId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "feedback",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "rating",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "number",
            "format" : "double"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceVisitResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-visits/{visitId}/complete" : {
      "post" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Complete visit",
        "description" : "Marks a service visit as completed",
        "operationId" : "completeVisit",
        "parameters" : [ {
          "name" : "visitId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceVisitResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-visits/{visitId}/cancel" : {
      "post" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Cancel visit",
        "description" : "Cancels a service visit with a reason",
        "operationId" : "cancelVisit",
        "parameters" : [ {
          "name" : "visitId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "reason",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceVisitResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-visits/{visitId}/before-images" : {
      "post" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Add before images",
        "description" : "Adds before images to the visit",
        "operationId" : "addBeforeImages",
        "parameters" : [ {
          "name" : "visitId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "type" : "string"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceVisitResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-visits/{visitId}/after-images" : {
      "post" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Add after images",
        "description" : "Adds after images to the visit",
        "operationId" : "addAfterImages",
        "parameters" : [ {
          "name" : "visitId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "type" : "string"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceVisitResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-visits/{visitId}/add-task" : {
      "post" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Add completed task",
        "description" : "Adds a completed task to the visit",
        "operationId" : "addCompletedTask",
        "parameters" : [ {
          "name" : "visitId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "task",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceVisitResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings" : {
      "post" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Create a new service booking",
        "description" : "Creates a new service booking for a customer",
        "operationId" : "createBooking",
        "parameters" : [ {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateServiceBookingRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceBookingResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings/{bookingId}/start" : {
      "post" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Start service",
        "description" : "Marks the service as started",
        "operationId" : "startService",
        "parameters" : [ {
          "name" : "bookingId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceBookingResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings/{bookingId}/schedule" : {
      "post" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Schedule booking",
        "description" : "Sets the schedule for a service booking",
        "operationId" : "scheduleBooking",
        "parameters" : [ {
          "name" : "bookingId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "scheduledDate",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "scheduledTime",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "timeSlot",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceBookingResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings/{bookingId}/reschedule" : {
      "post" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Reschedule booking",
        "description" : "Reschedules a service booking to a new date and time",
        "operationId" : "rescheduleBooking",
        "parameters" : [ {
          "name" : "bookingId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "newScheduledDate",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "reason",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceBookingResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings/{bookingId}/reassign-vendor" : {
      "post" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Reassign vendor",
        "description" : "Reassigns a booking to a different vendor",
        "operationId" : "reassignVendor",
        "parameters" : [ {
          "name" : "bookingId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "newVendorId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "reason",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceBookingResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings/{bookingId}/process-payment" : {
      "post" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Process payment",
        "description" : "Processes payment for a booking",
        "operationId" : "processPayment",
        "parameters" : [ {
          "name" : "bookingId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "paymentMethod",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "paymentId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceBookingResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings/{bookingId}/confirm" : {
      "post" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Confirm booking",
        "description" : "Confirms a service booking",
        "operationId" : "confirmBooking",
        "parameters" : [ {
          "name" : "bookingId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceBookingResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings/{bookingId}/confirm-payment" : {
      "post" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Confirm payment",
        "description" : "Confirms payment for a booking",
        "operationId" : "confirmPayment",
        "parameters" : [ {
          "name" : "bookingId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "paymentId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceBookingResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings/{bookingId}/complete" : {
      "post" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Complete service",
        "description" : "Marks the service as completed",
        "operationId" : "completeService",
        "parameters" : [ {
          "name" : "bookingId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceBookingResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings/{bookingId}/cancel" : {
      "post" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Cancel booking",
        "description" : "Cancels a service booking with a reason",
        "operationId" : "cancelBooking",
        "parameters" : [ {
          "name" : "bookingId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "reason",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceBookingResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings/{bookingId}/auto-assign-vendor" : {
      "post" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Auto-assign vendor",
        "description" : "Automatically assigns the best available vendor to a booking",
        "operationId" : "autoAssignVendor",
        "parameters" : [ {
          "name" : "bookingId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceBookingResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings/{bookingId}/assign-vendor" : {
      "post" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Assign vendor to booking",
        "description" : "Assigns a vendor to a service booking",
        "operationId" : "assignVendor",
        "parameters" : [ {
          "name" : "bookingId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "vendorId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceBookingResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales" : {
      "post" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Create a new sale",
        "description" : "Creates a new empty sale for a customer",
        "operationId" : "createSale",
        "parameters" : [ {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateSaleRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseSaleResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/{saleId}/validate" : {
      "post" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Validate sale",
        "description" : "Validates a sale including stock availability and pricing",
        "operationId" : "validateSale",
        "parameters" : [ {
          "name" : "saleId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseSaleResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/{saleId}/process" : {
      "post" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Process sale",
        "description" : "Moves sale to processing status",
        "operationId" : "processSale",
        "parameters" : [ {
          "name" : "saleId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseSaleResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/{saleId}/payment/process" : {
      "post" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Process payment",
        "description" : "Processes payment for a sale",
        "operationId" : "processPayment_1",
        "parameters" : [ {
          "name" : "saleId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "paymentMethod",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "paymentId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseSaleResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/{saleId}/payment/confirm" : {
      "post" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Confirm payment",
        "description" : "Confirms payment for a sale",
        "operationId" : "confirmPayment_1",
        "parameters" : [ {
          "name" : "saleId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "paymentId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseSaleResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/{saleId}/items/services" : {
      "get" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Get service items in sale",
        "description" : "Retrieves all service items in a sale",
        "operationId" : "getServiceItemsInSale",
        "parameters" : [ {
          "name" : "saleId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListSaleItemResponse"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Add service to sale",
        "description" : "Adds a service item to an existing sale",
        "operationId" : "addServiceToSale",
        "parameters" : [ {
          "name" : "saleId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AddServiceToSaleRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseSaleItemResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/{saleId}/items/products" : {
      "get" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Get product items in sale",
        "description" : "Retrieves all product items in a sale",
        "operationId" : "getProductItemsInSale",
        "parameters" : [ {
          "name" : "saleId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListSaleItemResponse"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Add product to sale",
        "description" : "Adds a product item to an existing sale",
        "operationId" : "addProductToSale",
        "parameters" : [ {
          "name" : "saleId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AddProductToSaleRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseSaleItemResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/{saleId}/discount" : {
      "post" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Apply discount",
        "description" : "Applies a discount to a sale",
        "operationId" : "applyDiscount",
        "parameters" : [ {
          "name" : "saleId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ApplyDiscountRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseSaleResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/{saleId}/coupon" : {
      "post" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Apply coupon",
        "description" : "Applies a coupon code to a sale",
        "operationId" : "applyCoupon_1",
        "parameters" : [ {
          "name" : "saleId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "couponCode",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseSaleResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/{saleId}/confirm" : {
      "post" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Confirm sale",
        "description" : "Confirms a sale and validates stock availability",
        "operationId" : "confirmSale",
        "parameters" : [ {
          "name" : "saleId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseSaleResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/{saleId}/complete" : {
      "post" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Complete sale",
        "description" : "Completes a sale and updates inventory",
        "operationId" : "completeSale",
        "parameters" : [ {
          "name" : "saleId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseSaleResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/{saleId}/commission/mark-paid" : {
      "post" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Mark commission paid",
        "description" : "Marks commission as paid for a sale",
        "operationId" : "markCommissionPaid",
        "parameters" : [ {
          "name" : "saleId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseSaleResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/{saleId}/commission/calculate" : {
      "post" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Calculate commissions",
        "description" : "Calculates commissions for a sale",
        "operationId" : "calculateCommissions",
        "parameters" : [ {
          "name" : "saleId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseSaleResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/{saleId}/cancel" : {
      "post" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Cancel sale",
        "description" : "Cancels a sale with a reason",
        "operationId" : "cancelSale",
        "parameters" : [ {
          "name" : "saleId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "reason",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseSaleResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/{saleId}/calculate-totals" : {
      "post" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Calculate sale totals",
        "description" : "Recalculates sale totals including taxes and discounts",
        "operationId" : "calculateSaleTotals",
        "parameters" : [ {
          "name" : "saleId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseSaleResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/from-order/{orderId}" : {
      "post" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Create sale from order",
        "description" : "Creates a sale from a delivered order",
        "operationId" : "createSaleFromOrder",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "salesPersonId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseSaleResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests" : {
      "post" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Create a new revisit request",
        "description" : "Creates a new revisit request for a booking or visit",
        "operationId" : "createRevisitRequest",
        "parameters" : [ {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateRevisitRequestRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/{requestId}/update-cost" : {
      "post" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Update cost information",
        "description" : "Updates cost and billing information for the revisit",
        "operationId" : "updateCostInfo",
        "parameters" : [ {
          "name" : "requestId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "isChargeable",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "estimatedCost",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "number",
            "format" : "double"
          }
        }, {
          "name" : "costJustification",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/{requestId}/start" : {
      "post" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Start revisit",
        "description" : "Marks the revisit as started",
        "operationId" : "startRevisit",
        "parameters" : [ {
          "name" : "requestId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/{requestId}/schedule" : {
      "post" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Schedule revisit",
        "description" : "Schedules an approved revisit request",
        "operationId" : "scheduleRevisit",
        "parameters" : [ {
          "name" : "requestId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "scheduledDate",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "scheduledTime",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "timeSlot",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/{requestId}/reject" : {
      "post" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Reject revisit request",
        "description" : "Rejects a revisit request with a reason",
        "operationId" : "rejectRequest",
        "parameters" : [ {
          "name" : "requestId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "rejectedBy",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "rejectionReason",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/{requestId}/record-feedback" : {
      "post" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Record post-revisit feedback",
        "description" : "Records customer feedback after revisit completion",
        "operationId" : "recordPostRevisitFeedback",
        "parameters" : [ {
          "name" : "requestId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "rating",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "number",
            "format" : "double"
          }
        }, {
          "name" : "feedback",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "customerSatisfied",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "satisfactionNotes",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/{requestId}/mark-warranty" : {
      "post" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Mark as warranty revisit",
        "description" : "Marks the request as a warranty-related revisit",
        "operationId" : "markAsWarrantyRevisit",
        "parameters" : [ {
          "name" : "requestId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "warrantyExpiry",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "warrantyTerms",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/{requestId}/mark-free" : {
      "post" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Mark as free revisit",
        "description" : "Marks the revisit as free of charge",
        "operationId" : "markAsFreeRevisit",
        "parameters" : [ {
          "name" : "requestId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "reason",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/{requestId}/escalate" : {
      "post" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Escalate request",
        "description" : "Escalates the revisit request to higher level",
        "operationId" : "escalateRequest",
        "parameters" : [ {
          "name" : "requestId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "escalationLevel",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "escalatedTo",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "escalationReason",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/{requestId}/complete" : {
      "post" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Complete revisit",
        "description" : "Marks the revisit as completed",
        "operationId" : "completeRevisit",
        "parameters" : [ {
          "name" : "requestId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/{requestId}/check-warranty" : {
      "post" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Check warranty eligibility",
        "description" : "Checks if the revisit request is eligible under warranty",
        "operationId" : "checkWarrantyEligibility",
        "parameters" : [ {
          "name" : "requestId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/{requestId}/cancel" : {
      "post" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Cancel revisit request",
        "description" : "Cancels a revisit request with a reason",
        "operationId" : "cancelRequest",
        "parameters" : [ {
          "name" : "requestId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "reason",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/{requestId}/auto-assign-vendor" : {
      "post" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Auto-assign vendor",
        "description" : "Automatically assigns the best available vendor to the revisit",
        "operationId" : "autoAssignVendor_1",
        "parameters" : [ {
          "name" : "requestId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/{requestId}/assign-vendor" : {
      "post" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Assign vendor to revisit",
        "description" : "Assigns a vendor to handle the revisit",
        "operationId" : "assignVendor_1",
        "parameters" : [ {
          "name" : "requestId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "vendorId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/{requestId}/approve" : {
      "post" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Approve revisit request",
        "description" : "Approves a revisit request",
        "operationId" : "approveRequest",
        "parameters" : [ {
          "name" : "requestId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "approvedBy",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "approvalNotes",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/{requestId}/add-evidence-images" : {
      "post" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Add evidence images",
        "description" : "Adds issue evidence images to the revisit request",
        "operationId" : "addIssueImages",
        "parameters" : [ {
          "name" : "requestId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "type" : "string"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/{requestId}/add-evidence-documents" : {
      "post" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Add evidence documents",
        "description" : "Adds supporting documents to the revisit request",
        "operationId" : "addEvidenceDocuments",
        "parameters" : [ {
          "name" : "requestId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "type" : "string"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders" : {
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Create a new order",
        "description" : "Creates a new empty order for a customer in a specific city",
        "operationId" : "createOrder",
        "parameters" : [ {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateOrderRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/validate" : {
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Validate order",
        "description" : "Validates an order including stock availability and pricing",
        "operationId" : "validateOrder",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/ship" : {
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Ship order",
        "description" : "Marks order as shipped with tracking information",
        "operationId" : "shipOrder",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "trackingNumber",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "shippingCarrier",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/return" : {
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Request order return",
        "description" : "Initiates a return request for an order",
        "operationId" : "requestOrderReturn",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "reason",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/return/{returnId}/reject" : {
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Reject return request",
        "description" : "Rejects a return request for an order",
        "operationId" : "rejectReturnRequest",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "returnId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "reason",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/return/{returnId}/process" : {
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Process return request",
        "description" : "Processes an approved return request",
        "operationId" : "processReturnRequest",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "returnId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/return/{returnId}/approve" : {
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Approve return request",
        "description" : "Approves a return request for an order",
        "operationId" : "approveReturnRequest",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "returnId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/refund" : {
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Request order refund",
        "description" : "Initiates a refund request for an order",
        "operationId" : "requestOrderRefund",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "reason",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/process" : {
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Process order",
        "description" : "Moves order to processing status",
        "operationId" : "processOrder",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/payment/update-status" : {
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Update payment status",
        "description" : "Updates the payment status of an order",
        "operationId" : "updatePaymentStatus",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "paymentStatus",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum" : [ "PENDING", "PROCESSING", "COMPLETED", "FAILED", "CANCELLED", "REFUNDED", "PARTIALLY_REFUNDED", "EXPIRED", "DISPUTED", "AUTHORIZED", "CAPTURED" ]
          }
        }, {
          "name" : "paymentId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/payment/refund" : {
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Process payment refund",
        "description" : "Processes a payment refund for an order",
        "operationId" : "processPaymentRefund",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "refundAmount",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "number",
            "format" : "double"
          }
        }, {
          "name" : "reason",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/payment/process" : {
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Process payment",
        "description" : "Processes payment for an order",
        "operationId" : "processPayment_2",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "paymentMethod",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "paymentId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/payment/fail" : {
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Mark payment as failed",
        "description" : "Marks payment as failed for an order",
        "operationId" : "failPayment",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "reason",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/payment/confirm" : {
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Confirm payment",
        "description" : "Confirms payment for an order",
        "operationId" : "confirmPayment_2",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "paymentId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/out-for-delivery" : {
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Mark order out for delivery",
        "description" : "Marks order as out for delivery",
        "operationId" : "markOrderOutForDelivery",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/items/{itemId}/return" : {
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Request order item return",
        "description" : "Initiates a return request for a specific order item",
        "operationId" : "requestOrderItemReturn",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "itemId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "reason",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderItemResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/items/{itemId}/refund" : {
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Request order item refund",
        "description" : "Initiates a refund request for a specific order item",
        "operationId" : "requestOrderItemRefund",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "itemId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "reason",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderItemResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/items/services" : {
      "get" : {
        "tags" : [ "Order Management" ],
        "summary" : "Get service items in order",
        "description" : "Retrieves all service items in an order",
        "operationId" : "getServiceItemsInOrder",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListOrderItemResponse"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Add service to order",
        "description" : "Adds a service item to an existing order",
        "operationId" : "addServiceToOrder",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AddServiceToOrderRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderItemResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/items/products" : {
      "get" : {
        "tags" : [ "Order Management" ],
        "summary" : "Get product items in order",
        "description" : "Retrieves all product items in an order",
        "operationId" : "getProductItemsInOrder",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListOrderItemResponse"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Add product to order",
        "description" : "Adds a product item to an existing order",
        "operationId" : "addProductToOrder",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AddProductToOrderRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderItemResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/deliver" : {
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Deliver order",
        "description" : "Marks order as delivered",
        "operationId" : "deliverOrder",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/confirm" : {
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Confirm order",
        "description" : "Confirms an order and reserves stock",
        "operationId" : "confirmOrder",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/cancel" : {
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Cancel order",
        "description" : "Cancels an order with a reason",
        "operationId" : "cancelOrder",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "reason",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/calculate-totals" : {
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Calculate order totals",
        "description" : "Recalculates order totals including taxes and discounts",
        "operationId" : "calculateOrderTotals",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/assign-vendor" : {
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Assign vendor to order",
        "description" : "Assigns a vendor to an order",
        "operationId" : "assignVendor_2",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "vendorId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/from-cart/{cartId}" : {
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Create order from cart",
        "description" : "Creates an order from an existing cart",
        "operationId" : "createOrderFromCart",
        "parameters" : [ {
          "name" : "cartId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/bulk/update-status" : {
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Bulk update order status",
        "description" : "Updates status for multiple orders",
        "operationId" : "bulkUpdateOrderStatus",
        "parameters" : [ {
          "name" : "orderIds",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }, {
          "name" : "status",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum" : [ "PENDING", "CONFIRMED", "PROCESSING", "SHIPPED", "OUT_FOR_DELIVERY", "DELIVERED", "CANCELLED", "REFUNDED", "RETURNED", "FAILED", "ON_HOLD" ]
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/bulk/assign-vendor" : {
      "post" : {
        "tags" : [ "Order Management" ],
        "summary" : "Bulk assign vendor",
        "description" : "Assigns a vendor to multiple orders",
        "operationId" : "bulkAssignVendor",
        "parameters" : [ {
          "name" : "orderIds",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }, {
          "name" : "vendorId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/{id}/status" : {
      "patch" : {
        "tags" : [ "Services" ],
        "summary" : "Update service status",
        "description" : "Updates the status of a service (ACTIVE, INACTIVE, DRAFT)",
        "operationId" : "updateServiceStatus",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Service ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "status",
          "in" : "query",
          "description" : "New status for the service",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT", "OUT_OF_STOCK", "SEASONAL" ]
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "404" : {
            "description" : "Service not found"
          },
          "400" : {
            "description" : "Invalid status value"
          },
          "200" : {
            "description" : "Service status updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ServiceStatusResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/types/{id}/status" : {
      "patch" : {
        "tags" : [ "Business Types" ],
        "summary" : "Update type status",
        "description" : "Updates the status of a business type (ACTIVE, INACTIVE, DRAFT)",
        "operationId" : "updateTypeStatus",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Type ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "status",
          "in" : "query",
          "description" : "New status for the type",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT" ]
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Type status updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TypeStatusResponse"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal server error"
          },
          "400" : {
            "description" : "Invalid status value"
          },
          "404" : {
            "description" : "Type not found"
          }
        }
      }
    },
    "/api/v1/service/types/{id}/colors" : {
      "patch" : {
        "tags" : [ "Business Types" ],
        "summary" : "Update type colors",
        "description" : "Updates background, primary, and secondary colors for a service type",
        "operationId" : "updateTypeColors",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Type ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "object",
                "additionalProperties" : {
                  "type" : "string"
                },
                "description" : "Color configuration"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Colors updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TypeColorsResponse"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal server error"
          },
          "404" : {
            "description" : "Type not found"
          }
        }
      }
    },
    "/api/v1/service/packages/{packageId}/toggle/{flagName}" : {
      "patch" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Toggle package flag",
        "description" : "Toggles boolean flags on a package (isFeatured, isPopular, isRecommended, etc.)",
        "operationId" : "togglePackageFlag",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "flagName",
          "in" : "path",
          "description" : "Flag name to toggle (isFeatured, isPopular, etc.)",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "value",
          "in" : "query",
          "description" : "New flag value (true/false)",
          "required" : true,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "description" : "User ID performing the update",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "system"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Invalid flag name or value",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "Package flag updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Package not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/{packageId}/status" : {
      "patch" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Update package status",
        "description" : "Updates the status of a package (ACTIVE, INACTIVE, DRAFT, ARCHIVED, etc.)",
        "operationId" : "updatePackageStatus",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "description" : "User ID performing the update",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "system"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "object",
                "additionalProperties" : {
                  "type" : "string"
                },
                "description" : "New package status"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Package status updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Invalid status value",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Package not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/{packageId}/popular" : {
      "patch" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Update package popular status",
        "description" : "Updates the popular status of a service package",
        "operationId" : "updatePopularStatus",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "description" : "User ID performing the update",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "system"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "object",
                "additionalProperties" : {
                  "type" : "boolean"
                },
                "description" : "Popular status"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Invalid request body",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "Popular status updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Package not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/{packageId}/featured" : {
      "patch" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Update package featured status",
        "description" : "Updates the featured status of a service package",
        "operationId" : "updateFeaturedStatus",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "description" : "User ID performing the update",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "system"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "object",
                "additionalProperties" : {
                  "type" : "boolean"
                },
                "description" : "Featured status"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Invalid request body",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "Featured status updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Package not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/{packageId}/display-order" : {
      "patch" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Update package display order",
        "description" : "Updates the display order/sequence of a package for controlling how packages appear in listings",
        "operationId" : "updateDisplayOrder",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "displayOrder",
          "in" : "query",
          "description" : "New display order position",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "description" : "User ID performing the update",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "system"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Display order updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          },
          "404" : {
            "description" : "Package not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          },
          "400" : {
            "description" : "Invalid display order value",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/bulk-update" : {
      "patch" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Bulk update packages",
        "description" : "Updates multiple packages simultaneously with the same data, useful for batch operations",
        "operationId" : "bulkUpdatePackages",
        "parameters" : [ {
          "name" : "packageIds",
          "in" : "query",
          "description" : "List of package IDs to update",
          "required" : true,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "description" : "User ID performing the bulk update",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "system"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdatePackageRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Packages updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServicePackageResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Invalid request data or package IDs",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServicePackageResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "One or more packages not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options/{optionId}/toggle-requirement" : {
      "patch" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Toggle option requirement",
        "description" : "Toggles whether an option is required or optional for users during package customization",
        "operationId" : "toggleOptionRequirement",
        "parameters" : [ {
          "name" : "optionId",
          "in" : "path",
          "description" : "Option unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "isRequired",
          "in" : "query",
          "description" : "New requirement status (true for required, false for optional)",
          "required" : true,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "description" : "User ID performing the update",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "system"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Invalid requirement value",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePackageOption"
                }
              }
            }
          },
          "200" : {
            "description" : "Option requirement updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePackageOption"
                }
              }
            }
          },
          "404" : {
            "description" : "Option not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePackageOption"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options/{optionId}/status" : {
      "patch" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Update option status",
        "description" : "Updates the status of an option (ACTIVE, INACTIVE, DRAFT, ARCHIVED, etc.)",
        "operationId" : "updateOptionStatus",
        "parameters" : [ {
          "name" : "optionId",
          "in" : "path",
          "description" : "Option unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "status",
          "in" : "query",
          "description" : "New option status",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT", "OUT_OF_STOCK", "SEASONAL", "COMING_SOON", "DISCONTINUED" ]
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "description" : "User ID performing the update",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "system"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Option status updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePackageOption"
                }
              }
            }
          },
          "400" : {
            "description" : "Invalid status value",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePackageOption"
                }
              }
            }
          },
          "404" : {
            "description" : "Option not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePackageOption"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options/{optionId}/display-order" : {
      "patch" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Update option display order",
        "description" : "Updates the display order/sequence of a single option for controlling how options appear in listings",
        "operationId" : "updateDisplayOrder_1",
        "parameters" : [ {
          "name" : "optionId",
          "in" : "path",
          "description" : "Option unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "displayOrder",
          "in" : "query",
          "description" : "New display order position",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "description" : "User ID performing the update",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "system"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Display order updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          },
          "404" : {
            "description" : "Option not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          },
          "400" : {
            "description" : "Invalid display order value",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options/package/{packageId}/reorder" : {
      "patch" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Reorder options",
        "description" : "Updates the display order of multiple options within a package for controlling UI presentation sequence",
        "operationId" : "reorderOptions",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "description" : "User ID performing the reordering",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "system"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "description" : "List of option IDs in desired order",
                "items" : {
                  "type" : "string"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Options reordered successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListPackageOption"
                }
              }
            }
          },
          "404" : {
            "description" : "Package or options not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListPackageOption"
                }
              }
            }
          },
          "400" : {
            "description" : "Invalid option order data",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListPackageOption"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options/bulk-update" : {
      "patch" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Bulk update options",
        "description" : "Updates multiple options simultaneously with the same data, useful for batch operations and mass configuration changes",
        "operationId" : "bulkUpdateOptions",
        "parameters" : [ {
          "name" : "optionIds",
          "in" : "query",
          "description" : "List of option IDs to update",
          "required" : true,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "description" : "User ID performing the bulk update",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "system"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdatePackageOptionRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Options updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListPackageOption"
                }
              }
            }
          },
          "404" : {
            "description" : "One or more options not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListPackageOption"
                }
              }
            }
          },
          "400" : {
            "description" : "Invalid request data or option IDs",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListPackageOption"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/categories/{id}/status" : {
      "patch" : {
        "tags" : [ "Service Categories" ],
        "summary" : "Update category status",
        "description" : "Updates the status of a category (ACTIVE, INACTIVE, DRAFT, ARCHIVED)",
        "operationId" : "updateCategoryStatus",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Category ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "507f1f77bcf86cd799439011"
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "object",
                "additionalProperties" : {
                  "type" : "string"
                },
                "description" : "Status update request"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "404" : {
            "description" : "Category not found"
          },
          "200" : {
            "description" : "Category status updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CategoryStatusResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Invalid status value"
          }
        }
      }
    },
    "/api/v1/service/categories/{id}/move" : {
      "patch" : {
        "tags" : [ "Service Categories" ],
        "summary" : "Move category to different parent",
        "description" : "Changes the parent of a category, updating the hierarchy structure",
        "operationId" : "moveCategory",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Category ID to move",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "507f1f77bcf86cd799439011"
        }, {
          "name" : "newParentId",
          "in" : "query",
          "description" : "New parent category ID (null for root level)",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "404" : {
            "description" : "Category or new parent not found"
          },
          "400" : {
            "description" : "Invalid hierarchy or circular reference"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Category moved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/MoveCategoryResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/categories/{id}/colors" : {
      "patch" : {
        "tags" : [ "Service Categories" ],
        "summary" : "Update category colors",
        "description" : "Updates color scheme for a category with color values in request body",
        "operationId" : "updateCategoryColors",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Category ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "507f1f77bcf86cd799439011"
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "object",
                "additionalProperties" : {
                  "type" : "string"
                },
                "description" : "Color values map (backgroundColor, primaryColor, secondaryColor, etc.)"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "404" : {
            "description" : "Category not found"
          },
          "400" : {
            "description" : "Invalid color values"
          },
          "200" : {
            "description" : "Category colors updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CategoryColorsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/brands/{id}/status" : {
      "patch" : {
        "tags" : [ "Brands" ],
        "summary" : "Update brand status",
        "description" : "Updates the status of a brand",
        "operationId" : "updateBrandStatus",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Brand ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "object",
                "additionalProperties" : {
                  "type" : "object"
                },
                "description" : "Status update request"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Invalid status"
          },
          "404" : {
            "description" : "Brand not found"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Brand status updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/brands/{id}/colors" : {
      "patch" : {
        "tags" : [ "Brands" ],
        "summary" : "Update brand colors",
        "description" : "Updates the color scheme of a brand",
        "operationId" : "updateBrandColors",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Brand ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "object",
                "additionalProperties" : {
                  "type" : "string"
                },
                "description" : "Color update request"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "404" : {
            "description" : "Brand not found"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "400" : {
            "description" : "Invalid color data"
          },
          "200" : {
            "description" : "Brand colors updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/blogs/{id}/status" : {
      "patch" : {
        "tags" : [ "blog-post-controller" ],
        "operationId" : "updateBlogStatus",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "status",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum" : [ "DRAFT", "PUBLISHED", "ARCHIVED" ]
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseBlogPostResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/products/{id}/stock" : {
      "patch" : {
        "tags" : [ "Products" ],
        "summary" : "Update product stock",
        "description" : "Updates the stock quantity of a product",
        "operationId" : "updateProductStock",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Product ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "507f1f77bcf86cd799439011"
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "object",
                "additionalProperties" : {
                  "type" : "integer",
                  "format" : "int32"
                },
                "description" : "Stock update request"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "400" : {
            "description" : "Invalid stock quantity"
          },
          "200" : {
            "description" : "Product stock updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Product not found"
          }
        }
      }
    },
    "/api/v1/products/{id}/status" : {
      "patch" : {
        "tags" : [ "Products" ],
        "summary" : "Update product status",
        "description" : "Updates the status of a product (ACTIVE, INACTIVE, DRAFT, ARCHIVED)",
        "operationId" : "updateProductStatus",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Product ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "507f1f77bcf86cd799439011"
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "object",
                "additionalProperties" : {
                  "type" : "string"
                },
                "description" : "Status update request"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Product status updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal server error"
          },
          "404" : {
            "description" : "Product not found"
          },
          "400" : {
            "description" : "Invalid status value"
          }
        }
      }
    },
    "/api/v1/product-categories/{id}/status" : {
      "patch" : {
        "tags" : [ "Product Categories" ],
        "summary" : "Update product category status",
        "description" : "Updates the status of a product category (ACTIVE, INACTIVE, DRAFT, ARCHIVED)",
        "operationId" : "updateProductCategoryStatus",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Product category ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "507f1f77bcf86cd799439011"
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "object",
                "additionalProperties" : {
                  "type" : "string"
                },
                "description" : "Status update request"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "404" : {
            "description" : "Product category not found"
          },
          "200" : {
            "description" : "Product category status updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Invalid status value"
          }
        }
      }
    },
    "/api/v1/product-categories/{id}/move" : {
      "patch" : {
        "tags" : [ "Product Categories" ],
        "summary" : "Move product category",
        "description" : "Moves a product category to a different parent in the hierarchy",
        "operationId" : "moveProductCategory",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Product category ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "507f1f77bcf86cd799439011"
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "object",
                "additionalProperties" : {
                  "type" : "string"
                },
                "description" : "Move request with new parent ID"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "400" : {
            "description" : "Invalid move operation or circular reference"
          },
          "404" : {
            "description" : "Product category not found"
          },
          "200" : {
            "description" : "Product category moved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/inventory/{productId}/{cityId}/thresholds" : {
      "patch" : {
        "tags" : [ "Inventory Management" ],
        "summary" : "Update inventory thresholds",
        "description" : "Updates stock thresholds for a specific product in a city",
        "operationId" : "updateThresholds",
        "parameters" : [ {
          "name" : "productId",
          "in" : "path",
          "description" : "Product ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cityId",
          "in" : "path",
          "description" : "City ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "minimumStock",
          "in" : "query",
          "description" : "Minimum stock threshold",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "maximumStock",
          "in" : "query",
          "description" : "Maximum stock threshold",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "reorderLevel",
          "in" : "query",
          "description" : "Reorder level threshold",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "reorderQuantity",
          "in" : "query",
          "description" : "Reorder quantity",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Invalid threshold values"
          },
          "404" : {
            "description" : "Inventory not found"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Thresholds updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/inventory/stock" : {
      "patch" : {
        "tags" : [ "Inventory Management" ],
        "summary" : "Update stock levels",
        "description" : "Updates stock levels for a product in a specific city",
        "operationId" : "updateStock",
        "parameters" : [ {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/StockUpdateRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "404" : {
            "description" : "Inventory not found"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Stock updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Invalid stock update request"
          }
        }
      }
    },
    "/api" : {
      "get" : {
        "tags" : [ "Root" ],
        "summary" : "API Service welcome",
        "description" : "JSON API information for TheClassy Service",
        "operationId" : "apiWelcome",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseMapStringObject"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/types/{id}/stats" : {
      "get" : {
        "tags" : [ "Business Types" ],
        "summary" : "Get type statistics",
        "description" : "Retrieves statistical information for a specific business type",
        "operationId" : "getTypeStats",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Type ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Type statistics retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TypeStatsResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Type not found"
          }
        }
      }
    },
    "/api/v1/service/types/featured" : {
      "get" : {
        "tags" : [ "Business Types" ],
        "summary" : "Get featured types",
        "description" : "Retrieves all featured business types for homepage display",
        "operationId" : "getFeaturedTypes",
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Featured types retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/test" : {
      "get" : {
        "tags" : [ "Services" ],
        "summary" : "Test endpoint",
        "description" : "Simple test endpoint to verify service is running",
        "operationId" : "test",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseString"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/slug/{slug}" : {
      "get" : {
        "tags" : [ "Services" ],
        "summary" : "Get service by slug",
        "description" : "Retrieves a specific service by its slug",
        "operationId" : "getServiceBySlug",
        "parameters" : [ {
          "name" : "slug",
          "in" : "path",
          "description" : "Service slug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Service found successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ServiceResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Service not found"
          }
        }
      }
    },
    "/api/v1/service/simple-list" : {
      "get" : {
        "tags" : [ "Services" ],
        "summary" : "Get simple service list",
        "description" : "Retrieves list of services with only ID and name for dropdown usage, with optional filtering",
        "operationId" : "getSimpleServiceList",
        "parameters" : [ {
          "name" : "typeId",
          "in" : "query",
          "description" : "Filter by type ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "categoryId",
          "in" : "query",
          "description" : "Filter by category ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cityId",
          "in" : "query",
          "description" : "Filter by city ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "status",
          "in" : "query",
          "description" : "Filter by status (default: ACTIVE)",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT", "OUT_OF_STOCK", "SEASONAL" ],
            "default" : "ACTIVE"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Services retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/search" : {
      "get" : {
        "tags" : [ "Services" ],
        "summary" : "Search services",
        "description" : "Search services by name, description, or tags",
        "operationId" : "searchServices",
        "parameters" : [ {
          "name" : "q",
          "in" : "query",
          "description" : "Search term",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 0
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 10
          },
          "example" : 10
        } ],
        "responses" : {
          "200" : {
            "description" : "Services found successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal server error"
          }
        }
      }
    },
    "/api/v1/service/packages/{packageId}/sub-packages" : {
      "get" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Get sub-packages by parent package",
        "description" : "Retrieves active sub-packages for a parent package with pagination and optional search",
        "operationId" : "getSubPackagesByParent",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Parent package id",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number (0-based)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "search",
          "in" : "query",
          "description" : "Search by package name",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Sub-packages retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePagedResponseServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/slug/{slug}" : {
      "get" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Get package by slug",
        "description" : "Retrieves a service package by its SEO-friendly slug identifier",
        "operationId" : "getPackageBySlug",
        "parameters" : [ {
          "name" : "slug",
          "in" : "path",
          "description" : "Package SEO-friendly slug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "404" : {
            "description" : "Package not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "Package retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/service/{serviceId}" : {
      "get" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Get packages by service",
        "description" : "Retrieves all packages for a specific service with pagination and sorting",
        "operationId" : "getPackagesByService",
        "parameters" : [ {
          "name" : "serviceId",
          "in" : "path",
          "description" : "Service unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number (0-based)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "sortBy",
          "in" : "query",
          "description" : "Sort field",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "displayOrder"
          }
        }, {
          "name" : "sortDir",
          "in" : "query",
          "description" : "Sort direction (asc/desc)",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "asc"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Packages retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePagedResponseServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/service/{serviceId}/type/{packageType}" : {
      "get" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Get packages by type",
        "description" : "Retrieves packages filtered by package type (STANDARD, PREMIUM, CUSTOM, etc.)",
        "operationId" : "getPackagesByType",
        "parameters" : [ {
          "name" : "serviceId",
          "in" : "path",
          "description" : "Service unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "packageType",
          "in" : "path",
          "description" : "Package type filter",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum" : [ "BUNDLE", "LUXURY", "BASIC", "STANDARD", "PREMIUM", "DELUXE", "COMBO", "SUBSCRIPTION", "TRIAL", "CUSTOM", "SUB_PACKAGE" ]
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Packages retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/service/{serviceId}/top-level" : {
      "get" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Get top-level packages by service",
        "description" : "Retrieves top-level active packages for a specific service with pagination and optional search",
        "operationId" : "getTopLevelPackagesByService",
        "parameters" : [ {
          "name" : "serviceId",
          "in" : "path",
          "description" : "Service unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number (0-based)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "search",
          "in" : "query",
          "description" : "Search by package name",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Top-level packages retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePagedResponseServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/service/{serviceId}/tags" : {
      "get" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Get packages by tags",
        "description" : "Retrieves packages filtered by specific tags and categories for enhanced discoverability",
        "operationId" : "getPackagesByTags",
        "parameters" : [ {
          "name" : "serviceId",
          "in" : "path",
          "description" : "Service unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "tags",
          "in" : "query",
          "description" : "List of tags to filter by",
          "required" : true,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Invalid tags parameter",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServicePackageResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "Tagged packages retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/service/{serviceId}/stats" : {
      "get" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Get package statistics",
        "description" : "Retrieves comprehensive statistics about packages for a service including counts, customization rates, and analytics",
        "operationId" : "getPackageStats",
        "parameters" : [ {
          "name" : "serviceId",
          "in" : "path",
          "description" : "Service unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Package statistics retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseMapStringObject"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/service/{serviceId}/search" : {
      "get" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Search packages",
        "description" : "Search packages by name, description, or tags within a service",
        "operationId" : "searchPackages",
        "parameters" : [ {
          "name" : "serviceId",
          "in" : "path",
          "description" : "Service unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "query",
          "in" : "query",
          "description" : "Search query term",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Search results retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/service/{serviceId}/recommended" : {
      "get" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Get recommended packages",
        "description" : "Retrieves AI-powered recommended packages based on user preferences and booking patterns",
        "operationId" : "getRecommendedPackages",
        "parameters" : [ {
          "name" : "serviceId",
          "in" : "path",
          "description" : "Service unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Recommended packages retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/service/{serviceId}/price-range" : {
      "get" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Get packages by price range",
        "description" : "Retrieves packages within a specified price range for budget-conscious filtering",
        "operationId" : "getPackagesByPriceRange",
        "parameters" : [ {
          "name" : "serviceId",
          "in" : "path",
          "description" : "Service unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "minPrice",
          "in" : "query",
          "description" : "Minimum price filter",
          "required" : true,
          "schema" : {
            "type" : "number",
            "format" : "double"
          }
        }, {
          "name" : "maxPrice",
          "in" : "query",
          "description" : "Maximum price filter",
          "required" : true,
          "schema" : {
            "type" : "number",
            "format" : "double"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Invalid price range parameters",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServicePackageResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "Packages in price range retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/service/{serviceId}/popular" : {
      "get" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Get popular packages",
        "description" : "Retrieves most popular and frequently booked packages for a service based on booking statistics",
        "operationId" : "getPopularPackages",
        "parameters" : [ {
          "name" : "serviceId",
          "in" : "path",
          "description" : "Service unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Popular packages retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/service/{serviceId}/offers" : {
      "get" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Get packages with offers",
        "description" : "Retrieves packages that have active promotional offers, discounts, or special deals",
        "operationId" : "getPackagesWithOffers",
        "parameters" : [ {
          "name" : "serviceId",
          "in" : "path",
          "description" : "Service unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Packages with offers retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/service/{serviceId}/featured" : {
      "get" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Get featured packages",
        "description" : "Retrieves highlighted and promoted packages for a specific service",
        "operationId" : "getFeaturedPackages",
        "parameters" : [ {
          "name" : "serviceId",
          "in" : "path",
          "description" : "Service unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Featured packages retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/service/{serviceId}/customizable" : {
      "get" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Get customizable packages",
        "description" : "Retrieves all packages that support user customization with option groups",
        "operationId" : "getCustomizablePackages",
        "parameters" : [ {
          "name" : "serviceId",
          "in" : "path",
          "description" : "Service unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Customizable packages retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/service/{serviceId}/bookable" : {
      "get" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Get bookable packages",
        "description" : "Retrieves packages that are currently available for booking and scheduling",
        "operationId" : "getBookablePackages",
        "parameters" : [ {
          "name" : "serviceId",
          "in" : "path",
          "description" : "Service unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Bookable packages retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/service/{serviceId}/best-value" : {
      "get" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Get best value packages",
        "description" : "Retrieves packages with the best price-to-value ratio and maximum savings for customers",
        "operationId" : "getBestValuePackages",
        "parameters" : [ {
          "name" : "serviceId",
          "in" : "path",
          "description" : "Service unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Best value packages retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/service/{serviceId}/available" : {
      "get" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Get available packages for date range",
        "description" : "Retrieves packages that are available and bookable within a specific date range",
        "operationId" : "getAvailablePackages",
        "parameters" : [ {
          "name" : "serviceId",
          "in" : "path",
          "description" : "Service unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "startDate",
          "in" : "query",
          "description" : "Start date (ISO format: yyyy-MM-ddTHH:mm:ss)",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "endDate",
          "in" : "query",
          "description" : "End date (ISO format: yyyy-MM-ddTHH:mm:ss)",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Available packages retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServicePackageResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Invalid date format or range",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/service/{serviceId}/active-offers" : {
      "get" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Get packages with active offers",
        "description" : "Retrieves packages that currently have active, non-expired promotional offers and discounts",
        "operationId" : "getPackagesWithActiveOffers",
        "parameters" : [ {
          "name" : "serviceId",
          "in" : "path",
          "description" : "Service unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Packages with active offers retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options/package/{packageId}" : {
      "get" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Get options by package",
        "description" : "Retrieves all customization options for a specific package with pagination support",
        "operationId" : "getOptionsByPackage",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number (0-based)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "sortBy",
          "in" : "query",
          "description" : "Sort field",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "displayOrder"
          }
        }, {
          "name" : "sortDir",
          "in" : "query",
          "description" : "Sort direction (asc/desc)",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "asc"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Options retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListPackageOption"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options/package/{packageId}/with-pricing" : {
      "get" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Get options with pricing",
        "description" : "Retrieves options that have associated pricing information for cost calculations",
        "operationId" : "getOptionsWithPricing",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Options with pricing retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListPackageOption"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options/package/{packageId}/with-choices" : {
      "get" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Get options with choices",
        "description" : "Retrieves options that have predefined choice values available for user selection",
        "operationId" : "getOptionsWithChoices",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Options with choices retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListPackageOption"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options/package/{packageId}/type/{optionType}" : {
      "get" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Get options by type",
        "description" : "Retrieves options filtered by type (SINGLE_CHOICE, MULTIPLE_CHOICE, QUANTITY, ADD_ON)",
        "operationId" : "getOptionsByType",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "optionType",
          "in" : "path",
          "description" : "Option type filter",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum" : [ "SINGLE_CHOICE", "MULTIPLE_CHOICE", "QUANTITY", "ADD_ON", "TEXT_INPUT", "DROPDOWN", "RANGE_SLIDER", "DATE_PICKER", "TIME_PICKER" ]
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Invalid option type",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListPackageOption"
                }
              }
            }
          },
          "200" : {
            "description" : "Options retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListPackageOption"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options/package/{packageId}/stats" : {
      "get" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Get option statistics",
        "description" : "Retrieves comprehensive statistics about options for a package including counts, requirement rates, and analytics",
        "operationId" : "getOptionStats",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Option statistics retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseMapStringObject"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options/package/{packageId}/single-choice" : {
      "get" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Get single choice options",
        "description" : "Retrieves all single-select (radio button) options for a package",
        "operationId" : "getSingleChoiceOptions",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Single choice options retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListPackageOption"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options/package/{packageId}/search" : {
      "get" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Search options",
        "description" : "Search options by name, description, or choice values within a specific package",
        "operationId" : "searchOptions",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "query",
          "in" : "query",
          "description" : "Search query term",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Invalid search query",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListPackageOption"
                }
              }
            }
          },
          "200" : {
            "description" : "Search results retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListPackageOption"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options/package/{packageId}/required" : {
      "get" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Get required options",
        "description" : "Retrieves all mandatory options that users must select when customizing a package",
        "operationId" : "getRequiredOptions",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Required options retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListPackageOption"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options/package/{packageId}/quantity" : {
      "get" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Get quantity options",
        "description" : "Retrieves options that allow users to specify quantities or numeric values for customization",
        "operationId" : "getQuantityOptions",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Quantity options retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListPackageOption"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options/package/{packageId}/optional" : {
      "get" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Get optional options",
        "description" : "Retrieves all non-mandatory options that users can optionally select for additional customization",
        "operationId" : "getOptionalOptions",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Optional options retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListPackageOption"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options/package/{packageId}/multiple-choice" : {
      "get" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Get multiple choice options",
        "description" : "Retrieves all multi-select (checkbox) options for a package",
        "operationId" : "getMultipleChoiceOptions",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Multiple choice options retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListPackageOption"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options/package/{packageId}/conditional" : {
      "get" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Get conditional options",
        "description" : "Retrieves options that appear conditionally based on other selections or business rules",
        "operationId" : "getConditionalOptions",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Conditional options retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListPackageOption"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options/package/{packageId}/add-ons" : {
      "get" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Get add-on options",
        "description" : "Retrieves additional supplementary options that can be added to enhance the base package",
        "operationId" : "getAddOnOptions",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Add-on options retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListPackageOption"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/package-options/import-template" : {
      "get" : {
        "tags" : [ "Package Option Management" ],
        "summary" : "Download parts import template",
        "description" : "Downloads a scoped XLSX template with sub-package reference data for bulk parts upload",
        "operationId" : "downloadImportTemplate",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "query",
          "description" : "Filter by package ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "subPackageId",
          "in" : "query",
          "description" : "Filter by sub-package ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "typeId",
          "in" : "query",
          "description" : "Filter by type ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "categoryId",
          "in" : "query",
          "description" : "Filter by category ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "serviceId",
          "in" : "query",
          "description" : "Filter by service ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cityId",
          "in" : "query",
          "description" : "Filter by city ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "type" : "string",
                    "format" : "byte"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/health" : {
      "get" : {
        "tags" : [ "Health & Monitoring" ],
        "summary" : "Health check",
        "description" : "Returns the health status of the Service Package API",
        "operationId" : "healthCheck",
        "responses" : {
          "200" : {
            "description" : "Service is healthy",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseMapStringObject"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/health/packages" : {
      "get" : {
        "tags" : [ "Health & Monitoring" ],
        "summary" : "Package service status",
        "description" : "Returns the status of package management features",
        "operationId" : "packageServiceStatus",
        "responses" : {
          "200" : {
            "description" : "Package service status",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseMapStringObject"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/featured" : {
      "get" : {
        "tags" : [ "Services" ],
        "summary" : "Get featured services",
        "description" : "Retrieves all featured services",
        "operationId" : "getFeaturedServices",
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Featured services retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/faqs/type/{type}" : {
      "get" : {
        "tags" : [ "General FAQ Management" ],
        "summary" : "Get FAQs by Type",
        "operationId" : "getFAQsByType",
        "parameters" : [ {
          "name" : "type",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum" : [ "CATEGORY", "SERVICE", "PACKAGE", "ORDERS", "TECHNICIAN", "GENERAL" ]
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListFAQResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/city-home-pages/city/{cityId}" : {
      "get" : {
        "tags" : [ "City Home Page Management" ],
        "summary" : "Get home page settings by city ID",
        "operationId" : "getHomePageByCity",
        "parameters" : [ {
          "name" : "cityId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseCityHomePage"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/categories/{id}/stats" : {
      "get" : {
        "tags" : [ "Service Categories" ],
        "summary" : "Get category statistics",
        "description" : "Retrieves detailed statistics for a category including services, bookings, vendors, ratings",
        "operationId" : "getCategoryStats",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Category ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "507f1f77bcf86cd799439011"
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "404" : {
            "description" : "Category not found"
          },
          "200" : {
            "description" : "Category statistics retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CategoryStatsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/categories/{id}/pricing-table/options" : {
      "get" : {
        "tags" : [ "Service Categories" ],
        "summary" : "Get pricing table options",
        "description" : "Returns parts grouped by service sub-package from package_option_items using sub_category_levels.categoryId",
        "operationId" : "getPricingTableOptions",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Category ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListPricingCategoryResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/categories/{id}/path" : {
      "get" : {
        "tags" : [ "Service Categories" ],
        "summary" : "Get category path",
        "description" : "Retrieves the genealogical path of a category from root to itself",
        "operationId" : "getCategoryPath",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Category ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "507f1f77bcf86cd799439011"
        } ],
        "responses" : {
          "200" : {
            "description" : "Category path retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal server error"
          },
          "404" : {
            "description" : "Category not found"
          }
        }
      }
    },
    "/api/v1/service/categories/{id}/image-diagnostic" : {
      "get" : {
        "tags" : [ "Service Categories" ],
        "summary" : "Get category image diagnostic",
        "description" : "Returns raw and normalized category image data to verify whether mismatches are coming from stored data or URL normalization.",
        "operationId" : "getCategoryImageDiagnostic",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Category ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "69bf0f6f12300c230d2d3c26"
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseCategoryImageDiagnosticResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/categories/tree" : {
      "get" : {
        "tags" : [ "Service Categories" ],
        "summary" : "Get category hierarchy tree",
        "description" : "Retrieves hierarchical tree structure of categories, optionally filtered by business type",
        "operationId" : "getCategoryTree",
        "parameters" : [ {
          "name" : "typeId",
          "in" : "query",
          "description" : "Filter tree by business type ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Category tree retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/categories/slug/{slug}" : {
      "get" : {
        "tags" : [ "Service Categories" ],
        "summary" : "Get category by slug",
        "description" : "Retrieves a specific category by its URL slug",
        "operationId" : "getCategoryBySlug",
        "parameters" : [ {
          "name" : "slug",
          "in" : "path",
          "description" : "Category Slug",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "ac-repair"
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Category found successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Category not found"
          }
        }
      }
    },
    "/api/v1/service/categories/parent/{parentId}" : {
      "get" : {
        "tags" : [ "Service Categories" ],
        "summary" : "Get subcategories by parent",
        "description" : "Retrieves all direct child categories under a parent category",
        "operationId" : "getSubcategoriesByParentId",
        "parameters" : [ {
          "name" : "parentId",
          "in" : "path",
          "description" : "Parent category ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "507f1f77bcf86cd799439011"
        } ],
        "responses" : {
          "200" : {
            "description" : "Subcategories retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal server error"
          }
        }
      }
    },
    "/api/v1/service/categories/featured" : {
      "get" : {
        "tags" : [ "Service Categories" ],
        "summary" : "Get featured categories",
        "description" : "Retrieves categories marked as featured for homepage display",
        "operationId" : "getFeaturedCategories",
        "parameters" : [ {
          "name" : "typeId",
          "in" : "query",
          "description" : "Filter featured categories by business type ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Featured categories retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/categories/by-type/{typeId}" : {
      "get" : {
        "tags" : [ "Service Categories" ],
        "summary" : "Get categories by business type",
        "description" : "Retrieves all categories under a specific business type",
        "operationId" : "getCategoriesByTypeId",
        "parameters" : [ {
          "name" : "typeId",
          "in" : "path",
          "description" : "Business type ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "507f1f77bcf86cd799439011"
        }, {
          "name" : "parentOnly",
          "in" : "query",
          "description" : "Return only parent categories (exclude sub-categories)",
          "required" : false,
          "schema" : {
            "type" : "boolean",
            "default" : false
          },
          "example" : false
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Categories retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/brands/{id}/stats" : {
      "get" : {
        "tags" : [ "Brands" ],
        "summary" : "Get brand statistics",
        "description" : "Retrieves statistics for a specific brand",
        "operationId" : "getBrandStatistics",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Brand ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "404" : {
            "description" : "Brand not found"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Brand statistics retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/brands/featured" : {
      "get" : {
        "tags" : [ "Brands" ],
        "summary" : "Get featured brands",
        "description" : "Retrieves all featured brands",
        "operationId" : "getFeaturedBrands",
        "parameters" : [ {
          "name" : "limit",
          "in" : "query",
          "description" : "Limit number of results",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Featured brands retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/banners/{id}/stats" : {
      "get" : {
        "tags" : [ "Banners" ],
        "summary" : "Get banner statistics",
        "description" : "Retrieves statistics for a specific banner",
        "operationId" : "getBannerStatistics",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Banner ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseMapStringObject"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/banners/position/{position}" : {
      "get" : {
        "tags" : [ "Banners" ],
        "summary" : "Get banners by position",
        "description" : "Retrieves active banners for a specific position",
        "operationId" : "getBannersByPosition",
        "parameters" : [ {
          "name" : "position",
          "in" : "path",
          "description" : "Banner position",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum" : [ "HOME_HERO", "HOME_TOP", "HOME_MIDDLE", "HOME_BOTTOM", "SIDEBAR", "FOOTER", "CATEGORY_TOP", "SERVICE_TOP", "CHECKOUT_TOP", "POPUP", "FLOATING" ]
          }
        }, {
          "name" : "cityId",
          "in" : "query",
          "description" : "City ID for city-specific banners",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListBannerResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/banners/global" : {
      "get" : {
        "tags" : [ "Banners" ],
        "summary" : "Get global banners",
        "description" : "Retrieves all global banners (banners with no city targeting)",
        "operationId" : "getGlobalBanners",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListBannerResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/banners/featured" : {
      "get" : {
        "tags" : [ "Banners" ],
        "summary" : "Get featured banners",
        "description" : "Retrieves all featured banners",
        "operationId" : "getFeaturedBanners",
        "parameters" : [ {
          "name" : "limit",
          "in" : "query",
          "description" : "Limit number of results",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListBannerResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/banners/city/{cityId}" : {
      "get" : {
        "tags" : [ "Banners" ],
        "summary" : "Get banners by city",
        "description" : "Retrieves active banners for a specific city",
        "operationId" : "getBannersByCity",
        "parameters" : [ {
          "name" : "cityId",
          "in" : "path",
          "description" : "City ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "position",
          "in" : "query",
          "description" : "Banner position filter",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "HOME_HERO", "HOME_TOP", "HOME_MIDDLE", "HOME_BOTTOM", "SIDEBAR", "FOOTER", "CATEGORY_TOP", "SERVICE_TOP", "CHECKOUT_TOP", "POPUP", "FLOATING" ]
          }
        }, {
          "name" : "featuredOnly",
          "in" : "query",
          "description" : "Featured banners only",
          "required" : false,
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListBannerResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/types" : {
      "get" : {
        "tags" : [ "Services" ],
        "summary" : "Get active types",
        "description" : "Get all active service types with pagination and optional city filtering.",
        "operationId" : "getActiveTypes",
        "parameters" : [ {
          "name" : "City-ID",
          "in" : "header",
          "description" : "City ID for filtering",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "search",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePagePublicTypeResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/services/{serviceId}/recommended" : {
      "get" : {
        "tags" : [ "Services" ],
        "summary" : "Get recommended services",
        "description" : "Get recommended services for a specific service. Requires Authentication for results, returns empty otherwise.",
        "operationId" : "getRecommendedServices",
        "parameters" : [ {
          "name" : "City-ID",
          "in" : "header",
          "description" : "City ID for filtering",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "Authorization",
          "in" : "header",
          "description" : "Auth Token",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "serviceId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 5
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseRecommendationResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/services/slug/{slug}" : {
      "get" : {
        "tags" : [ "Services" ],
        "summary" : "Get service by Slug",
        "description" : "Get active service details by Slug.",
        "operationId" : "getServiceBySlug_1",
        "parameters" : [ {
          "name" : "City-ID",
          "in" : "header",
          "description" : "City ID for filtering",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "slug",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePublicServiceResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/services/category/{slug}" : {
      "get" : {
        "tags" : [ "Services" ],
        "summary" : "Get services by Category Slug",
        "description" : "Get active services filtered by Category Slug with nested packages and options.",
        "operationId" : "getServicesByCategory",
        "parameters" : [ {
          "name" : "City-ID",
          "in" : "header",
          "description" : "City ID for filtering",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "slug",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 100
          }
        }, {
          "name" : "search",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePagePublicServiceResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/services/category/{categoryId}/with-subcategory" : {
      "get" : {
        "tags" : [ "Services" ],
        "summary" : "Get services grouped by subcategory",
        "description" : "Get services grouped by subcategory for a given parent category.",
        "operationId" : "getServicesGroupedBySubCategory",
        "parameters" : [ {
          "name" : "City-ID",
          "in" : "header",
          "description" : "City ID for filtering",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "categoryId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListCategoryServicesDTO"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/search" : {
      "get" : {
        "tags" : [ "Services" ],
        "summary" : "Unified Search",
        "description" : "Search Types, Categories, and Services with keywords.",
        "operationId" : "unifiedSearch",
        "parameters" : [ {
          "name" : "City-ID",
          "in" : "header",
          "description" : "City ID for filtering",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "q",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "maxTypes",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 10
          }
        }, {
          "name" : "maxCategories",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 10
          }
        }, {
          "name" : "maxServices",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 10
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseMapStringObject"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/search/subcategories-packages" : {
      "get" : {
        "tags" : [ "Services" ],
        "summary" : "Search subcategories with grouped packages",
        "description" : "Searches packages and returns data grouped by subcategory only. Supports optional type and city filters.",
        "operationId" : "searchSubcategoriesWithGroupedPackages",
        "parameters" : [ {
          "name" : "City-ID",
          "in" : "header",
          "description" : "City ID for filtering",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "q",
          "in" : "query",
          "description" : "Search query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "typeId",
          "in" : "query",
          "description" : "Optional type ID filter",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "maxGroups",
          "in" : "query",
          "description" : "Maximum grouped subcategories",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 12
          }
        }, {
          "name" : "maxPackagesPerGroup",
          "in" : "query",
          "description" : "Maximum packages per group",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 8
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListSubCategoryPackageGroupResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/packages/{packageId}/related" : {
      "get" : {
        "tags" : [ "Services" ],
        "summary" : "Get related packages",
        "description" : "Get related packages for a checkout package using curated package links with service-level fallback.",
        "operationId" : "getRelatedPackages",
        "parameters" : [ {
          "name" : "City-ID",
          "in" : "header",
          "description" : "City ID for filtering",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "packageId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 4
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseRelatedPackagesSectionResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/packages/service/{serviceId}" : {
      "get" : {
        "tags" : [ "Services" ],
        "summary" : "Get packages by Service ID",
        "description" : "Get active packages for a specific service.",
        "operationId" : "getPackagesByService_1",
        "parameters" : [ {
          "name" : "City-ID",
          "in" : "header",
          "description" : "City ID for filtering",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "serviceId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePageServicePackageResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/options/service/{serviceId}/package/{packageId}" : {
      "get" : {
        "tags" : [ "Services" ],
        "summary" : "Get options by Service and Package ID",
        "description" : "Get active options available for a specific package.",
        "operationId" : "getOptionsByServiceAndPackage",
        "parameters" : [ {
          "name" : "City-ID",
          "in" : "header",
          "description" : "City ID for filtering",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "serviceId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "packageId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePagePackageOptionResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/filters" : {
      "get" : {
        "tags" : [ "Services" ],
        "summary" : "Get Service Filters",
        "description" : "Get metadata for filtering services (price range, etc).",
        "operationId" : "getServiceFilters",
        "parameters" : [ {
          "name" : "City-ID",
          "in" : "header",
          "description" : "City ID for filtering",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseMapStringObject"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/categories" : {
      "get" : {
        "tags" : [ "Services" ],
        "summary" : "Get all active categories",
        "description" : "Get all active categories with pagination and optional city filtering.",
        "operationId" : "getAllActiveCategories",
        "parameters" : [ {
          "name" : "City-ID",
          "in" : "header",
          "description" : "City ID for filtering",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "search",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePagePublicCategoryResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/categories/type/{typeId}" : {
      "get" : {
        "tags" : [ "Services" ],
        "summary" : "Get categories by Type ID",
        "description" : "Get active categories filtered by Type ID.",
        "operationId" : "getCategoriesByType",
        "parameters" : [ {
          "name" : "City-ID",
          "in" : "header",
          "description" : "City ID for filtering",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "typeId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "search",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePagePublicCategoryResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/categories/slug/{slug}" : {
      "get" : {
        "tags" : [ "Services" ],
        "summary" : "Get category by Slug",
        "description" : "Get active category details by Slug.",
        "operationId" : "getCategoryBySlug_1",
        "parameters" : [ {
          "name" : "City-ID",
          "in" : "header",
          "description" : "City ID for filtering",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "slug",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePublicCategoryResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/categories/parent/{parentId}" : {
      "get" : {
        "tags" : [ "Services" ],
        "summary" : "Get subcategories by Parent ID",
        "description" : "Get active subcategories filtered by Parent Category ID.",
        "operationId" : "getCategoriesByParent",
        "parameters" : [ {
          "name" : "City-ID",
          "in" : "header",
          "description" : "City ID for filtering",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "parentId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "search",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePagePublicCategoryResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/blogs" : {
      "get" : {
        "tags" : [ "public-blog-post-controller" ],
        "operationId" : "getPublishedBlogs",
        "parameters" : [ {
          "name" : "pageable",
          "in" : "query",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/Pageable"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePageBlogPostResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/blogs/{slug}" : {
      "get" : {
        "tags" : [ "public-blog-post-controller" ],
        "operationId" : "getPublishedBlogBySlug",
        "parameters" : [ {
          "name" : "slug",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseBlogPostResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/blogs/{slug}/related" : {
      "get" : {
        "tags" : [ "public-blog-post-controller" ],
        "operationId" : "getRelatedPublishedBlogs",
        "parameters" : [ {
          "name" : "slug",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 4
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListBlogPostResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/blogs/latest" : {
      "get" : {
        "tags" : [ "public-blog-post-controller" ],
        "operationId" : "getLatestPublishedBlogs",
        "parameters" : [ {
          "name" : "limit",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 3
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListBlogPostResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/products/slug/{slug}" : {
      "get" : {
        "tags" : [ "Products" ],
        "summary" : "Get product by slug",
        "description" : "Retrieves a specific product by its URL slug",
        "operationId" : "getProductBySlug",
        "parameters" : [ {
          "name" : "slug",
          "in" : "path",
          "description" : "Product slug",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "samsung-galaxy-s24"
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Product found successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Product not found"
          }
        }
      }
    },
    "/api/v1/products/sku/{sku}" : {
      "get" : {
        "tags" : [ "Products" ],
        "summary" : "Get product by SKU",
        "description" : "Retrieves a specific product by its Stock Keeping Unit",
        "operationId" : "getProductBySku",
        "parameters" : [ {
          "name" : "sku",
          "in" : "path",
          "description" : "Product SKU",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "SAM-GAL-S24-128GB"
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Product found successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "Product not found"
          }
        }
      }
    },
    "/api/v1/products/featured" : {
      "get" : {
        "tags" : [ "Products" ],
        "summary" : "Get featured products",
        "description" : "Retrieves all featured products with pagination",
        "operationId" : "getFeaturedProducts",
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "description" : "Page number for pagination (0-based)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 0
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Number of items per page",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 10
          },
          "example" : 10
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Featured products retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-categories/tree" : {
      "get" : {
        "tags" : [ "Product Categories" ],
        "summary" : "Get product category hierarchy tree",
        "description" : "Retrieves hierarchical tree structure of product categories",
        "operationId" : "getProductCategoryTree",
        "parameters" : [ {
          "name" : "rootCategoryId",
          "in" : "query",
          "description" : "Filter tree by root category ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Product category tree retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-categories/slug/{slug}" : {
      "get" : {
        "tags" : [ "Product Categories" ],
        "summary" : "Get product category by slug",
        "description" : "Retrieves a specific product category by its URL slug",
        "operationId" : "getProductCategoryBySlug",
        "parameters" : [ {
          "name" : "slug",
          "in" : "path",
          "description" : "Product category slug",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "smartphones"
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "404" : {
            "description" : "Product category not found"
          },
          "200" : {
            "description" : "Product category found successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/product-categories/parents" : {
      "get" : {
        "tags" : [ "Product Categories" ],
        "summary" : "Get parent categories",
        "description" : "Retrieves all root level product categories",
        "operationId" : "getParentCategories",
        "responses" : {
          "200" : {
            "description" : "Parent categories retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal server error"
          }
        }
      }
    },
    "/api/v1/product-categories/parent/{parentId}" : {
      "get" : {
        "tags" : [ "Product Categories" ],
        "summary" : "Get subcategories by parent",
        "description" : "Retrieves all direct child categories under a parent category",
        "operationId" : "getSubcategoriesByParentId_1",
        "parameters" : [ {
          "name" : "parentId",
          "in" : "path",
          "description" : "Parent category ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "507f1f77bcf86cd799439011"
        } ],
        "responses" : {
          "200" : {
            "description" : "Subcategories retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal server error"
          }
        }
      }
    },
    "/api/v1/product-categories/featured" : {
      "get" : {
        "tags" : [ "Product Categories" ],
        "summary" : "Get featured product categories",
        "description" : "Retrieves all featured product categories with pagination",
        "operationId" : "getFeaturedProductCategories",
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "description" : "Page number for pagination (0-based)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 0
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Number of items per page",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 10
          },
          "example" : 10
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Featured product categories retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/inventory/template" : {
      "get" : {
        "tags" : [ "Inventory Management" ],
        "summary" : "Download CSV template",
        "description" : "Downloads a CSV template file for inventory import",
        "operationId" : "downloadCsvTemplate",
        "responses" : {
          "200" : {
            "description" : "CSV template downloaded successfully",
            "content" : {
              "text/csv" : { }
            }
          },
          "500" : {
            "description" : "Internal server error"
          }
        }
      }
    },
    "/api/v1/inventory/stats" : {
      "get" : {
        "tags" : [ "Inventory Management" ],
        "summary" : "Get inventory statistics",
        "description" : "Retrieves comprehensive inventory statistics and analytics",
        "operationId" : "getInventoryStats",
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Inventory statistics retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/inventory/report" : {
      "get" : {
        "tags" : [ "Inventory Management" ],
        "summary" : "Get inventory report",
        "description" : "Generates comprehensive inventory report with filtering options",
        "operationId" : "getInventoryReport",
        "parameters" : [ {
          "name" : "cityId",
          "in" : "query",
          "description" : "Filter by city ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "status",
          "in" : "query",
          "description" : "Filter by stock status",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "IN_STOCK", "LOW_STOCK", "OUT_OF_STOCK", "REORDER_REQUIRED", "OVERSTOCKED", "RESERVED", "DISCONTINUED", "DAMAGED", "EXPIRED", "QUARANTINED" ]
          }
        }, {
          "name" : "reportType",
          "in" : "query",
          "description" : "Report type",
          "required" : false,
          "allowEmptyValue" : true,
          "schema" : {
            "type" : "string",
            "default" : "FULL"
          }
        }, {
          "name" : "fromDate",
          "in" : "query",
          "description" : "From date for movement report",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "toDate",
          "in" : "query",
          "description" : "To date for movement report",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Inventory report generated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/inventory/reorder-required" : {
      "get" : {
        "tags" : [ "Inventory Management" ],
        "summary" : "Get items requiring reorder",
        "description" : "Retrieves all items that require reordering",
        "operationId" : "getItemsRequiringReorder",
        "parameters" : [ {
          "name" : "cityId",
          "in" : "query",
          "description" : "Filter by city ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Reorder items retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/inventory/product/{productId}/summary" : {
      "get" : {
        "tags" : [ "Inventory Management" ],
        "summary" : "Get product stock summary",
        "description" : "Retrieves stock summary for a specific product across all cities",
        "operationId" : "getProductStockSummary",
        "parameters" : [ {
          "name" : "productId",
          "in" : "path",
          "description" : "Product ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Product stock summary retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/inventory/out-of-stock" : {
      "get" : {
        "tags" : [ "Inventory Management" ],
        "summary" : "Get out of stock items",
        "description" : "Retrieves all items that are out of stock",
        "operationId" : "getOutOfStockItems",
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "description" : "Page number",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          },
          "example" : 0
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 10
          },
          "example" : 10
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Out of stock items retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/inventory/monitor" : {
      "get" : {
        "tags" : [ "Inventory Management" ],
        "summary" : "Real-time stock monitoring",
        "description" : "Provides real-time stock level monitoring with alerts and critical status",
        "operationId" : "getStockMonitoring",
        "parameters" : [ {
          "name" : "cityId",
          "in" : "query",
          "description" : "Filter by city ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "criticalOnly",
          "in" : "query",
          "description" : "Include only critical items",
          "required" : false,
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Stock monitoring data retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/inventory/low-stock" : {
      "get" : {
        "tags" : [ "Inventory Management" ],
        "summary" : "Get low stock items",
        "description" : "Retrieves all items with low stock levels",
        "operationId" : "getLowStockItems",
        "parameters" : [ {
          "name" : "cityId",
          "in" : "query",
          "description" : "Filter by city ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Low stock items retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal server error"
          }
        }
      }
    },
    "/api/v1/inventory/export" : {
      "get" : {
        "tags" : [ "Inventory Management" ],
        "summary" : "Export inventory to CSV",
        "description" : "Exports inventory data to CSV format with filtering options",
        "operationId" : "exportInventoryToCsv",
        "parameters" : [ {
          "name" : "cityId",
          "in" : "query",
          "description" : "Filter by city ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "productId",
          "in" : "query",
          "description" : "Filter by product ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "status",
          "in" : "query",
          "description" : "Filter by stock status",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "IN_STOCK", "LOW_STOCK", "OUT_OF_STOCK", "REORDER_REQUIRED", "OVERSTOCKED", "RESERVED", "DISCONTINUED", "DAMAGED", "EXPIRED", "QUARANTINED" ]
          }
        }, {
          "name" : "detailed",
          "in" : "query",
          "description" : "Export detailed format with all fields",
          "required" : false,
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "CSV export completed successfully",
            "content" : {
              "text/csv" : { }
            }
          }
        }
      }
    },
    "/api/v1/inventory/city/{cityId}/summary" : {
      "get" : {
        "tags" : [ "Inventory Management" ],
        "summary" : "Get city stock summary",
        "description" : "Retrieves stock summary for a specific city across all products",
        "operationId" : "getCityStockSummary",
        "parameters" : [ {
          "name" : "cityId",
          "in" : "path",
          "description" : "City ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "City stock summary retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/inventory/check-availability" : {
      "get" : {
        "tags" : [ "Inventory Management" ],
        "summary" : "Check stock availability",
        "description" : "Checks if sufficient stock is available for a product in a city",
        "operationId" : "checkStockAvailability",
        "parameters" : [ {
          "name" : "productId",
          "in" : "query",
          "description" : "Product ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cityId",
          "in" : "query",
          "description" : "City ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "quantity",
          "in" : "query",
          "description" : "Requested quantity",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Stock availability checked successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal server error"
          },
          "400" : {
            "description" : "Invalid request parameters"
          }
        }
      }
    },
    "/api/v1/inventory/alerts" : {
      "get" : {
        "tags" : [ "Inventory Management" ],
        "summary" : "Get inventory alerts",
        "description" : "Retrieves all inventory items with active alerts",
        "operationId" : "getInventoryAlerts",
        "parameters" : [ {
          "name" : "cityId",
          "in" : "query",
          "description" : "Filter by city ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Inventory alerts retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/home-page-sections" : {
      "get" : {
        "tags" : [ "Home Page Sections" ],
        "summary" : "Get sections by city ID",
        "operationId" : "getSectionsByCityId",
        "parameters" : [ {
          "name" : "cityId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 10
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePageHomePageSection"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/carts/{cartId}" : {
      "get" : {
        "tags" : [ "Cart Management" ],
        "summary" : "Get cart by ID",
        "description" : "Retrieves a cart with all its items and calculated totals",
        "operationId" : "getCartById",
        "parameters" : [ {
          "name" : "cartId",
          "in" : "path",
          "description" : "Cart ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "404" : {
            "description" : "Cart not found"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Cart found successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/carts/{cartId}/summary" : {
      "get" : {
        "tags" : [ "Cart Management" ],
        "summary" : "Get cart summary",
        "description" : "Gets a summary of cart totals and key information",
        "operationId" : "getCartSummary",
        "parameters" : [ {
          "name" : "cartId",
          "in" : "path",
          "description" : "Cart ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "404" : {
            "description" : "Cart not found"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Cart summary retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/carts/session/{sessionId}" : {
      "get" : {
        "tags" : [ "Cart Management" ],
        "summary" : "Get cart by session ID",
        "description" : "Retrieves cart for guest users using session ID",
        "operationId" : "getCartBySession",
        "parameters" : [ {
          "name" : "sessionId",
          "in" : "path",
          "description" : "Session ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "404" : {
            "description" : "No cart found for session"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Cart found successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/carts/customer/{customerId}" : {
      "get" : {
        "tags" : [ "Cart Management" ],
        "summary" : "Get active cart for customer",
        "description" : "Retrieves the active cart for a specific customer",
        "operationId" : "getActiveCartByCustomer",
        "parameters" : [ {
          "name" : "customerId",
          "in" : "path",
          "description" : "Customer ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cityId",
          "in" : "query",
          "description" : "City ID for filtering",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Cart found successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "No active cart found"
          }
        }
      }
    },
    "/api/v1/audit/user/{userId}" : {
      "get" : {
        "tags" : [ "Audit Management" ],
        "summary" : "Get audit logs by user",
        "description" : "Retrieve audit logs for a specific user",
        "operationId" : "getAuditLogsByUser",
        "parameters" : [ {
          "name" : "userId",
          "in" : "path",
          "description" : "User ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePagedResponseAuditLog"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/audit/sensitive-operations" : {
      "get" : {
        "tags" : [ "Audit Management" ],
        "summary" : "Get sensitive operations audit logs",
        "description" : "Retrieve audit logs for sensitive operations (pricing, inventory)",
        "operationId" : "getSensitiveOperations",
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "description" : "Page number",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePagedResponseAuditLog"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/audit/failed-operations" : {
      "get" : {
        "tags" : [ "Audit Management" ],
        "summary" : "Get failed operations audit logs",
        "description" : "Retrieve audit logs for failed operations",
        "operationId" : "getFailedOperations",
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "description" : "Page number",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePagedResponseAuditLog"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/audit/entity/{entityType}/{entityId}" : {
      "get" : {
        "tags" : [ "Audit Management" ],
        "summary" : "Get audit logs by entity",
        "description" : "Retrieve audit logs for a specific entity",
        "operationId" : "getAuditLogsByEntity",
        "parameters" : [ {
          "name" : "entityType",
          "in" : "path",
          "description" : "Entity type",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "entityId",
          "in" : "path",
          "description" : "Entity ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListAuditLog"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/audit/date-range" : {
      "get" : {
        "tags" : [ "Audit Management" ],
        "summary" : "Get audit logs by date range",
        "description" : "Retrieve audit logs within a specific date range",
        "operationId" : "getAuditLogsByDateRange",
        "parameters" : [ {
          "name" : "startDate",
          "in" : "query",
          "description" : "Start date",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "endDate",
          "in" : "query",
          "description" : "End date",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "description" : "Page number",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "Page size",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponsePagedResponseAuditLog"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-visits/vendor/{vendorId}" : {
      "get" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Get visits by vendor",
        "description" : "Retrieves all visits for a specific vendor",
        "operationId" : "getVisitsByVendor",
        "parameters" : [ {
          "name" : "vendorId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServiceVisitResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-visits/upcoming" : {
      "get" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Get upcoming visits",
        "description" : "Retrieves all upcoming visits",
        "operationId" : "getUpcomingVisits",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServiceVisitResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-visits/today" : {
      "get" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Get today's visits",
        "description" : "Retrieves all visits scheduled for today",
        "operationId" : "getTodaysVisits",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServiceVisitResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-visits/status/{status}" : {
      "get" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Get visits by status",
        "description" : "Retrieves all visits with a specific status",
        "operationId" : "getVisitsByStatus",
        "parameters" : [ {
          "name" : "status",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum" : [ "SCHEDULED", "IN_PROGRESS", "COMPLETED", "CANCELLED", "RESCHEDULED", "NO_SHOW", "CUSTOMER_UNAVAILABLE", "FAILED", "PARTIALLY_COMPLETED", "PENDING_APPROVAL" ]
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServiceVisitResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-visits/overdue" : {
      "get" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Get overdue visits",
        "description" : "Retrieves all overdue visits",
        "operationId" : "getOverdueVisits",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServiceVisitResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-visits/number/{visitNumber}" : {
      "get" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Get visit by visit number",
        "description" : "Retrieves a service visit by its visit number",
        "operationId" : "getVisitByVisitNumber",
        "parameters" : [ {
          "name" : "visitNumber",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceVisitResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-visits/customer/{customerId}" : {
      "get" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Get visits by customer",
        "description" : "Retrieves all visits for a specific customer",
        "operationId" : "getVisitsByCustomer",
        "parameters" : [ {
          "name" : "customerId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServiceVisitResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-visits/booking/{bookingId}" : {
      "get" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Get visits by booking",
        "description" : "Retrieves all visits for a specific booking",
        "operationId" : "getVisitsByBooking",
        "parameters" : [ {
          "name" : "bookingId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServiceVisitResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-visits/analytics/count" : {
      "get" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Get total visits count",
        "description" : "Returns the total number of visits",
        "operationId" : "getTotalVisitsCount",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseLong"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-visits/analytics/average-duration" : {
      "get" : {
        "tags" : [ "Service Visit Management" ],
        "summary" : "Get average visit duration",
        "description" : "Returns the average visit duration",
        "operationId" : "getAverageVisitDuration",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseDouble"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings/{bookingId}/suggested-vendors" : {
      "get" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Get suggested vendors",
        "description" : "Gets suggested vendors for a booking",
        "operationId" : "getSuggestedVendors",
        "parameters" : [ {
          "name" : "bookingId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListString"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings/vendor/{vendorId}" : {
      "get" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Get bookings by vendor",
        "description" : "Retrieves all bookings assigned to a specific vendor",
        "operationId" : "getVendorBookings",
        "parameters" : [ {
          "name" : "vendorId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServiceBookingResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings/upcoming" : {
      "get" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Get upcoming bookings",
        "description" : "Retrieves all upcoming bookings",
        "operationId" : "getUpcomingBookings",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServiceBookingResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings/today" : {
      "get" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Get today's bookings",
        "description" : "Retrieves all bookings scheduled for today",
        "operationId" : "getTodaysBookings",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServiceBookingResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings/status/{status}" : {
      "get" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Get bookings by status",
        "description" : "Retrieves all bookings with a specific status",
        "operationId" : "getBookingsByStatus",
        "parameters" : [ {
          "name" : "status",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum" : [ "PENDING", "CONFIRMED", "ASSIGNED", "IN_PROGRESS", "COMPLETED", "CANCELLED", "RESCHEDULED", "NO_SHOW", "FAILED", "REFUNDED", "ON_HOLD" ]
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServiceBookingResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings/overdue" : {
      "get" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Get overdue bookings",
        "description" : "Retrieves all overdue bookings",
        "operationId" : "getOverdueBookings",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServiceBookingResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings/number/{bookingNumber}" : {
      "get" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Get booking by booking number",
        "description" : "Retrieves a service booking by its booking number",
        "operationId" : "getBookingByBookingNumber",
        "parameters" : [ {
          "name" : "bookingNumber",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseServiceBookingResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings/customer/{customerId}" : {
      "get" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Get bookings by customer",
        "description" : "Retrieves all bookings for a specific customer",
        "operationId" : "getBookingsByCustomer",
        "parameters" : [ {
          "name" : "customerId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListServiceBookingResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings/check-slot-availability" : {
      "get" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Check time slot availability",
        "description" : "Checks if a specific time slot is available",
        "operationId" : "isTimeSlotAvailable",
        "parameters" : [ {
          "name" : "serviceId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cityId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "scheduledDate",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "timeSlot",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseBoolean"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings/available-vendors" : {
      "get" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Get available vendors",
        "description" : "Gets available vendors for a service in a city on a specific date",
        "operationId" : "getAvailableVendors",
        "parameters" : [ {
          "name" : "serviceId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cityId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "scheduledDate",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListString"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings/available-slots" : {
      "get" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Get available time slots",
        "description" : "Gets available time slots for a service in a city on a specific date",
        "operationId" : "getAvailableTimeSlots",
        "parameters" : [ {
          "name" : "serviceId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cityId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "date",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListLocalDateTime"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings/analytics/count" : {
      "get" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Get total bookings count",
        "description" : "Returns the total number of bookings",
        "operationId" : "getTotalBookingsCount",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseLong"
                }
              }
            }
          }
        }
      }
    },
    "/api/service-bookings/analytics/average-rating" : {
      "get" : {
        "tags" : [ "Service Booking Management" ],
        "summary" : "Get average booking value",
        "description" : "Returns the average booking value",
        "operationId" : "getAverageBookingValue",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseDouble"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/{saleId}/items" : {
      "get" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Get sale items",
        "description" : "Retrieves all items in a sale",
        "operationId" : "getSaleItems",
        "parameters" : [ {
          "name" : "saleId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListSaleItemResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/{saleId}/export/json" : {
      "get" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Export sale to JSON",
        "description" : "Exports a sale to JSON format",
        "operationId" : "exportSaleToJson",
        "parameters" : [ {
          "name" : "saleId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/status/{status}" : {
      "get" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Get sales by status",
        "description" : "Retrieves all sales with a specific status",
        "operationId" : "getSalesByStatus",
        "parameters" : [ {
          "name" : "status",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum" : [ "PENDING", "CONFIRMED", "PROCESSING", "COMPLETED", "CANCELLED", "REFUNDED", "PARTIALLY_REFUNDED", "FAILED", "ON_HOLD" ]
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListSaleResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/search" : {
      "get" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Search sales",
        "description" : "Searches sales by sale number, customer phone, or email",
        "operationId" : "searchSales",
        "parameters" : [ {
          "name" : "searchTerm",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListSaleResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/salesperson/{salesPersonId}" : {
      "get" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Get sales by sales person",
        "description" : "Retrieves all sales for a specific sales person",
        "operationId" : "getSalesBySalesPerson",
        "parameters" : [ {
          "name" : "salesPersonId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListSaleResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/pending" : {
      "get" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Get pending sales",
        "description" : "Retrieves all pending sales",
        "operationId" : "getPendingSales",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListSaleResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/number/{saleNumber}" : {
      "get" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Get sale by sale number",
        "description" : "Retrieves a sale by its sale number",
        "operationId" : "getSaleBySaleNumber",
        "parameters" : [ {
          "name" : "saleNumber",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseSaleResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/export/report" : {
      "get" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Generate sales report",
        "description" : "Generates a sales report in specified format",
        "operationId" : "generateSalesReport",
        "parameters" : [ {
          "name" : "startDate",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "endDate",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "format",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "PDF"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "type" : "string",
                    "format" : "byte"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/date-range" : {
      "get" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Get sales by date range",
        "description" : "Retrieves sales within a specific date range",
        "operationId" : "getSalesByDateRange",
        "parameters" : [ {
          "name" : "startDate",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "endDate",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListSaleResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/customer/{customerId}" : {
      "get" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Get sales by customer",
        "description" : "Retrieves all sales for a specific customer",
        "operationId" : "getSalesByCustomer",
        "parameters" : [ {
          "name" : "customerId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListSaleResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/confirmed" : {
      "get" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Get confirmed sales",
        "description" : "Retrieves all confirmed sales",
        "operationId" : "getConfirmedSales",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListSaleResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/completed" : {
      "get" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Get completed sales",
        "description" : "Retrieves all completed sales",
        "operationId" : "getCompletedSales",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListSaleResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/commission/report/{salesPersonId}" : {
      "get" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Generate commission report",
        "description" : "Generates a commission report for a sales person",
        "operationId" : "generateCommissionReport",
        "parameters" : [ {
          "name" : "salesPersonId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "startDate",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "endDate",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "format",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "PDF"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "type" : "string",
                    "format" : "byte"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/commission/due" : {
      "get" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Get sales with commission due",
        "description" : "Retrieves all sales with unpaid commissions",
        "operationId" : "getSalesWithCommissionDue",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListSaleResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/city/{cityId}" : {
      "get" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Get sales by city",
        "description" : "Retrieves all sales for a specific city",
        "operationId" : "getSalesByCity",
        "parameters" : [ {
          "name" : "cityId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListSaleResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/analytics/value" : {
      "get" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Get total sales value",
        "description" : "Returns the total value of all sales",
        "operationId" : "getTotalSalesValue",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseDouble"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/analytics/top-services" : {
      "get" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Get top selling services",
        "description" : "Retrieves top selling services for a date range",
        "operationId" : "getTopSellingServices",
        "parameters" : [ {
          "name" : "startDate",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "endDate",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 10
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListObject"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/analytics/top-products" : {
      "get" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Get top selling products",
        "description" : "Retrieves top selling products for a date range",
        "operationId" : "getTopSellingProducts",
        "parameters" : [ {
          "name" : "startDate",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "endDate",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 10
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListObject"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/analytics/summary" : {
      "get" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Get sales analytics summary",
        "description" : "Retrieves comprehensive sales analytics",
        "operationId" : "getSalesAnalytics",
        "parameters" : [ {
          "name" : "startDate",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "endDate",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseSalesAnalyticsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/sales/analytics/count" : {
      "get" : {
        "tags" : [ "Sales Management" ],
        "summary" : "Get total sales count",
        "description" : "Returns the total number of sales",
        "operationId" : "getTotalSalesCount",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseLong"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/warranty" : {
      "get" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Get warranty requests",
        "description" : "Retrieves all warranty-related revisit requests",
        "operationId" : "getWarrantyRequests",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/visit/{visitId}" : {
      "get" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Get requests by visit",
        "description" : "Retrieves all revisit requests for a specific visit",
        "operationId" : "getRevisitRequestsByVisit",
        "parameters" : [ {
          "name" : "visitId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/status/{status}" : {
      "get" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Get requests by status",
        "description" : "Retrieves all revisit requests with a specific status",
        "operationId" : "getRequestsByStatus",
        "parameters" : [ {
          "name" : "status",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum" : [ "REQUESTED", "APPROVED", "REJECTED", "SCHEDULED", "ASSIGNED", "IN_PROGRESS", "COMPLETED", "CANCELLED", "EXPIRED", "PENDING_REVIEW" ]
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/pending" : {
      "get" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Get pending requests",
        "description" : "Retrieves all pending revisit requests",
        "operationId" : "getPendingRequests",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/overdue" : {
      "get" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Get overdue requests",
        "description" : "Retrieves all overdue revisit requests",
        "operationId" : "getOverdueRequests",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/number/{requestNumber}" : {
      "get" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Get revisit request by request number",
        "description" : "Retrieves a revisit request by its request number",
        "operationId" : "getRevisitRequestByRequestNumber",
        "parameters" : [ {
          "name" : "requestNumber",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/high-priority" : {
      "get" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Get high priority requests",
        "description" : "Retrieves all high priority revisit requests",
        "operationId" : "getHighPriorityRequests",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/customer/{customerId}" : {
      "get" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Get requests by customer",
        "description" : "Retrieves all revisit requests for a specific customer",
        "operationId" : "getRevisitRequestsByCustomer",
        "parameters" : [ {
          "name" : "customerId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/booking/{bookingId}" : {
      "get" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Get requests by booking",
        "description" : "Retrieves all revisit requests for a specific booking",
        "operationId" : "getRevisitRequestsByBooking",
        "parameters" : [ {
          "name" : "bookingId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/approved-not-scheduled" : {
      "get" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Get approved but not scheduled requests",
        "description" : "Retrieves approved requests that haven't been scheduled yet",
        "operationId" : "getApprovedButNotScheduledRequests",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListRevisitRequestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/analytics/customer-satisfaction" : {
      "get" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Get customer satisfaction rate",
        "description" : "Returns the customer satisfaction rate for completed revisits",
        "operationId" : "getCustomerSatisfactionRate",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseDouble"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/analytics/count" : {
      "get" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Get total requests count",
        "description" : "Returns the total number of revisit requests",
        "operationId" : "getTotalRequestsCount",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseLong"
                }
              }
            }
          }
        }
      }
    },
    "/api/revisit-requests/analytics/approval-rate" : {
      "get" : {
        "tags" : [ "Revisit Request Management" ],
        "summary" : "Get request approval rate",
        "description" : "Returns the approval rate of revisit requests",
        "operationId" : "getRequestApprovalRate",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseDouble"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{orderId}/items" : {
      "get" : {
        "tags" : [ "Order Management" ],
        "summary" : "Get order items",
        "description" : "Retrieves all items in an order",
        "operationId" : "getOrderItems",
        "parameters" : [ {
          "name" : "orderId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListOrderItemResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/vendor/{vendorId}" : {
      "get" : {
        "tags" : [ "Order Management" ],
        "summary" : "Get orders by vendor",
        "description" : "Retrieves all orders assigned to a specific vendor",
        "operationId" : "getOrdersByVendor",
        "parameters" : [ {
          "name" : "vendorId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/status/{status}" : {
      "get" : {
        "tags" : [ "Order Management" ],
        "summary" : "Get orders by status",
        "description" : "Retrieves all orders with a specific status",
        "operationId" : "getOrdersByStatus",
        "parameters" : [ {
          "name" : "status",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum" : [ "PENDING", "CONFIRMED", "PROCESSING", "SHIPPED", "OUT_FOR_DELIVERY", "DELIVERED", "CANCELLED", "REFUNDED", "RETURNED", "FAILED", "ON_HOLD" ]
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/shipped" : {
      "get" : {
        "tags" : [ "Order Management" ],
        "summary" : "Get shipped orders",
        "description" : "Retrieves all shipped orders",
        "operationId" : "getShippedOrders",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/search" : {
      "get" : {
        "tags" : [ "Order Management" ],
        "summary" : "Search orders",
        "description" : "Searches orders by order number, customer phone, or email",
        "operationId" : "searchOrders",
        "parameters" : [ {
          "name" : "searchTerm",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/returns/pending" : {
      "get" : {
        "tags" : [ "Order Management" ],
        "summary" : "Get orders with return requests",
        "description" : "Retrieves all orders that have pending return requests",
        "operationId" : "getOrdersWithReturnRequests",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/returnable" : {
      "get" : {
        "tags" : [ "Order Management" ],
        "summary" : "Get returnable orders",
        "description" : "Retrieves all orders that are eligible for return",
        "operationId" : "getReturnableOrders",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/processing" : {
      "get" : {
        "tags" : [ "Order Management" ],
        "summary" : "Get processing orders",
        "description" : "Retrieves all processing orders",
        "operationId" : "getProcessingOrders",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/pending" : {
      "get" : {
        "tags" : [ "Order Management" ],
        "summary" : "Get pending orders",
        "description" : "Retrieves all pending orders",
        "operationId" : "getPendingOrders",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/payment-status/{paymentStatus}" : {
      "get" : {
        "tags" : [ "Order Management" ],
        "summary" : "Get orders by payment status",
        "description" : "Retrieves all orders with a specific payment status",
        "operationId" : "getOrdersByPaymentStatus",
        "parameters" : [ {
          "name" : "paymentStatus",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum" : [ "PENDING", "PROCESSING", "COMPLETED", "FAILED", "CANCELLED", "REFUNDED", "PARTIALLY_REFUNDED", "EXPIRED", "DISPUTED", "AUTHORIZED", "CAPTURED" ]
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/overdue" : {
      "get" : {
        "tags" : [ "Order Management" ],
        "summary" : "Get overdue orders",
        "description" : "Retrieves all overdue orders",
        "operationId" : "getOverdueOrders",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/number/{orderNumber}" : {
      "get" : {
        "tags" : [ "Order Management" ],
        "summary" : "Get order by order number",
        "description" : "Retrieves an order by its order number",
        "operationId" : "getOrderByOrderNumber",
        "parameters" : [ {
          "name" : "orderNumber",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/delivered" : {
      "get" : {
        "tags" : [ "Order Management" ],
        "summary" : "Get delivered orders",
        "description" : "Retrieves all delivered orders",
        "operationId" : "getDeliveredOrders",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/date-range" : {
      "get" : {
        "tags" : [ "Order Management" ],
        "summary" : "Get orders by date range",
        "description" : "Retrieves orders within a specific date range",
        "operationId" : "getOrdersByDateRange",
        "parameters" : [ {
          "name" : "startDate",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "endDate",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/customer/{customerId}" : {
      "get" : {
        "tags" : [ "Order Management" ],
        "summary" : "Get orders by customer",
        "description" : "Retrieves all orders for a specific customer",
        "operationId" : "getOrdersByCustomer",
        "parameters" : [ {
          "name" : "customerId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/confirmed" : {
      "get" : {
        "tags" : [ "Order Management" ],
        "summary" : "Get confirmed orders",
        "description" : "Retrieves all confirmed orders",
        "operationId" : "getConfirmedOrders",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/city/{cityId}" : {
      "get" : {
        "tags" : [ "Order Management" ],
        "summary" : "Get orders by city",
        "description" : "Retrieves all orders for a specific city",
        "operationId" : "getOrdersByCity",
        "parameters" : [ {
          "name" : "cityId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/cancelled" : {
      "get" : {
        "tags" : [ "Order Management" ],
        "summary" : "Get cancelled orders",
        "description" : "Retrieves all cancelled orders",
        "operationId" : "getCancelledOrders",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseListOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/analytics/total-value" : {
      "get" : {
        "tags" : [ "Order Management" ],
        "summary" : "Get total order value",
        "description" : "Returns the total value of all orders",
        "operationId" : "getTotalOrderValue",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseDouble"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/analytics/count" : {
      "get" : {
        "tags" : [ "Order Management" ],
        "summary" : "Get total orders count",
        "description" : "Returns the total number of orders",
        "operationId" : "getTotalOrdersCount",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseLong"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/analytics/count/status/{status}" : {
      "get" : {
        "tags" : [ "Order Management" ],
        "summary" : "Get orders count by status",
        "description" : "Returns the count of orders with a specific status",
        "operationId" : "getOrdersCountByStatus",
        "parameters" : [ {
          "name" : "status",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum" : [ "PENDING", "CONFIRMED", "PROCESSING", "SHIPPED", "OUT_FOR_DELIVERY", "DELIVERED", "CANCELLED", "REFUNDED", "RETURNED", "FAILED", "ON_HOLD" ]
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseLong"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/analytics/average-value" : {
      "get" : {
        "tags" : [ "Order Management" ],
        "summary" : "Get average order value",
        "description" : "Returns the average order value",
        "operationId" : "getAverageOrderValue",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseDouble"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/upload/cancel/{uploadId}" : {
      "delete" : {
        "tags" : [ "chunk-upload-controller" ],
        "operationId" : "cancelUpload",
        "parameters" : [ {
          "name" : "uploadId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/service/packages/{packageId}/permanent" : {
      "delete" : {
        "tags" : [ "Service Package Management" ],
        "summary" : "Permanently delete package",
        "description" : "Permanently deletes a package from the database. This action is irreversible and the package must be soft deleted first.",
        "operationId" : "permanentDeletePackage",
        "parameters" : [ {
          "name" : "packageId",
          "in" : "path",
          "description" : "Package unique identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-User-ID",
          "in" : "header",
          "description" : "User ID performing the permanent deletion",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "system"
          }
        } ],
        "responses" : {
          "409" : {
            "description" : "Cannot permanently delete package with dependencies",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          },
          "200" : {
            "description" : "Package permanently deleted successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          },
          "400" : {
            "description" : "Package must be soft deleted first",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          },
          "404" : {
            "description" : "Package not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/home-page-sections/{id}" : {
      "delete" : {
        "tags" : [ "Home Page Sections" ],
        "summary" : "Delete a section",
        "operationId" : "deleteSection_1",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "userId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "admin"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/carts/{cartId}/items" : {
      "delete" : {
        "tags" : [ "Cart Management" ],
        "summary" : "Clear cart",
        "description" : "Removes all items from the shopping cart",
        "operationId" : "clearCart",
        "parameters" : [ {
          "name" : "cartId",
          "in" : "path",
          "description" : "Cart ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "User-ID",
          "in" : "header",
          "description" : "User ID from header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "404" : {
            "description" : "Cart not found"
          },
          "500" : {
            "description" : "Internal server error"
          },
          "200" : {
            "description" : "Cart cleared successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components" : {
    "schemas" : {
      "CreateServiceRequest" : {
        "required" : [ "categoryId", "name", "slug", "status", "typeId" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "slug" : {
            "type" : "string"
          },
          "shortDescription" : {
            "type" : "string"
          },
          "aboutTitle" : {
            "type" : "string"
          },
          "fullDescription" : {
            "type" : "string"
          },
          "typeId" : {
            "type" : "string"
          },
          "categoryId" : {
            "type" : "string"
          },
          "cityId" : {
            "type" : "string"
          },
          "imageId" : {
            "type" : "string"
          },
          "imageUrl" : {
            "type" : "string"
          },
          "imageAlt" : {
            "type" : "string"
          },
          "galleryImagesDetails" : {
            "type" : "array",
            "description" : "Service gallery images with metadata",
            "items" : {
              "$ref" : "#/components/schemas/ServiceGalleryImageRequest"
            }
          },
          "iconClass" : {
            "type" : "string"
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "isFeatured" : {
            "type" : "boolean"
          },
          "isPopular" : {
            "type" : "boolean"
          },
          "showOnHomepage" : {
            "type" : "boolean"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT", "OUT_OF_STOCK", "SEASONAL" ]
          },
          "subCategoryLevels" : {
            "type" : "array",
            "items" : {
              "type" : "object"
            }
          }
        },
        "description" : "Service data to create"
      },
      "ServiceGalleryImageRequest" : {
        "type" : "object",
        "properties" : {
          "url" : {
            "type" : "string"
          },
          "base64" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "altText" : {
            "type" : "string"
          },
          "isMain" : {
            "type" : "boolean"
          }
        },
        "description" : "Service gallery images with metadata"
      },
      "ConditionalLogicResponse" : {
        "type" : "object",
        "properties" : {
          "dependentOptionGroup" : {
            "type" : "string"
          },
          "requiredSelections" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "hideIfSelected" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "logicOperator" : {
            "type" : "string"
          }
        }
      },
      "CustomerReviewItemResponse" : {
        "type" : "object",
        "properties" : {
          "author" : {
            "type" : "string",
            "description" : "Reviewer name",
            "example" : "Rahul Sharma"
          },
          "rating" : {
            "type" : "number",
            "description" : "Manual star rating",
            "format" : "double",
            "example" : 4.8
          },
          "dateLabel" : {
            "type" : "string",
            "description" : "Relative time label",
            "example" : "2 days ago"
          },
          "comment" : {
            "type" : "string",
            "description" : "Review comment"
          },
          "serviceLabel" : {
            "type" : "string",
            "description" : "Service label shown under the reviewer",
            "example" : "Power Jet AC Service"
          }
        },
        "description" : "Manual review cards"
      },
      "CustomerReviewsSectionResponse" : {
        "type" : "object",
        "properties" : {
          "enabled" : {
            "type" : "boolean",
            "description" : "Enable customer reviews section on service detail page"
          },
          "title" : {
            "type" : "string",
            "description" : "Section title",
            "example" : "Customer Reviews"
          },
          "subtitle" : {
            "type" : "string",
            "description" : "Section subtitle",
            "example" : "Hear from thousands of happy customers in your city."
          },
          "summaryRating" : {
            "type" : "number",
            "description" : "Summary rating",
            "format" : "double",
            "example" : 4.8
          },
          "summaryReviewCountLabel" : {
            "type" : "string",
            "description" : "Summary review count label",
            "example" : "1.2M+"
          },
          "reviews" : {
            "type" : "array",
            "description" : "Manual review cards",
            "items" : {
              "$ref" : "#/components/schemas/CustomerReviewItemResponse"
            }
          }
        }
      },
      "DefaultSelectionResponse" : {
        "type" : "object",
        "properties" : {
          "optionGroupId" : {
            "type" : "string"
          },
          "selectedChoiceIds" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "isLocked" : {
            "type" : "boolean"
          },
          "autoSelect" : {
            "type" : "boolean"
          }
        }
      },
      "FAQItemResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Question",
            "example" : "What is the warranty on AC repair?"
          },
          "question" : {
            "type" : "string"
          },
          "answer" : {
            "type" : "string",
            "description" : "Answer",
            "example" : "We provide a 30-day post-service warranty."
          },
          "type" : {
            "type" : "string",
            "description" : "FAQ type",
            "example" : "CATEGORY",
            "enum" : [ "CATEGORY", "SERVICE", "PACKAGE", "ORDERS", "TECHNICIAN", "GENERAL" ]
          },
          "displayOrder" : {
            "type" : "integer",
            "description" : "Display order",
            "format" : "int32",
            "example" : 1
          }
        },
        "description" : "FAQ item response"
      },
      "FaqItem" : {
        "type" : "object",
        "properties" : {
          "question" : {
            "type" : "string"
          },
          "answer" : {
            "type" : "string"
          }
        }
      },
      "FrequentlyRebookedSectionResponse" : {
        "type" : "object",
        "properties" : {
          "enabled" : {
            "type" : "boolean",
            "description" : "Enable frequently rebooked section"
          },
          "title" : {
            "type" : "string",
            "description" : "Section title",
            "example" : "Frequently Rebooked"
          },
          "subtitle" : {
            "type" : "string",
            "description" : "Section subtitle",
            "example" : "Trusted services that your neighbors book again and again."
          },
          "packageIds" : {
            "type" : "array",
            "description" : "Selected package IDs",
            "items" : {
              "type" : "string",
              "description" : "Selected package IDs"
            }
          },
          "packages" : {
            "type" : "array",
            "description" : "Resolved package cards for public rendering",
            "items" : {
              "$ref" : "#/components/schemas/ServicePackageResponse"
            }
          }
        }
      },
      "OptionChoiceResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "shortCode" : {
            "type" : "string"
          },
          "basePrice" : {
            "type" : "number",
            "format" : "double"
          },
          "additionalPrice" : {
            "type" : "number",
            "format" : "double"
          },
          "discountPrice" : {
            "type" : "number",
            "format" : "double"
          },
          "isDefault" : {
            "type" : "boolean"
          },
          "isPopular" : {
            "type" : "boolean"
          },
          "isRecommended" : {
            "type" : "boolean"
          },
          "availabilityStatus" : {
            "type" : "string"
          },
          "estimatedTime" : {
            "type" : "integer",
            "format" : "int32"
          },
          "requirements" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "imageUrl" : {
            "type" : "string"
          },
          "badgeText" : {
            "type" : "string"
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "isActive" : {
            "type" : "boolean"
          },
          "availableDays" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "availableTimeSlots" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "seasonalAvailability" : {
            "type" : "boolean"
          },
          "formattedPrice" : {
            "type" : "string"
          },
          "hasDiscount" : {
            "type" : "boolean"
          }
        }
      },
      "PackageBuilderConfigResponse" : {
        "type" : "object",
        "properties" : {
          "stepLayout" : {
            "type" : "string"
          },
          "showPricePreview" : {
            "type" : "boolean"
          },
          "showDurationPreview" : {
            "type" : "boolean"
          },
          "allowBackNavigation" : {
            "type" : "boolean"
          },
          "saveDraftEnabled" : {
            "type" : "boolean"
          },
          "confirmationRequired" : {
            "type" : "boolean"
          },
          "themeColor" : {
            "type" : "string"
          },
          "progressIndicator" : {
            "type" : "string"
          },
          "mobileLayout" : {
            "type" : "string"
          }
        }
      },
      "PackageImage" : {
        "type" : "object",
        "properties" : {
          "url" : {
            "type" : "string"
          },
          "altText" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          }
        }
      },
      "PackageOptionResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "packageId" : {
            "type" : "string"
          },
          "packageName" : {
            "type" : "string"
          },
          "optionGroupName" : {
            "type" : "string"
          },
          "optionGroupDescription" : {
            "type" : "string"
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "isRequired" : {
            "type" : "boolean"
          },
          "isMultipleSelection" : {
            "type" : "boolean"
          },
          "minSelections" : {
            "type" : "integer",
            "format" : "int32"
          },
          "maxSelections" : {
            "type" : "integer",
            "format" : "int32"
          },
          "optionType" : {
            "type" : "string",
            "enum" : [ "SINGLE_CHOICE", "MULTIPLE_CHOICE", "QUANTITY", "ADD_ON", "TEXT_INPUT", "DROPDOWN", "RANGE_SLIDER", "DATE_PICKER", "TIME_PICKER" ]
          },
          "options" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OptionChoiceResponse"
            }
          },
          "conditionalLogic" : {
            "$ref" : "#/components/schemas/ConditionalLogicResponse"
          },
          "pricingLogic" : {
            "$ref" : "#/components/schemas/PricingLogicResponse"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT", "OUT_OF_STOCK", "SEASONAL", "COMING_SOON", "DISCONTINUED" ]
          }
        },
        "description" : "Package Option response"
      },
      "PricingLogicResponse" : {
        "type" : "object",
        "properties" : {
          "pricingType" : {
            "type" : "string"
          },
          "affectsBasePrice" : {
            "type" : "boolean"
          },
          "discountEligible" : {
            "type" : "boolean"
          },
          "minimumTotalImpact" : {
            "type" : "number",
            "format" : "double"
          },
          "maximumTotalImpact" : {
            "type" : "number",
            "format" : "double"
          }
        }
      },
      "ServiceGalleryImageResponse" : {
        "type" : "object",
        "properties" : {
          "url" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "altText" : {
            "type" : "string"
          },
          "isMain" : {
            "type" : "boolean"
          }
        }
      },
      "ServiceHighlightResponse" : {
        "type" : "object",
        "properties" : {
          "title" : {
            "type" : "string",
            "description" : "Highlight title",
            "example" : "Anti-rust deep clean AC service"
          },
          "description" : {
            "type" : "string",
            "description" : "Highlight description",
            "example" : "Our specialized anti-rust formula prevents gas leakages from the coils."
          },
          "imageUrl" : {
            "type" : "string",
            "description" : "Image URL for the highlight"
          },
          "features" : {
            "type" : "array",
            "description" : "List of key features",
            "items" : {
              "type" : "string",
              "description" : "List of key features"
            }
          },
          "slug" : {
            "type" : "string",
            "description" : "Target slug for the highlight"
          },
          "serviceId" : {
            "type" : "string",
            "description" : "Related service ID for the highlight"
          }
        }
      },
      "ServicePackageResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "slug" : {
            "type" : "string"
          },
          "shortDescription" : {
            "type" : "string"
          },
          "fullDescription" : {
            "type" : "string"
          },
          "aboutThisServiceTitle" : {
            "type" : "string"
          },
          "aboutThisServiceDescription" : {
            "type" : "string"
          },
          "frequentlyRebookedTitle" : {
            "type" : "string"
          },
          "frequentlyRebookedSubtitle" : {
            "type" : "string"
          },
          "frequentlyRebookedPackageIds" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "faqTitle" : {
            "type" : "string"
          },
          "faqs" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/FaqItem"
            }
          },
          "serviceId" : {
            "type" : "string"
          },
          "serviceName" : {
            "type" : "string"
          },
          "typeId" : {
            "type" : "string"
          },
          "typeName" : {
            "type" : "string"
          },
          "parentId" : {
            "type" : "string"
          },
          "cityId" : {
            "type" : "string"
          },
          "subCategoryLevels" : {
            "type" : "array",
            "items" : {
              "type" : "object"
            }
          },
          "imageId" : {
            "type" : "string"
          },
          "imageUrl" : {
            "type" : "string"
          },
          "imageAlt" : {
            "type" : "string"
          },
          "galleryImageIds" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "galleryImagesList" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PackageImage"
            }
          },
          "beforeImageId" : {
            "type" : "string"
          },
          "afterImageId" : {
            "type" : "string"
          },
          "backgroundColor" : {
            "type" : "string"
          },
          "primaryColor" : {
            "type" : "string"
          },
          "secondaryColor" : {
            "type" : "string"
          },
          "gradientStart" : {
            "type" : "string"
          },
          "gradientEnd" : {
            "type" : "string"
          },
          "cardBackgroundColor" : {
            "type" : "string"
          },
          "badgeColor" : {
            "type" : "string"
          },
          "iconClass" : {
            "type" : "string"
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "isFeatured" : {
            "type" : "boolean"
          },
          "isPopular" : {
            "type" : "boolean"
          },
          "isBestValue" : {
            "type" : "boolean"
          },
          "isRecommended" : {
            "type" : "boolean"
          },
          "packageType" : {
            "type" : "string",
            "enum" : [ "BUNDLE", "LUXURY", "BASIC", "STANDARD", "PREMIUM", "DELUXE", "COMBO", "SUBSCRIPTION", "TRIAL", "CUSTOM", "SUB_PACKAGE" ]
          },
          "packageCode" : {
            "type" : "string"
          },
          "quantity" : {
            "type" : "integer",
            "format" : "int32"
          },
          "quantityUnit" : {
            "type" : "string"
          },
          "originalPrice" : {
            "type" : "number",
            "format" : "double"
          },
          "discountedPrice" : {
            "type" : "number",
            "format" : "double"
          },
          "discountAmount" : {
            "type" : "number",
            "format" : "double"
          },
          "discountPercentage" : {
            "type" : "number",
            "format" : "double"
          },
          "currency" : {
            "type" : "string"
          },
          "formattedPrice" : {
            "type" : "string"
          },
          "savingsText" : {
            "type" : "string"
          },
          "hasDiscount" : {
            "type" : "boolean"
          },
          "estimatedDuration" : {
            "type" : "integer",
            "format" : "int32"
          },
          "durationUnit" : {
            "type" : "string"
          },
          "formattedDuration" : {
            "type" : "string"
          },
          "validityDays" : {
            "type" : "integer",
            "format" : "int32"
          },
          "inclusions" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "exclusions" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "keyHighlights" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "benefits" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "requirements" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "theClassyCoverEnabled" : {
            "type" : "boolean"
          },
          "theClassyCoverTitle" : {
            "type" : "string"
          },
          "theClassyCoverDescription" : {
            "type" : "string"
          },
          "warrantyDays" : {
            "type" : "integer",
            "format" : "int32"
          },
          "warrantyTerms" : {
            "type" : "string"
          },
          "hasGuarantee" : {
            "type" : "boolean"
          },
          "guaranteeTerms" : {
            "type" : "string"
          },
          "availableAddons" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "allowCustomization" : {
            "type" : "boolean"
          },
          "customizationOptions" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "isCustomizable" : {
            "type" : "boolean"
          },
          "basePriceLocked" : {
            "type" : "boolean"
          },
          "customizationFee" : {
            "type" : "number",
            "format" : "double"
          },
          "minCustomizationPrice" : {
            "type" : "number",
            "format" : "double"
          },
          "maxCustomizationPrice" : {
            "type" : "number",
            "format" : "double"
          },
          "requiresQuote" : {
            "type" : "boolean"
          },
          "bookingRequired" : {
            "type" : "boolean"
          },
          "advanceBookingHours" : {
            "type" : "integer",
            "format" : "int32"
          },
          "maxBookingsPerDay" : {
            "type" : "integer",
            "format" : "int32"
          },
          "isBookable" : {
            "type" : "boolean"
          },
          "isSeasonalPackage" : {
            "type" : "boolean"
          },
          "availableFrom" : {
            "type" : "string",
            "format" : "date-time"
          },
          "availableTo" : {
            "type" : "string",
            "format" : "date-time"
          },
          "availableDays" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "availableTimeSlots" : {
            "type" : "string"
          },
          "isCurrentlyAvailable" : {
            "type" : "boolean"
          },
          "hasOffer" : {
            "type" : "boolean"
          },
          "offerText" : {
            "type" : "string"
          },
          "badgeText" : {
            "type" : "string"
          },
          "isLimitedTime" : {
            "type" : "boolean"
          },
          "offerExpiryDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "isOfferActive" : {
            "type" : "boolean"
          },
          "tags" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "keywords" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "metaTitle" : {
            "type" : "string"
          },
          "metaDescription" : {
            "type" : "string"
          },
          "metaKeywords" : {
            "type" : "string"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT", "OUT_OF_STOCK", "DISCONTINUED" ]
          },
          "isDeleted" : {
            "type" : "boolean"
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "updatedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "createdBy" : {
            "type" : "string"
          },
          "updatedBy" : {
            "type" : "string"
          },
          "totalBookings" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalVendors" : {
            "type" : "integer",
            "format" : "int64"
          },
          "averageRating" : {
            "type" : "number",
            "format" : "double"
          },
          "totalReviews" : {
            "type" : "integer",
            "format" : "int64"
          },
          "conversionRate" : {
            "type" : "number",
            "format" : "double"
          },
          "popularityScore" : {
            "type" : "string"
          },
          "minVendorsRequired" : {
            "type" : "integer",
            "format" : "int32"
          },
          "certificationRequired" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "qualityStandards" : {
            "type" : "string"
          },
          "defaultSelections" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/DefaultSelectionResponse"
            }
          },
          "packageBuilderConfig" : {
            "$ref" : "#/components/schemas/PackageBuilderConfigResponse"
          },
          "canCustomize" : {
            "type" : "boolean"
          },
          "canBook" : {
            "type" : "boolean"
          },
          "needsQuote" : {
            "type" : "boolean"
          },
          "availabilityStatus" : {
            "type" : "string"
          },
          "totalOptions" : {
            "type" : "integer",
            "format" : "int32"
          },
          "requiredOptions" : {
            "type" : "integer",
            "format" : "int32"
          },
          "packageOptionCount" : {
            "type" : "integer",
            "format" : "int64"
          },
          "subPackageCount" : {
            "type" : "integer",
            "format" : "int64"
          },
          "partsCount" : {
            "type" : "integer",
            "format" : "int64"
          },
          "options" : {
            "type" : "array",
            "description" : "Active options for this package",
            "items" : {
              "$ref" : "#/components/schemas/PackageOptionResponse"
            }
          },
          "subPackages" : {
            "type" : "array",
            "description" : "Sub-packages for this package",
            "items" : {
              "$ref" : "#/components/schemas/ServicePackageResponse"
            }
          }
        },
        "description" : "Resolved package cards for public rendering"
      },
      "ServiceResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "slug" : {
            "type" : "string"
          },
          "shortDescription" : {
            "type" : "string"
          },
          "aboutTitle" : {
            "type" : "string"
          },
          "fullDescription" : {
            "type" : "string"
          },
          "typeId" : {
            "type" : "string"
          },
          "categoryId" : {
            "type" : "string"
          },
          "typeName" : {
            "type" : "string"
          },
          "categoryName" : {
            "type" : "string"
          },
          "cityId" : {
            "type" : "string"
          },
          "imageId" : {
            "type" : "string"
          },
          "imageUrl" : {
            "type" : "string"
          },
          "imageAlt" : {
            "type" : "string"
          },
          "galleryImagesDetails" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ServiceGalleryImageResponse"
            }
          },
          "iconClass" : {
            "type" : "string"
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "isFeatured" : {
            "type" : "boolean"
          },
          "isPopular" : {
            "type" : "boolean"
          },
          "showOnHomepage" : {
            "type" : "boolean"
          },
          "servicePackages" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ServicePackageResponse"
            }
          },
          "serviceType" : {
            "type" : "string",
            "enum" : [ "SINGLE_VISIT", "MULTI_VISIT", "SUBSCRIPTION", "PACKAGE", "INSTANT", "SCHEDULED", "ONLINE", "IN_STORE" ]
          },
          "serviceMode" : {
            "type" : "string"
          },
          "estimatedDuration" : {
            "type" : "integer",
            "format" : "int32"
          },
          "durationUnit" : {
            "type" : "string"
          },
          "formattedDuration" : {
            "type" : "string"
          },
          "startingPrice" : {
            "type" : "number",
            "format" : "double"
          },
          "currency" : {
            "type" : "string"
          },
          "priceRange" : {
            "type" : "string"
          },
          "formattedPriceRange" : {
            "type" : "string"
          },
          "metaTitle" : {
            "type" : "string"
          },
          "metaDescription" : {
            "type" : "string"
          },
          "metaKeywords" : {
            "type" : "string"
          },
          "canonicalUrl" : {
            "type" : "string"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT", "OUT_OF_STOCK", "SEASONAL" ]
          },
          "isDeleted" : {
            "type" : "boolean"
          },
          "totalBookings" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalVendors" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalPackages" : {
            "type" : "integer",
            "format" : "int64"
          },
          "parentPackageCount" : {
            "type" : "integer",
            "format" : "int64"
          },
          "averageRating" : {
            "type" : "number",
            "format" : "double"
          },
          "totalReviews" : {
            "type" : "integer",
            "format" : "int64"
          },
          "conversionRate" : {
            "type" : "number",
            "format" : "double"
          },
          "popularityScore" : {
            "type" : "string"
          },
          "recommendedServiceIds" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "complementaryServiceIds" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "alternativeServiceIds" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "prerequisiteServiceIds" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "followUpServiceIds" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "recommendationScore" : {
            "type" : "integer",
            "format" : "int32"
          },
          "enableAutoRecommendations" : {
            "type" : "boolean"
          },
          "recommendationStrategy" : {
            "type" : "string"
          },
          "frequentlyBoughtTogether" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "seasonalRecommendations" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "recommendationBoostScore" : {
            "type" : "number",
            "format" : "double"
          },
          "subCategoryLevels" : {
            "type" : "array",
            "items" : {
              "type" : "object"
            }
          },
          "faqs" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/FAQItemResponse"
            }
          },
          "highlights" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ServiceHighlightResponse"
            }
          },
          "customerReviewsSection" : {
            "$ref" : "#/components/schemas/CustomerReviewsSectionResponse"
          },
          "frequentlyRebookedSection" : {
            "$ref" : "#/components/schemas/FrequentlyRebookedSectionResponse"
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "updatedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "createdBy" : {
            "type" : "string"
          },
          "updatedBy" : {
            "type" : "string"
          }
        }
      },
      "ApiResponseServiceResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/ServiceResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "UpdateTypeRequest" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "maxLength" : 100,
            "minLength" : 2,
            "type" : "string"
          },
          "slug" : {
            "maxLength" : 100,
            "minLength" : 0,
            "type" : "string"
          },
          "description" : {
            "maxLength" : 1000,
            "minLength" : 0,
            "type" : "string"
          },
          "imageId" : {
            "type" : "string"
          },
          "imageUrl" : {
            "type" : "string"
          },
          "imageAlt" : {
            "maxLength" : 255,
            "minLength" : 0,
            "type" : "string"
          },
          "imageBase64" : {
            "type" : "string"
          },
          "backgroundColor" : {
            "maxLength" : 7,
            "minLength" : 0,
            "type" : "string"
          },
          "primaryColor" : {
            "maxLength" : 7,
            "minLength" : 0,
            "type" : "string"
          },
          "secondaryColor" : {
            "maxLength" : 7,
            "minLength" : 0,
            "type" : "string"
          },
          "iconClass" : {
            "maxLength" : 100,
            "minLength" : 0,
            "type" : "string"
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "isFeatured" : {
            "type" : "boolean"
          },
          "metaTitle" : {
            "maxLength" : 150,
            "minLength" : 0,
            "type" : "string"
          },
          "metaDescription" : {
            "maxLength" : 300,
            "minLength" : 0,
            "type" : "string"
          },
          "metaKeywords" : {
            "maxLength" : 500,
            "minLength" : 0,
            "type" : "string"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT" ]
          },
          "averageRating" : {
            "type" : "number",
            "format" : "double"
          },
          "totalReviews" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalCategories" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalServices" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalBookings" : {
            "type" : "integer",
            "format" : "int64"
          },
          "cityId" : {
            "type" : "string"
          }
        },
        "description" : "Updated type data"
      },
      "TypeResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "slug" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "cityId" : {
            "type" : "string"
          },
          "imageId" : {
            "type" : "string"
          },
          "imageUrl" : {
            "type" : "string"
          },
          "imageAlt" : {
            "type" : "string"
          },
          "backgroundColor" : {
            "type" : "string"
          },
          "primaryColor" : {
            "type" : "string"
          },
          "secondaryColor" : {
            "type" : "string"
          },
          "iconClass" : {
            "type" : "string"
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "isFeatured" : {
            "type" : "boolean"
          },
          "metaTitle" : {
            "type" : "string"
          },
          "metaDescription" : {
            "type" : "string"
          },
          "metaKeywords" : {
            "type" : "string"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT" ]
          },
          "averageRating" : {
            "type" : "number",
            "format" : "double"
          },
          "totalReviews" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalCategories" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalServices" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalBookings" : {
            "type" : "integer",
            "format" : "int64"
          },
          "isDeleted" : {
            "type" : "boolean"
          },
          "createdBy" : {
            "type" : "string"
          },
          "updatedBy" : {
            "type" : "string"
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "updatedAt" : {
            "type" : "string",
            "format" : "date-time"
          }
        }
      },
      "ApiResponseTypeResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/TypeResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "DefaultSelectionRequest" : {
        "type" : "object",
        "properties" : {
          "optionGroupId" : {
            "type" : "string"
          },
          "selectedChoiceIds" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "isLocked" : {
            "type" : "boolean"
          },
          "autoSelect" : {
            "type" : "boolean"
          }
        }
      },
      "PackageBuilderConfigRequest" : {
        "type" : "object",
        "properties" : {
          "stepLayout" : {
            "type" : "string"
          },
          "showPricePreview" : {
            "type" : "boolean"
          },
          "showDurationPreview" : {
            "type" : "boolean"
          },
          "allowBackNavigation" : {
            "type" : "boolean"
          },
          "saveDraftEnabled" : {
            "type" : "boolean"
          },
          "confirmationRequired" : {
            "type" : "boolean"
          },
          "themeColor" : {
            "pattern" : "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
            "type" : "string"
          },
          "progressIndicator" : {
            "type" : "string"
          },
          "mobileLayout" : {
            "type" : "string"
          }
        }
      },
      "UpdatePackageRequest" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "maxLength" : 200,
            "minLength" : 2,
            "type" : "string"
          },
          "slug" : {
            "pattern" : "^[a-z0-9-]+$",
            "type" : "string"
          },
          "shortDescription" : {
            "maxLength" : 500,
            "minLength" : 0,
            "type" : "string"
          },
          "fullDescription" : {
            "maxLength" : 10000,
            "minLength" : 0,
            "type" : "string"
          },
          "aboutThisServiceTitle" : {
            "maxLength" : 255,
            "minLength" : 0,
            "type" : "string"
          },
          "aboutThisServiceDescription" : {
            "type" : "string"
          },
          "frequentlyRebookedTitle" : {
            "type" : "string"
          },
          "frequentlyRebookedSubtitle" : {
            "type" : "string"
          },
          "frequentlyRebookedPackageIds" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "faqTitle" : {
            "type" : "string"
          },
          "faqs" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/FaqItem"
            }
          },
          "serviceId" : {
            "type" : "string"
          },
          "cityId" : {
            "type" : "string"
          },
          "parentId" : {
            "type" : "string"
          },
          "imageId" : {
            "type" : "string"
          },
          "imageUrl" : {
            "type" : "string"
          },
          "imageAlt" : {
            "type" : "string"
          },
          "galleryImageIds" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "galleryImagesList" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PackageImage"
            }
          },
          "beforeImageId" : {
            "type" : "string"
          },
          "afterImageId" : {
            "type" : "string"
          },
          "backgroundColor" : {
            "pattern" : "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
            "type" : "string"
          },
          "primaryColor" : {
            "pattern" : "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
            "type" : "string"
          },
          "secondaryColor" : {
            "pattern" : "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
            "type" : "string"
          },
          "gradientStart" : {
            "pattern" : "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
            "type" : "string"
          },
          "gradientEnd" : {
            "pattern" : "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
            "type" : "string"
          },
          "cardBackgroundColor" : {
            "pattern" : "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
            "type" : "string"
          },
          "badgeColor" : {
            "pattern" : "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
            "type" : "string"
          },
          "iconClass" : {
            "type" : "string"
          },
          "displayOrder" : {
            "minimum" : 0,
            "type" : "integer",
            "format" : "int32"
          },
          "isFeatured" : {
            "type" : "boolean"
          },
          "isPopular" : {
            "type" : "boolean"
          },
          "isBestValue" : {
            "type" : "boolean"
          },
          "isRecommended" : {
            "type" : "boolean"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT", "OUT_OF_STOCK", "DISCONTINUED" ]
          },
          "packageType" : {
            "type" : "string",
            "enum" : [ "BUNDLE", "LUXURY", "BASIC", "STANDARD", "PREMIUM", "DELUXE", "COMBO", "SUBSCRIPTION", "TRIAL", "CUSTOM", "SUB_PACKAGE" ]
          },
          "packageCode" : {
            "type" : "string"
          },
          "quantity" : {
            "minimum" : 1,
            "type" : "integer",
            "format" : "int32"
          },
          "quantityUnit" : {
            "type" : "string"
          },
          "originalPrice" : {
            "minimum" : 0.0,
            "exclusiveMinimum" : true,
            "type" : "number",
            "format" : "double"
          },
          "discountedPrice" : {
            "minimum" : 0.0,
            "exclusiveMinimum" : true,
            "type" : "number",
            "format" : "double"
          },
          "currency" : {
            "maxLength" : 3,
            "minLength" : 3,
            "type" : "string"
          },
          "estimatedDuration" : {
            "minimum" : 1,
            "type" : "integer",
            "format" : "int32"
          },
          "durationUnit" : {
            "type" : "string"
          },
          "validityDays" : {
            "minimum" : 1,
            "type" : "integer",
            "format" : "int32"
          },
          "inclusions" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "exclusions" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "keyHighlights" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "benefits" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "requirements" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "theClassyCoverEnabled" : {
            "type" : "boolean"
          },
          "theClassyCoverTitle" : {
            "type" : "string"
          },
          "theClassyCoverDescription" : {
            "type" : "string"
          },
          "warrantyDays" : {
            "minimum" : 0,
            "type" : "integer",
            "format" : "int32"
          },
          "warrantyTerms" : {
            "type" : "string"
          },
          "hasGuarantee" : {
            "type" : "boolean"
          },
          "guaranteeTerms" : {
            "type" : "string"
          },
          "availableAddons" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "allowCustomization" : {
            "type" : "boolean"
          },
          "customizationOptions" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "isCustomizable" : {
            "type" : "boolean"
          },
          "basePriceLocked" : {
            "type" : "boolean"
          },
          "customizationFee" : {
            "minimum" : 0.0,
            "exclusiveMinimum" : false,
            "type" : "number",
            "format" : "double"
          },
          "minCustomizationPrice" : {
            "minimum" : 0.0,
            "exclusiveMinimum" : false,
            "type" : "number",
            "format" : "double"
          },
          "maxCustomizationPrice" : {
            "minimum" : 0.0,
            "exclusiveMinimum" : false,
            "type" : "number",
            "format" : "double"
          },
          "requiresQuote" : {
            "type" : "boolean"
          },
          "bookingRequired" : {
            "type" : "boolean"
          },
          "advanceBookingHours" : {
            "minimum" : 0,
            "type" : "integer",
            "format" : "int32"
          },
          "maxBookingsPerDay" : {
            "minimum" : 1,
            "type" : "integer",
            "format" : "int32"
          },
          "isBookable" : {
            "type" : "boolean"
          },
          "isSeasonalPackage" : {
            "type" : "boolean"
          },
          "availableFrom" : {
            "type" : "string",
            "format" : "date-time"
          },
          "availableTo" : {
            "type" : "string",
            "format" : "date-time"
          },
          "availableDays" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "availableTimeSlots" : {
            "type" : "string"
          },
          "hasOffer" : {
            "type" : "boolean"
          },
          "offerText" : {
            "maxLength" : 100,
            "minLength" : 0,
            "type" : "string"
          },
          "badgeText" : {
            "maxLength" : 50,
            "minLength" : 0,
            "type" : "string"
          },
          "isLimitedTime" : {
            "type" : "boolean"
          },
          "offerExpiryDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "tags" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "keywords" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "metaTitle" : {
            "type" : "string"
          },
          "metaDescription" : {
            "type" : "string"
          },
          "metaKeywords" : {
            "type" : "string"
          },
          "minVendorsRequired" : {
            "minimum" : 0,
            "type" : "integer",
            "format" : "int32"
          },
          "certificationRequired" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "qualityStandards" : {
            "type" : "string"
          },
          "defaultSelections" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/DefaultSelectionRequest"
            }
          },
          "packageBuilderConfig" : {
            "$ref" : "#/components/schemas/PackageBuilderConfigRequest"
          }
        }
      },
      "ApiResponseServicePackageResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/ServicePackageResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ConditionalLogicRequest" : {
        "type" : "object",
        "properties" : {
          "dependsOnOptions" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "requiredChoices" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "hiddenWhenChoices" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "showCondition" : {
            "maxLength" : 1000,
            "minLength" : 0,
            "type" : "string"
          },
          "hideCondition" : {
            "maxLength" : 1000,
            "minLength" : 0,
            "type" : "string"
          },
          "enableCondition" : {
            "maxLength" : 1000,
            "minLength" : 0,
            "type" : "string"
          },
          "disableCondition" : {
            "maxLength" : 1000,
            "minLength" : 0,
            "type" : "string"
          },
          "isConditional" : {
            "type" : "boolean"
          }
        }
      },
      "OptionChoiceRequest" : {
        "required" : [ "label", "value" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "value" : {
            "maxLength" : 100,
            "minLength" : 0,
            "type" : "string"
          },
          "label" : {
            "maxLength" : 255,
            "minLength" : 0,
            "type" : "string"
          },
          "description" : {
            "maxLength" : 500,
            "minLength" : 0,
            "type" : "string"
          },
          "shortCode" : {
            "maxLength" : 20,
            "minLength" : 0,
            "type" : "string"
          },
          "priceAdjustment" : {
            "minimum" : 0.0,
            "exclusiveMinimum" : false,
            "type" : "number"
          },
          "basePrice" : {
            "minimum" : 0.0,
            "exclusiveMinimum" : false,
            "type" : "number"
          },
          "mrp" : {
            "minimum" : 0.0,
            "exclusiveMinimum" : false,
            "type" : "number"
          },
          "additionalPrice" : {
            "minimum" : 0.0,
            "exclusiveMinimum" : false,
            "type" : "number"
          },
          "discountPrice" : {
            "minimum" : 0.0,
            "exclusiveMinimum" : false,
            "type" : "number"
          },
          "currency" : {
            "maxLength" : 3,
            "minLength" : 0,
            "type" : "string"
          },
          "durationAdjustment" : {
            "minimum" : 0,
            "type" : "integer",
            "format" : "int32"
          },
          "durationUnit" : {
            "maxLength" : 10,
            "minLength" : 0,
            "type" : "string"
          },
          "iconClass" : {
            "maxLength" : 50,
            "minLength" : 0,
            "type" : "string"
          },
          "imageUrl" : {
            "maxLength" : 100,
            "minLength" : 0,
            "type" : "string"
          },
          "imageAlt" : {
            "maxLength" : 100,
            "minLength" : 0,
            "type" : "string"
          },
          "color" : {
            "pattern" : "^#[0-9A-Fa-f]{6}$",
            "type" : "string"
          },
          "displayOrder" : {
            "minimum" : 0,
            "type" : "integer",
            "format" : "int32"
          },
          "isDefault" : {
            "type" : "boolean"
          },
          "isPopular" : {
            "type" : "boolean"
          },
          "isRecommended" : {
            "type" : "boolean"
          },
          "isAvailable" : {
            "type" : "boolean"
          },
          "availabilityStatus" : {
            "maxLength" : 20,
            "minLength" : 0,
            "type" : "string"
          },
          "tags" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "customCssClass" : {
            "maxLength" : 255,
            "minLength" : 0,
            "type" : "string"
          },
          "customStyling" : {
            "maxLength" : 500,
            "minLength" : 0,
            "type" : "string"
          }
        }
      },
      "PricingLogicRequest" : {
        "type" : "object",
        "properties" : {
          "hasPricing" : {
            "type" : "boolean"
          },
          "basePrice" : {
            "minimum" : 0.0,
            "exclusiveMinimum" : false,
            "type" : "number"
          },
          "currency" : {
            "maxLength" : 3,
            "minLength" : 0,
            "type" : "string"
          },
          "priceType" : {
            "maxLength" : 20,
            "minLength" : 0,
            "type" : "string"
          },
          "percentage" : {
            "maximum" : 100.0,
            "exclusiveMaximum" : false,
            "minimum" : 0.0,
            "exclusiveMinimum" : false,
            "type" : "number"
          },
          "perUnitPrice" : {
            "minimum" : 0.0,
            "exclusiveMinimum" : false,
            "type" : "number"
          },
          "tiers" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PricingTierRequest"
            }
          },
          "discount" : {
            "minimum" : 0.0,
            "exclusiveMinimum" : false,
            "type" : "number"
          },
          "discountType" : {
            "maxLength" : 20,
            "minLength" : 0,
            "type" : "string"
          },
          "minPrice" : {
            "minimum" : 0.0,
            "exclusiveMinimum" : false,
            "type" : "number"
          },
          "maxPrice" : {
            "minimum" : 0.0,
            "exclusiveMinimum" : false,
            "type" : "number"
          },
          "isDiscountable" : {
            "type" : "boolean"
          },
          "isTaxable" : {
            "type" : "boolean"
          },
          "taxRate" : {
            "maximum" : 100.0,
            "exclusiveMaximum" : false,
            "minimum" : 0.0,
            "exclusiveMinimum" : false,
            "type" : "number"
          },
          "pricingFormula" : {
            "maxLength" : 1000,
            "minLength" : 0,
            "type" : "string"
          }
        }
      },
      "PricingTierRequest" : {
        "required" : [ "price" ],
        "type" : "object",
        "properties" : {
          "minQuantity" : {
            "minimum" : 1,
            "type" : "integer",
            "format" : "int32"
          },
          "maxQuantity" : {
            "minimum" : 1,
            "type" : "integer",
            "format" : "int32"
          },
          "price" : {
            "minimum" : 0.0,
            "exclusiveMinimum" : false,
            "type" : "number"
          },
          "currency" : {
            "maxLength" : 3,
            "minLength" : 0,
            "type" : "string"
          },
          "tierName" : {
            "maxLength" : 100,
            "minLength" : 0,
            "type" : "string"
          },
          "tierDescription" : {
            "maxLength" : 255,
            "minLength" : 0,
            "type" : "string"
          }
        }
      },
      "UpdatePackageOptionRequest" : {
        "type" : "object",
        "properties" : {
          "groupName" : {
            "maxLength" : 100,
            "minLength" : 0,
            "type" : "string"
          },
          "description" : {
            "maxLength" : 500,
            "minLength" : 0,
            "type" : "string"
          },
          "helpText" : {
            "maxLength" : 255,
            "minLength" : 0,
            "type" : "string"
          },
          "optionType" : {
            "type" : "string",
            "enum" : [ "SINGLE_CHOICE", "MULTIPLE_CHOICE", "QUANTITY", "ADD_ON", "TEXT_INPUT", "DROPDOWN", "RANGE_SLIDER", "DATE_PICKER", "TIME_PICKER" ]
          },
          "isRequired" : {
            "type" : "boolean"
          },
          "isMultipleSelection" : {
            "type" : "boolean"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT", "OUT_OF_STOCK", "SEASONAL", "COMING_SOON", "DISCONTINUED" ]
          },
          "displayOrder" : {
            "minimum" : 0,
            "type" : "integer",
            "format" : "int32"
          },
          "choices" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OptionChoiceRequest"
            }
          },
          "conditionalLogic" : {
            "$ref" : "#/components/schemas/ConditionalLogicRequest"
          },
          "pricingLogic" : {
            "$ref" : "#/components/schemas/PricingLogicRequest"
          },
          "minQuantity" : {
            "minimum" : 1,
            "type" : "integer",
            "format" : "int32"
          },
          "maxQuantity" : {
            "minimum" : 1,
            "type" : "integer",
            "format" : "int32"
          },
          "defaultQuantity" : {
            "minimum" : 1,
            "type" : "integer",
            "format" : "int32"
          },
          "quantityUnit" : {
            "maxLength" : 20,
            "minLength" : 0,
            "type" : "string"
          },
          "minSelections" : {
            "minimum" : 0,
            "type" : "integer",
            "format" : "int32"
          },
          "maxSelections" : {
            "minimum" : 1,
            "type" : "integer",
            "format" : "int32"
          },
          "allowCustomInput" : {
            "type" : "boolean"
          },
          "customInputPlaceholder" : {
            "maxLength" : 255,
            "minLength" : 0,
            "type" : "string"
          },
          "customInputValidation" : {
            "maxLength" : 500,
            "minLength" : 0,
            "type" : "string"
          },
          "iconClass" : {
            "maxLength" : 50,
            "minLength" : 0,
            "type" : "string"
          },
          "imageUrl" : {
            "maxLength" : 100,
            "minLength" : 0,
            "type" : "string"
          },
          "imageAlt" : {
            "maxLength" : 100,
            "minLength" : 0,
            "type" : "string"
          },
          "backgroundColor" : {
            "pattern" : "^#[0-9A-Fa-f]{6}$",
            "type" : "string"
          },
          "borderColor" : {
            "pattern" : "^#[0-9A-Fa-f]{6}$",
            "type" : "string"
          },
          "textColor" : {
            "pattern" : "^#[0-9A-Fa-f]{6}$",
            "type" : "string"
          },
          "showInSummary" : {
            "type" : "boolean"
          },
          "isPopular" : {
            "type" : "boolean"
          },
          "isRecommended" : {
            "type" : "boolean"
          },
          "tags" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "customCssClass" : {
            "maxLength" : 255,
            "minLength" : 0,
            "type" : "string"
          },
          "customStyling" : {
            "maxLength" : 1000,
            "minLength" : 0,
            "type" : "string"
          }
        }
      },
      "ApiResponsePackageOption" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/PackageOption"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ConditionalLogic" : {
        "type" : "object",
        "properties" : {
          "dependentOptionGroup" : {
            "type" : "string"
          },
          "requiredSelections" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "hideIfSelected" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "logicOperator" : {
            "type" : "string"
          }
        }
      },
      "OptionChoice" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "shortCode" : {
            "type" : "string"
          },
          "basePrice" : {
            "type" : "number",
            "format" : "double"
          },
          "mrp" : {
            "type" : "number",
            "format" : "double"
          },
          "additionalPrice" : {
            "type" : "number",
            "format" : "double"
          },
          "discountPrice" : {
            "type" : "number",
            "format" : "double"
          },
          "isDefault" : {
            "type" : "boolean"
          },
          "isPopular" : {
            "type" : "boolean"
          },
          "isRecommended" : {
            "type" : "boolean"
          },
          "availabilityStatus" : {
            "type" : "string"
          },
          "estimatedTime" : {
            "type" : "integer",
            "format" : "int32"
          },
          "requirements" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "imageUrl" : {
            "type" : "string"
          },
          "badgeText" : {
            "type" : "string"
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "isActive" : {
            "type" : "boolean"
          },
          "availableDays" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "availableTimeSlots" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "seasonalAvailability" : {
            "type" : "boolean"
          },
          "formattedPrice" : {
            "type" : "string"
          }
        }
      },
      "PackageOption" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "packageId" : {
            "type" : "string"
          },
          "serviceId" : {
            "type" : "string"
          },
          "typeId" : {
            "type" : "string"
          },
          "subCategoryLevels" : {
            "type" : "array",
            "items" : {
              "type" : "object"
            }
          },
          "servicePackageLevels" : {
            "type" : "array",
            "items" : {
              "type" : "object"
            }
          },
          "packageName" : {
            "type" : "string"
          },
          "packageHierarchyNames" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "choiceCount" : {
            "type" : "integer",
            "format" : "int32"
          },
          "activeChoiceCount" : {
            "type" : "integer",
            "format" : "int32"
          },
          "optionGroupName" : {
            "type" : "string"
          },
          "optionGroupDescription" : {
            "type" : "string"
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "isRequired" : {
            "type" : "boolean"
          },
          "isMultipleSelection" : {
            "type" : "boolean"
          },
          "minSelections" : {
            "type" : "integer",
            "format" : "int32"
          },
          "maxSelections" : {
            "type" : "integer",
            "format" : "int32"
          },
          "optionType" : {
            "type" : "string",
            "enum" : [ "SINGLE_CHOICE", "MULTIPLE_CHOICE", "QUANTITY", "ADD_ON", "TEXT_INPUT", "DROPDOWN", "RANGE_SLIDER", "DATE_PICKER", "TIME_PICKER" ]
          },
          "options" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OptionChoice"
            }
          },
          "conditionalLogic" : {
            "$ref" : "#/components/schemas/ConditionalLogic"
          },
          "pricingLogic" : {
            "$ref" : "#/components/schemas/PricingLogic"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT", "OUT_OF_STOCK", "SEASONAL", "COMING_SOON", "DISCONTINUED" ]
          },
          "isDeleted" : {
            "type" : "boolean"
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "updatedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "createdBy" : {
            "type" : "string"
          },
          "updatedBy" : {
            "type" : "string"
          },
          "defaultChoice" : {
            "$ref" : "#/components/schemas/OptionChoice"
          },
          "activeChoices" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OptionChoice"
            }
          },
          "minPrice" : {
            "type" : "number",
            "format" : "double"
          },
          "maxPrice" : {
            "type" : "number",
            "format" : "double"
          }
        }
      },
      "PricingLogic" : {
        "type" : "object",
        "properties" : {
          "pricingType" : {
            "type" : "string"
          },
          "affectsBasePrice" : {
            "type" : "boolean"
          },
          "discountEligible" : {
            "type" : "boolean"
          },
          "minimumTotalImpact" : {
            "type" : "number",
            "format" : "double"
          },
          "maximumTotalImpact" : {
            "type" : "number",
            "format" : "double"
          }
        }
      },
      "PartItemRequest" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "status" : {
            "type" : "string"
          },
          "sale_price" : {
            "type" : "number",
            "format" : "double"
          },
          "additional_price" : {
            "type" : "number",
            "format" : "double"
          },
          "package_option_id" : {
            "type" : "string"
          },
          "package_id" : {
            "type" : "string"
          },
          "city_id" : {
            "type" : "string"
          },
          "item_type" : {
            "type" : "string"
          }
        }
      },
      "ApiResponsePartItemResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/PartItemResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "PartItemResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "status" : {
            "type" : "string"
          },
          "package_option_id" : {
            "type" : "string"
          },
          "package_option_name" : {
            "type" : "string"
          },
          "package_id" : {
            "type" : "string"
          },
          "package_name" : {
            "type" : "string"
          },
          "sub_package_name" : {
            "type" : "string"
          },
          "package_hierarchy_names" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "service_id" : {
            "type" : "string"
          },
          "service_name" : {
            "type" : "string"
          },
          "city_id" : {
            "type" : "string"
          },
          "type_id" : {
            "type" : "string"
          },
          "type_name" : {
            "type" : "string"
          },
          "category_names" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "mrp" : {
            "type" : "number",
            "format" : "double"
          },
          "sale_price" : {
            "type" : "number",
            "format" : "double"
          },
          "additional_price" : {
            "type" : "number",
            "format" : "double"
          },
          "is_deleted" : {
            "type" : "boolean"
          },
          "item_type" : {
            "type" : "string"
          },
          "created_at" : {
            "type" : "string",
            "format" : "date-time"
          },
          "updated_at" : {
            "type" : "string",
            "format" : "date-time"
          }
        }
      },
      "UpdateFAQRequest" : {
        "type" : "object",
        "properties" : {
          "question" : {
            "type" : "string"
          },
          "answer" : {
            "type" : "string"
          },
          "type" : {
            "type" : "string",
            "enum" : [ "CATEGORY", "SERVICE", "PACKAGE", "ORDERS", "TECHNICIAN", "GENERAL" ]
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "isActive" : {
            "type" : "boolean"
          }
        }
      },
      "ApiResponseFAQResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/FAQResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "FAQResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "question" : {
            "type" : "string"
          },
          "answer" : {
            "type" : "string"
          },
          "type" : {
            "type" : "string",
            "enum" : [ "CATEGORY", "SERVICE", "PACKAGE", "ORDERS", "TECHNICIAN", "GENERAL" ]
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "isActive" : {
            "type" : "boolean"
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "updatedAt" : {
            "type" : "string",
            "format" : "date-time"
          }
        }
      },
      "UpdateDepartmentRequest" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Department name",
            "example" : "Repair"
          },
          "commissionPercentage" : {
            "type" : "number",
            "description" : "Commission percentage for platform fee",
            "format" : "double",
            "example" : 10.0
          },
          "isHidden" : {
            "type" : "boolean",
            "description" : "Whether the department is hidden from selection lists"
          }
        },
        "description" : "Updated department data"
      },
      "ApiResponseDepartmentResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/DepartmentResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "DepartmentResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Department ID",
            "example" : "507f1f77bcf86cd799439011"
          },
          "name" : {
            "type" : "string",
            "description" : "Department name",
            "example" : "Service"
          },
          "commissionPercentage" : {
            "type" : "number",
            "description" : "Commission percentage for platform fee",
            "format" : "double",
            "example" : 10.0
          },
          "isHidden" : {
            "type" : "boolean",
            "description" : "Whether the department is hidden from selection lists"
          },
          "createdAt" : {
            "type" : "string",
            "description" : "Creation timestamp",
            "format" : "date-time"
          },
          "updatedAt" : {
            "type" : "string",
            "description" : "Last update timestamp",
            "format" : "date-time"
          }
        },
        "description" : "Department response data"
      },
      "AboutSectionRequest" : {
        "type" : "object",
        "properties" : {
          "title" : {
            "type" : "string",
            "description" : "Section title",
            "example" : "Why regular AC servicing is crucial?"
          },
          "description" : {
            "type" : "string",
            "description" : "Section content/description",
            "example" : "An AC unit that isn't serviced regularly can lose up to 5% of its efficiency annually."
          }
        },
        "description" : "About sections for the category page"
      },
      "CustomerReviewItemRequest" : {
        "type" : "object",
        "properties" : {
          "author" : {
            "type" : "string",
            "description" : "Reviewer name",
            "example" : "Rahul Sharma"
          },
          "rating" : {
            "type" : "number",
            "description" : "Manual star rating",
            "format" : "double",
            "example" : 4.8
          },
          "dateLabel" : {
            "type" : "string",
            "description" : "Relative time label",
            "example" : "2 days ago"
          },
          "comment" : {
            "type" : "string",
            "description" : "Review comment"
          },
          "serviceLabel" : {
            "type" : "string",
            "description" : "Service label shown under the reviewer",
            "example" : "Power Jet AC Service"
          }
        },
        "description" : "Manual review cards"
      },
      "CustomerReviewsSectionRequest" : {
        "type" : "object",
        "properties" : {
          "enabled" : {
            "type" : "boolean",
            "description" : "Enable customer reviews section on service detail page"
          },
          "title" : {
            "type" : "string",
            "description" : "Section title",
            "example" : "Customer Reviews"
          },
          "subtitle" : {
            "type" : "string",
            "description" : "Section subtitle",
            "example" : "Hear from thousands of happy customers in your city."
          },
          "summaryRating" : {
            "type" : "number",
            "description" : "Summary rating",
            "format" : "double",
            "example" : 4.8
          },
          "summaryReviewCountLabel" : {
            "type" : "string",
            "description" : "Summary review count label",
            "example" : "1.2M+"
          },
          "reviews" : {
            "type" : "array",
            "description" : "Manual review cards",
            "items" : {
              "$ref" : "#/components/schemas/CustomerReviewItemRequest"
            }
          }
        },
        "description" : "Customer reviews section config"
      },
      "FAQItemRequest" : {
        "required" : [ "answer", "question" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "question" : {
            "type" : "string",
            "description" : "Question",
            "example" : "What is the warranty on AC repair?"
          },
          "answer" : {
            "type" : "string",
            "description" : "Answer",
            "example" : "We provide a 30-day post-service warranty."
          },
          "type" : {
            "type" : "string",
            "description" : "FAQ type",
            "example" : "CATEGORY",
            "enum" : [ "CATEGORY", "SERVICE", "PACKAGE", "ORDERS", "TECHNICIAN", "GENERAL" ]
          },
          "displayOrder" : {
            "type" : "integer",
            "description" : "Display order for sorting",
            "format" : "int32",
            "example" : 1
          }
        },
        "description" : "FAQ item request payload"
      },
      "FrequentlyRebookedSectionRequest" : {
        "type" : "object",
        "properties" : {
          "enabled" : {
            "type" : "boolean",
            "description" : "Enable frequently rebooked section"
          },
          "title" : {
            "type" : "string",
            "description" : "Section title",
            "example" : "Frequently Rebooked"
          },
          "subtitle" : {
            "type" : "string",
            "description" : "Section subtitle",
            "example" : "Trusted services that your neighbors book again and again."
          },
          "packageIds" : {
            "type" : "array",
            "description" : "Selected package IDs",
            "items" : {
              "type" : "string",
              "description" : "Selected package IDs"
            }
          }
        },
        "description" : "Frequently rebooked section config"
      },
      "PricingCategoryRequest" : {
        "type" : "object",
        "properties" : {
          "packageId" : {
            "type" : "string",
            "description" : "Service sub-package ID for this pricing group",
            "example" : "65f21abcde1234567890aaaa"
          },
          "packageOptionId" : {
            "type" : "string",
            "description" : "Package option ID for this pricing group",
            "example" : "65f21abcde1234567890abcd"
          },
          "category" : {
            "type" : "string",
            "description" : "Pricing category name",
            "example" : "Fan Motors"
          },
          "items" : {
            "type" : "array",
            "description" : "List of pricing items",
            "items" : {
              "$ref" : "#/components/schemas/PricingItemRequest"
            }
          }
        },
        "description" : "Pricing table categories and items"
      },
      "PricingItemRequest" : {
        "type" : "object",
        "properties" : {
          "packageId" : {
            "type" : "string",
            "description" : "Service sub-package ID",
            "example" : "65f21abcde1234567890aaaa"
          },
          "packageOptionId" : {
            "type" : "string",
            "description" : "Package option ID",
            "example" : "65f21abcde1234567890abcd"
          },
          "packageOptionItemId" : {
            "type" : "string",
            "description" : "Package option item ID",
            "example" : "65f21abcde1234567890dcba"
          },
          "name" : {
            "type" : "string",
            "description" : "Item name",
            "example" : "Indoor Fan Motor"
          },
          "price" : {
            "type" : "string",
            "description" : "Price range or value",
            "example" : "₹1,800 - ₹2,500"
          }
        },
        "description" : "List of pricing items"
      },
      "UpdateCategoryRequest" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Category name",
            "example" : "AC Repair & Maintenance"
          },
          "description" : {
            "type" : "string",
            "description" : "Category description",
            "example" : "Professional AC repair and maintenance services"
          },
          "parentId" : {
            "type" : "string",
            "description" : "Parent category ID for hierarchical structure",
            "example" : "507f1f77bcf86cd799439012"
          },
          "departmentId" : {
            "type" : "string",
            "description" : "Department ID (required for sub-categories)",
            "example" : "507f1f77bcf86cd799439099"
          },
          "status" : {
            "type" : "string",
            "description" : "Category status",
            "example" : "ACTIVE",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT" ]
          },
          "featured" : {
            "type" : "boolean",
            "description" : "Whether this category is featured",
            "example" : true
          },
          "displayOrder" : {
            "type" : "integer",
            "description" : "Display order for sorting",
            "format" : "int32",
            "example" : 2
          },
          "backgroundColor" : {
            "type" : "string",
            "description" : "Background color in hex format",
            "example" : "#F8F9FA"
          },
          "primaryColor" : {
            "type" : "string",
            "description" : "Primary color in hex format",
            "example" : "#007BFF"
          },
          "secondaryColor" : {
            "type" : "string",
            "description" : "Secondary color in hex format",
            "example" : "#6C757D"
          },
          "gradientStart" : {
            "type" : "string",
            "description" : "Gradient start color in hex format",
            "example" : "#FF6B6B"
          },
          "gradientEnd" : {
            "type" : "string",
            "description" : "Gradient end color in hex format",
            "example" : "#4ECDC4"
          },
          "imageBase64" : {
            "type" : "string",
            "description" : "Base64 encoded image string"
          },
          "imageId" : {
            "type" : "string",
            "description" : "Image ID reference",
            "example" : "img_123456789"
          },
          "imageUrl" : {
            "type" : "string",
            "description" : "Image URL",
            "example" : "https://example.com/images/category.jpg"
          },
          "imageAlt" : {
            "type" : "string",
            "description" : "Image alt text",
            "example" : "AC Repair Services"
          },
          "shortDescription" : {
            "type" : "string",
            "description" : "Short description for previews",
            "example" : "Quick and reliable AC repair"
          },
          "benefits" : {
            "type" : "string",
            "description" : "Key benefits or features",
            "example" : "Same day service, 24/7 support, warranty included"
          },
          "priceRange" : {
            "type" : "string",
            "description" : "Price range description",
            "example" : "₹500 - ₹2000"
          },
          "metaTitle" : {
            "type" : "string",
            "description" : "SEO meta title",
            "example" : "Professional AC Repair Services"
          },
          "metaDescription" : {
            "type" : "string",
            "description" : "SEO meta description",
            "example" : "Get professional AC repair services with same day booking"
          },
          "keywords" : {
            "type" : "string",
            "description" : "SEO keywords",
            "example" : "ac repair, air conditioner, cooling, hvac"
          },
          "faqs" : {
            "type" : "array",
            "description" : "List of frequently asked questions",
            "items" : {
              "$ref" : "#/components/schemas/FAQItemRequest"
            }
          },
          "aboutSections" : {
            "type" : "array",
            "description" : "About sections for the category page",
            "items" : {
              "$ref" : "#/components/schemas/AboutSectionRequest"
            }
          },
          "aboutTitle" : {
            "type" : "string",
            "description" : "Main title for About/Content section",
            "example" : "The #1 Split AC - Indore"
          },
          "aboutSubtitle" : {
            "type" : "string",
            "description" : "Subtitle for About/Content section",
            "example" : "Platform in Your City"
          },
          "pricingSectionTitle" : {
            "type" : "string",
            "description" : "Title for pricing transparency section",
            "example" : "Transparent Rates for Spare Parts & Labor"
          },
          "pricingSectionDescription" : {
            "type" : "string",
            "description" : "Description for pricing transparency section",
            "example" : "We believe in honest pricing..."
          },
          "pricingTable" : {
            "type" : "array",
            "description" : "Pricing table categories and items",
            "items" : {
              "$ref" : "#/components/schemas/PricingCategoryRequest"
            }
          },
          "highlightPackageIds" : {
            "type" : "array",
            "description" : "List of Service IDs to highlight",
            "items" : {
              "type" : "string",
              "description" : "List of Service IDs to highlight"
            }
          },
          "media" : {
            "type" : "array",
            "description" : "Media gallery URLs",
            "items" : {
              "type" : "string",
              "description" : "Media gallery URLs"
            }
          },
          "popularLinks" : {
            "type" : "array",
            "description" : "Popular quick links",
            "items" : {
              "type" : "object",
              "additionalProperties" : {
                "type" : "string",
                "description" : "Popular quick links"
              },
              "description" : "Popular quick links"
            }
          },
          "rightCard" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "Right promo card config"
            },
            "description" : "Right promo card config"
          },
          "comparisonCard" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "Comparison card config"
            },
            "description" : "Comparison card config"
          },
          "customerReviewsSection" : {
            "$ref" : "#/components/schemas/CustomerReviewsSectionRequest"
          },
          "frequentlyRebookedSection" : {
            "$ref" : "#/components/schemas/FrequentlyRebookedSectionRequest"
          }
        },
        "description" : "Updated category data"
      },
      "ApiResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "object"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "AboutSectionResponse" : {
        "type" : "object",
        "properties" : {
          "title" : {
            "type" : "string",
            "description" : "Section title",
            "example" : "Why regular AC servicing is crucial?"
          },
          "description" : {
            "type" : "string",
            "description" : "Section content/description",
            "example" : "An AC unit that isn't serviced regularly can lose up to 5% of its efficiency annually."
          }
        },
        "description" : "About sections for the category page"
      },
      "ApiResponseCategoryResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/CategoryResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "CategoryResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Category ID",
            "example" : "507f1f77bcf86cd799439011"
          },
          "name" : {
            "type" : "string",
            "description" : "Category name",
            "example" : "AC Repair"
          },
          "slug" : {
            "type" : "string",
            "description" : "URL-friendly slug",
            "example" : "ac-repair"
          },
          "description" : {
            "type" : "string",
            "description" : "Category description",
            "example" : "Professional AC repair and maintenance services"
          },
          "typeId" : {
            "type" : "string",
            "description" : "Business type ID",
            "example" : "507f1f77bcf86cd799439012"
          },
          "typeName" : {
            "type" : "string",
            "description" : "Business type name",
            "example" : "Home Services"
          },
          "parentId" : {
            "type" : "string",
            "description" : "Parent category ID",
            "example" : "507f1f77bcf86cd799439013"
          },
          "departmentId" : {
            "type" : "string",
            "description" : "Department ID",
            "example" : "507f1f77bcf86cd799439099"
          },
          "departmentName" : {
            "type" : "string",
            "description" : "Department name",
            "example" : "Home Appliances"
          },
          "parentName" : {
            "type" : "string",
            "description" : "Parent category name",
            "example" : "Appliance Repair"
          },
          "cityId" : {
            "type" : "string",
            "description" : "City ID for localized category",
            "example" : "507f1f77bcf86cd799439014"
          },
          "level" : {
            "type" : "integer",
            "description" : "Hierarchy level",
            "format" : "int32",
            "example" : 1
          },
          "status" : {
            "type" : "string",
            "description" : "Category status",
            "example" : "ACTIVE",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT" ]
          },
          "isDeleted" : {
            "type" : "boolean",
            "description" : "Whether category has been soft deleted",
            "example" : false
          },
          "featured" : {
            "type" : "boolean",
            "description" : "Whether category is featured",
            "example" : true
          },
          "displayOrder" : {
            "type" : "integer",
            "description" : "Display order",
            "format" : "int32",
            "example" : 1
          },
          "backgroundColor" : {
            "type" : "string",
            "description" : "Background color",
            "example" : "#FFFFFF"
          },
          "primaryColor" : {
            "type" : "string",
            "description" : "Primary color",
            "example" : "#007BFF"
          },
          "secondaryColor" : {
            "type" : "string",
            "description" : "Secondary color",
            "example" : "#6C757D"
          },
          "gradientStart" : {
            "type" : "string",
            "description" : "Gradient start color",
            "example" : "#FF6B6B"
          },
          "gradientEnd" : {
            "type" : "string",
            "description" : "Gradient end color",
            "example" : "#4ECDC4"
          },
          "imageId" : {
            "type" : "string",
            "description" : "Image ID",
            "example" : "img_123456789"
          },
          "imageUrl" : {
            "type" : "string",
            "description" : "Image URL",
            "example" : "https://example.com/images/category.jpg"
          },
          "imageAlt" : {
            "type" : "string",
            "description" : "Image alt text",
            "example" : "AC Repair Services"
          },
          "shortDescription" : {
            "type" : "string",
            "description" : "Short description",
            "example" : "Quick and reliable AC repair"
          },
          "benefits" : {
            "type" : "string",
            "description" : "Key benefits",
            "example" : "Same day service, 24/7 support"
          },
          "priceRange" : {
            "type" : "string",
            "description" : "Price range",
            "example" : "₹500 - ₹2000"
          },
          "metaTitle" : {
            "type" : "string",
            "description" : "Meta title",
            "example" : "Professional AC Repair Services"
          },
          "metaDescription" : {
            "type" : "string",
            "description" : "Meta description",
            "example" : "Get professional AC repair services"
          },
          "keywords" : {
            "type" : "string",
            "description" : "SEO keywords",
            "example" : "ac repair, air conditioner"
          },
          "totalServices" : {
            "type" : "integer",
            "description" : "Total services under this category",
            "format" : "int64",
            "example" : 25
          },
          "totalBookings" : {
            "type" : "integer",
            "description" : "Total bookings",
            "format" : "int64",
            "example" : 150
          },
          "totalVendors" : {
            "type" : "integer",
            "description" : "Total vendors",
            "format" : "int64",
            "example" : 10
          },
          "averageRating" : {
            "type" : "number",
            "description" : "Average rating",
            "format" : "double",
            "example" : 4.5
          },
          "totalReviews" : {
            "type" : "integer",
            "description" : "Total reviews",
            "format" : "int64",
            "example" : 75
          },
          "averagePrice" : {
            "type" : "number",
            "description" : "Average price",
            "format" : "double",
            "example" : 1250.0
          },
          "createdAt" : {
            "type" : "string",
            "description" : "Creation timestamp",
            "format" : "date-time"
          },
          "updatedAt" : {
            "type" : "string",
            "description" : "Last update timestamp",
            "format" : "date-time"
          },
          "createdBy" : {
            "type" : "string",
            "description" : "Created by user ID",
            "example" : "user123"
          },
          "updatedBy" : {
            "type" : "string",
            "description" : "Updated by user ID",
            "example" : "user123"
          },
          "subCategories" : {
            "type" : "array",
            "description" : "Sub-categories list",
            "items" : {
              "$ref" : "#/components/schemas/CategoryResponse"
            }
          },
          "faqs" : {
            "type" : "array",
            "description" : "List of frequently asked questions",
            "items" : {
              "$ref" : "#/components/schemas/FAQItemResponse"
            }
          },
          "aboutSections" : {
            "type" : "array",
            "description" : "About sections for the category page",
            "items" : {
              "$ref" : "#/components/schemas/AboutSectionResponse"
            }
          },
          "aboutTitle" : {
            "type" : "string",
            "description" : "Main title for About/Content section"
          },
          "aboutSubtitle" : {
            "type" : "string",
            "description" : "Subtitle for About/Content section"
          },
          "pricingSectionTitle" : {
            "type" : "string",
            "description" : "Title for pricing transparency section"
          },
          "pricingSectionDescription" : {
            "type" : "string",
            "description" : "Description for pricing transparency section"
          },
          "pricingTable" : {
            "type" : "array",
            "description" : "Pricing table categories and items",
            "items" : {
              "$ref" : "#/components/schemas/PricingCategoryResponse"
            }
          },
          "highlightPackageIds" : {
            "type" : "array",
            "description" : "List of service highlights",
            "items" : {
              "type" : "string",
              "description" : "List of service highlights"
            }
          },
          "media" : {
            "type" : "array",
            "description" : "Media gallery URLs",
            "items" : {
              "type" : "string",
              "description" : "Media gallery URLs"
            }
          },
          "popularLinks" : {
            "type" : "array",
            "description" : "Popular quick links",
            "items" : {
              "type" : "object",
              "additionalProperties" : {
                "type" : "string",
                "description" : "Popular quick links"
              },
              "description" : "Popular quick links"
            }
          },
          "rightCard" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "Right promo card config"
            },
            "description" : "Right promo card config"
          },
          "comparisonCard" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "Comparison card config"
            },
            "description" : "Comparison card config"
          },
          "customerReviewsSection" : {
            "$ref" : "#/components/schemas/CustomerReviewsSectionResponse"
          },
          "frequentlyRebookedSection" : {
            "$ref" : "#/components/schemas/FrequentlyRebookedSectionResponse"
          }
        },
        "description" : "Category response data"
      },
      "PricingCategoryResponse" : {
        "type" : "object",
        "properties" : {
          "packageId" : {
            "type" : "string",
            "description" : "Service sub-package ID for this pricing group",
            "example" : "65f21abcde1234567890aaaa"
          },
          "packageOptionId" : {
            "type" : "string",
            "description" : "Package option ID for this pricing group",
            "example" : "65f21abcde1234567890abcd"
          },
          "category" : {
            "type" : "string",
            "description" : "Pricing category name",
            "example" : "Fan Motors"
          },
          "items" : {
            "type" : "array",
            "description" : "List of pricing items",
            "items" : {
              "$ref" : "#/components/schemas/PricingItemResponse"
            }
          }
        },
        "description" : "Pricing table categories and items"
      },
      "PricingItemResponse" : {
        "type" : "object",
        "properties" : {
          "packageId" : {
            "type" : "string",
            "description" : "Service sub-package ID",
            "example" : "65f21abcde1234567890aaaa"
          },
          "packageOptionId" : {
            "type" : "string",
            "description" : "Package option ID",
            "example" : "65f21abcde1234567890abcd"
          },
          "packageOptionItemId" : {
            "type" : "string",
            "description" : "Package option item ID",
            "example" : "65f21abcde1234567890dcba"
          },
          "name" : {
            "type" : "string",
            "description" : "Item name",
            "example" : "Indoor Fan Motor"
          },
          "price" : {
            "type" : "string",
            "description" : "Price range or value",
            "example" : "₹1,800 - ₹2,500"
          }
        },
        "description" : "List of pricing items"
      },
      "UpdateBrandRequest" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "slug" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "imageId" : {
            "type" : "string"
          },
          "imageUrl" : {
            "type" : "string"
          },
          "imageAlt" : {
            "type" : "string"
          },
          "imageBase64" : {
            "type" : "string"
          },
          "backgroundColor" : {
            "pattern" : "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
            "type" : "string"
          },
          "primaryColor" : {
            "pattern" : "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
            "type" : "string"
          },
          "secondaryColor" : {
            "pattern" : "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
            "type" : "string"
          },
          "gradientStart" : {
            "pattern" : "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
            "type" : "string"
          },
          "gradientEnd" : {
            "pattern" : "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
            "type" : "string"
          },
          "iconClass" : {
            "type" : "string"
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "isFeatured" : {
            "type" : "boolean"
          },
          "metaTitle" : {
            "type" : "string"
          },
          "metaDescription" : {
            "type" : "string"
          },
          "metaKeywords" : {
            "type" : "string"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DRAFT" ]
          },
          "websiteUrl" : {
            "type" : "string"
          },
          "contactEmail" : {
            "type" : "string"
          },
          "phoneNumber" : {
            "type" : "string"
          },
          "address" : {
            "type" : "string"
          },
          "foundedYear" : {
            "type" : "integer",
            "format" : "int32"
          }
        },
        "description" : "Brand update request"
      },
      "UpdateBlogPostRequest" : {
        "type" : "object",
        "properties" : {
          "title" : {
            "type" : "string"
          },
          "slug" : {
            "type" : "string"
          },
          "excerpt" : {
            "type" : "string"
          },
          "contentHtml" : {
            "type" : "string"
          },
          "coverImageUrl" : {
            "type" : "string"
          },
          "coverImageAlt" : {
            "type" : "string"
          },
          "category" : {
            "type" : "string"
          },
          "authorName" : {
            "type" : "string"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "DRAFT", "PUBLISHED", "ARCHIVED" ]
          },
          "publishedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "metaTitle" : {
            "type" : "string"
          },
          "metaDescription" : {
            "type" : "string"
          },
          "metaKeywords" : {
            "type" : "string"
          }
        }
      },
      "ApiResponseBlogPostResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/BlogPostResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "BlogPostResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "title" : {
            "type" : "string"
          },
          "slug" : {
            "type" : "string"
          },
          "excerpt" : {
            "type" : "string"
          },
          "contentHtml" : {
            "type" : "string"
          },
          "coverImageUrl" : {
            "type" : "string"
          },
          "coverImageAlt" : {
            "type" : "string"
          },
          "category" : {
            "type" : "string"
          },
          "authorName" : {
            "type" : "string"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "DRAFT", "PUBLISHED", "ARCHIVED" ]
          },
          "publishedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "metaTitle" : {
            "type" : "string"
          },
          "metaDescription" : {
            "type" : "string"
          },
          "metaKeywords" : {
            "type" : "string"
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "updatedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "createdBy" : {
            "type" : "string"
          },
          "updatedBy" : {
            "type" : "string"
          }
        }
      },
      "UpdateBannerRequest" : {
        "type" : "object",
        "properties" : {
          "title" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "imageBase64" : {
            "type" : "string"
          },
          "imageId" : {
            "type" : "string"
          },
          "imageUrl" : {
            "type" : "string"
          },
          "imageAlt" : {
            "type" : "string"
          },
          "position" : {
            "type" : "string",
            "enum" : [ "HOME_HERO", "HOME_TOP", "HOME_MIDDLE", "HOME_BOTTOM", "SIDEBAR", "FOOTER", "CATEGORY_TOP", "SERVICE_TOP", "CHECKOUT_TOP", "POPUP", "FLOATING" ]
          },
          "bannerType" : {
            "type" : "string",
            "enum" : [ "IMAGE", "VIDEO", "CAROUSEL", "TEXT", "HTML", "PROMOTIONAL", "INFORMATIONAL", "SEASONAL", "FLASH_SALE" ]
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "redirectType" : {
            "type" : "string",
            "enum" : [ "NONE", "INTERNAL", "EXTERNAL", "SERVICE", "CATEGORY", "BRAND", "PACKAGE", "CUSTOM_PAGE" ]
          },
          "redirectUrl" : {
            "type" : "string"
          },
          "redirectPage" : {
            "type" : "string"
          },
          "buttonText" : {
            "type" : "string"
          },
          "buttonColor" : {
            "type" : "string"
          },
          "backgroundColor" : {
            "type" : "string"
          },
          "textColor" : {
            "type" : "string"
          },
          "showOnMobile" : {
            "type" : "boolean"
          },
          "showOnDesktop" : {
            "type" : "boolean"
          },
          "isFeatured" : {
            "type" : "boolean"
          },
          "priority" : {
            "type" : "integer",
            "format" : "int32"
          },
          "requiresAuth" : {
            "type" : "boolean"
          },
          "targetCities" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "startDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "endDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "DRAFT", "ACTIVE", "INACTIVE", "SCHEDULED", "EXPIRED", "DELETED" ]
          }
        },
        "description" : "Banner update request"
      },
      "ApiResponseBannerResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/BannerResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "BannerResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "title" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "imageId" : {
            "type" : "string"
          },
          "imageUrl" : {
            "type" : "string"
          },
          "imageAlt" : {
            "type" : "string"
          },
          "position" : {
            "type" : "string",
            "enum" : [ "HOME_HERO", "HOME_TOP", "HOME_MIDDLE", "HOME_BOTTOM", "SIDEBAR", "FOOTER", "CATEGORY_TOP", "SERVICE_TOP", "CHECKOUT_TOP", "POPUP", "FLOATING" ]
          },
          "bannerType" : {
            "type" : "string",
            "enum" : [ "IMAGE", "VIDEO", "CAROUSEL", "TEXT", "HTML", "PROMOTIONAL", "INFORMATIONAL", "SEASONAL", "FLASH_SALE" ]
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "redirectType" : {
            "type" : "string",
            "enum" : [ "NONE", "INTERNAL", "EXTERNAL", "SERVICE", "CATEGORY", "BRAND", "PACKAGE", "CUSTOM_PAGE" ]
          },
          "redirectUrl" : {
            "type" : "string"
          },
          "redirectPage" : {
            "type" : "string"
          },
          "buttonText" : {
            "type" : "string"
          },
          "buttonColor" : {
            "type" : "string"
          },
          "backgroundColor" : {
            "type" : "string"
          },
          "textColor" : {
            "type" : "string"
          },
          "showOnMobile" : {
            "type" : "boolean"
          },
          "showOnDesktop" : {
            "type" : "boolean"
          },
          "isFeatured" : {
            "type" : "boolean"
          },
          "priority" : {
            "type" : "integer",
            "format" : "int32"
          },
          "requiresAuth" : {
            "type" : "boolean"
          },
          "targetCities" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "targetCitiesInfo" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/CityInfo"
            }
          },
          "startDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "endDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "clickCount" : {
            "type" : "integer",
            "format" : "int64"
          },
          "impressionCount" : {
            "type" : "integer",
            "format" : "int64"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "DRAFT", "ACTIVE", "INACTIVE", "SCHEDULED", "EXPIRED", "DELETED" ]
          },
          "isDeleted" : {
            "type" : "boolean"
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "updatedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "createdBy" : {
            "type" : "string"
          },
          "updatedBy" : {
            "type" : "string"
          }
        }
      },
      "CityInfo" : {
        "type" : "object",
        "properties" : {
          "cityId" : {
            "type" : "string"
          },
          "cityName" : {
            "type" : "string"
          },
          "stateId" : {
            "type" : "string"
          },
          "stateName" : {
            "type" : "string"
          }
        }
      },
      "ApiResponseSection" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/Section"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "Section" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "title" : {
            "type" : "string"
          },
          "subtitle" : {
            "type" : "string"
          },
          "platform" : {
            "type" : "string"
          },
          "layoutType" : {
            "type" : "string"
          },
          "leftColumnWidth" : {
            "type" : "integer",
            "format" : "int32"
          },
          "rightColumnWidth" : {
            "type" : "integer",
            "format" : "int32"
          },
          "backgroundType" : {
            "type" : "string"
          },
          "backgroundColor" : {
            "type" : "string"
          },
          "backgroundImageUrl" : {
            "type" : "string"
          },
          "gradientColors" : {
            "type" : "string"
          },
          "isVisible" : {
            "type" : "boolean"
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "status" : {
            "type" : "string"
          },
          "cityId" : {
            "type" : "string"
          },
          "leftContent" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SectionContent"
            }
          },
          "rightContent" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SectionContent"
            }
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "updatedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "createdBy" : {
            "type" : "string"
          },
          "updatedBy" : {
            "type" : "string"
          }
        }
      },
      "SectionContent" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "type" : {
            "type" : "string"
          },
          "content" : {
            "type" : "object"
          },
          "link" : {
            "type" : "string"
          },
          "style" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "string"
            }
          }
        }
      },
      "UpdateProductRequest" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Product name",
            "example" : "Samsung Galaxy S24"
          },
          "shortDescription" : {
            "type" : "string",
            "description" : "Short description for cards",
            "example" : "Latest flagship smartphone with AI features"
          },
          "fullDescription" : {
            "type" : "string",
            "description" : "Detailed product description",
            "example" : "The Samsung Galaxy S24 features advanced AI capabilities..."
          },
          "brandId" : {
            "type" : "string",
            "description" : "Brand ID",
            "example" : "507f1f77bcf86cd799439011"
          },
          "categoryId" : {
            "type" : "string",
            "description" : "Product category ID",
            "example" : "507f1f77bcf86cd799439012"
          },
          "sku" : {
            "type" : "string",
            "description" : "Stock Keeping Unit",
            "example" : "SAM-GAL-S24-128GB"
          },
          "barcode" : {
            "type" : "string",
            "description" : "Product barcode",
            "example" : "1234567890123"
          },
          "model" : {
            "type" : "string",
            "description" : "Product model number",
            "example" : "SM-S921B"
          },
          "price" : {
            "type" : "number",
            "description" : "Current selling price",
            "format" : "double",
            "example" : 79999.0
          },
          "originalPrice" : {
            "type" : "number",
            "description" : "Original/MRP price",
            "format" : "double",
            "example" : 89999.0
          },
          "costPrice" : {
            "type" : "number",
            "description" : "Cost price for margin calculation",
            "format" : "double",
            "example" : 65000.0
          },
          "currency" : {
            "type" : "string",
            "description" : "Currency code",
            "example" : "INR"
          },
          "discount" : {
            "type" : "number",
            "description" : "Discount amount",
            "format" : "double",
            "example" : 10000.0
          },
          "discountType" : {
            "type" : "string",
            "description" : "Discount type",
            "example" : "FIXED_AMOUNT"
          },
          "imageId" : {
            "type" : "string",
            "description" : "Primary image ID",
            "example" : "img_123456789"
          },
          "imageUrl" : {
            "type" : "string",
            "description" : "Primary image URL",
            "example" : "https://example.com/images/product.jpg"
          },
          "imageAlt" : {
            "type" : "string",
            "description" : "Image alt text",
            "example" : "Samsung Galaxy S24 Front View"
          },
          "galleryImageIds" : {
            "type" : "array",
            "description" : "Gallery image IDs",
            "items" : {
              "type" : "string",
              "description" : "Gallery image IDs"
            }
          },
          "galleryImageUrls" : {
            "type" : "array",
            "description" : "Gallery image URLs",
            "items" : {
              "type" : "string",
              "description" : "Gallery image URLs"
            }
          },
          "backgroundColor" : {
            "type" : "string",
            "description" : "Background color in hex format",
            "example" : "#FFFFFF"
          },
          "primaryColor" : {
            "type" : "string",
            "description" : "Primary color in hex format",
            "example" : "#007BFF"
          },
          "secondaryColor" : {
            "type" : "string",
            "description" : "Secondary color in hex format",
            "example" : "#6C757D"
          },
          "gradientStart" : {
            "type" : "string",
            "description" : "Gradient start color",
            "example" : "#FF6B6B"
          },
          "gradientEnd" : {
            "type" : "string",
            "description" : "Gradient end color",
            "example" : "#4ECDC4"
          },
          "iconClass" : {
            "type" : "string",
            "description" : "CSS icon class",
            "example" : "bx bx-mobile"
          },
          "displayOrder" : {
            "type" : "integer",
            "description" : "Display order for sorting",
            "format" : "int32",
            "example" : 1
          },
          "isFeatured" : {
            "type" : "boolean",
            "description" : "Whether this product is featured",
            "example" : false
          },
          "isPopular" : {
            "type" : "boolean",
            "description" : "Whether this product is popular",
            "example" : false
          },
          "showOnHomepage" : {
            "type" : "boolean",
            "description" : "Show on homepage",
            "example" : false
          },
          "isBestseller" : {
            "type" : "boolean",
            "description" : "Whether this product is bestseller",
            "example" : false
          },
          "isNewArrival" : {
            "type" : "boolean",
            "description" : "Whether this product is new arrival",
            "example" : true
          },
          "keyFeatures" : {
            "type" : "array",
            "description" : "Key product features",
            "items" : {
              "type" : "string",
              "description" : "Key product features"
            }
          },
          "specifications" : {
            "type" : "array",
            "description" : "Technical specifications",
            "items" : {
              "type" : "string",
              "description" : "Technical specifications"
            }
          },
          "inclusions" : {
            "type" : "array",
            "description" : "What's included in the box",
            "items" : {
              "type" : "string",
              "description" : "What's included in the box"
            }
          },
          "warranty" : {
            "type" : "string",
            "description" : "Warranty information",
            "example" : "1 year manufacturer warranty"
          },
          "returnPolicy" : {
            "type" : "string",
            "description" : "Return policy details",
            "example" : "7 days return policy"
          },
          "weight" : {
            "type" : "number",
            "description" : "Product weight in kg",
            "format" : "double",
            "example" : 0.168
          },
          "dimensions" : {
            "type" : "string",
            "description" : "Dimensions in L x W x H cm",
            "example" : "14.7 x 7.1 x 0.79"
          },
          "color" : {
            "type" : "string",
            "description" : "Primary color",
            "example" : "Phantom Black"
          },
          "availableColors" : {
            "type" : "array",
            "description" : "Available color variants",
            "items" : {
              "type" : "string",
              "description" : "Available color variants"
            }
          },
          "size" : {
            "type" : "string",
            "description" : "Size information",
            "example" : "128GB"
          },
          "availableSizes" : {
            "type" : "array",
            "description" : "Available sizes",
            "items" : {
              "type" : "string",
              "description" : "Available sizes"
            }
          },
          "stockQuantity" : {
            "type" : "integer",
            "description" : "Current stock quantity",
            "format" : "int32",
            "example" : 100
          },
          "minimumStock" : {
            "type" : "integer",
            "description" : "Minimum stock threshold",
            "format" : "int32",
            "example" : 10
          },
          "maximumStock" : {
            "type" : "integer",
            "description" : "Maximum stock capacity",
            "format" : "int32",
            "example" : 500
          },
          "trackInventory" : {
            "type" : "boolean",
            "description" : "Whether to track inventory",
            "example" : true
          },
          "allowBackorder" : {
            "type" : "boolean",
            "description" : "Allow orders when out of stock",
            "example" : false
          },
          "tags" : {
            "type" : "array",
            "description" : "Product tags for search and filtering",
            "items" : {
              "type" : "string",
              "description" : "Product tags for search and filtering"
            }
          },
          "keywords" : {
            "type" : "array",
            "description" : "SEO keywords",
            "items" : {
              "type" : "string",
              "description" : "SEO keywords"
            }
          },
          "categories" : {
            "type" : "array",
            "description" : "Additional category tags",
            "items" : {
              "type" : "string",
              "description" : "Additional category tags"
            }
          },
          "requiresShipping" : {
            "type" : "boolean",
            "description" : "Requires shipping",
            "example" : true
          },
          "shippingWeight" : {
            "type" : "number",
            "description" : "Shipping weight in kg",
            "format" : "double",
            "example" : 0.2
          },
          "isDigital" : {
            "type" : "boolean",
            "description" : "Is digital product",
            "example" : false
          },
          "isVirtual" : {
            "type" : "boolean",
            "description" : "Is virtual product",
            "example" : false
          },
          "taxable" : {
            "type" : "boolean",
            "description" : "Subject to tax",
            "example" : true
          },
          "taxClass" : {
            "type" : "string",
            "description" : "Tax classification",
            "example" : "ELECTRONICS"
          },
          "metaTitle" : {
            "type" : "string",
            "description" : "SEO meta title",
            "example" : "Samsung Galaxy S24 - Latest Flagship Smartphone"
          },
          "metaDescription" : {
            "type" : "string",
            "description" : "SEO meta description",
            "example" : "Buy Samsung Galaxy S24 with advanced AI features"
          },
          "metaKeywords" : {
            "type" : "string",
            "description" : "SEO meta keywords",
            "example" : "samsung, galaxy, s24, smartphone"
          },
          "canonicalUrl" : {
            "type" : "string",
            "description" : "Canonical URL",
            "example" : "/products/samsung-galaxy-s24"
          },
          "status" : {
            "type" : "string",
            "description" : "Product status",
            "example" : "ACTIVE",
            "enum" : [ "ACTIVE", "INACTIVE", "OUT_OF_STOCK", "DISCONTINUED", "DRAFT" ]
          },
          "hasOffer" : {
            "type" : "boolean",
            "description" : "Currently has offers",
            "example" : false
          },
          "offerText" : {
            "type" : "string",
            "description" : "Offer text",
            "example" : "20% OFF Limited Time"
          },
          "offerStartDate" : {
            "type" : "string",
            "description" : "Offer start date",
            "format" : "date-time"
          },
          "offerEndDate" : {
            "type" : "string",
            "description" : "Offer end date",
            "format" : "date-time"
          },
          "isOnSale" : {
            "type" : "boolean",
            "description" : "Currently on sale",
            "example" : false
          },
          "supplierId" : {
            "type" : "string",
            "description" : "Supplier/vendor ID",
            "example" : "supplier123"
          },
          "supplierSku" : {
            "type" : "string",
            "description" : "Supplier's SKU",
            "example" : "SUP-SAM-S24-001"
          },
          "leadTime" : {
            "type" : "integer",
            "description" : "Lead time in days",
            "format" : "int32",
            "example" : 3
          },
          "reorderLevel" : {
            "type" : "integer",
            "description" : "Reorder level",
            "format" : "int32",
            "example" : 20
          },
          "reorderQuantity" : {
            "type" : "integer",
            "description" : "Reorder quantity",
            "format" : "int32",
            "example" : 50
          },
          "relatedProductIds" : {
            "type" : "array",
            "description" : "Related product IDs",
            "items" : {
              "type" : "string",
              "description" : "Related product IDs"
            }
          },
          "crossSellProductIds" : {
            "type" : "array",
            "description" : "Cross-sell product IDs",
            "items" : {
              "type" : "string",
              "description" : "Cross-sell product IDs"
            }
          },
          "upsellProductIds" : {
            "type" : "array",
            "description" : "Upsell product IDs",
            "items" : {
              "type" : "string",
              "description" : "Upsell product IDs"
            }
          },
          "bundleProductIds" : {
            "type" : "array",
            "description" : "Bundle product IDs",
            "items" : {
              "type" : "string",
              "description" : "Bundle product IDs"
            }
          },
          "parentProductId" : {
            "type" : "string",
            "description" : "Parent product ID for variants"
          },
          "isVariant" : {
            "type" : "boolean",
            "description" : "Is this a variant of another product",
            "example" : false
          },
          "variantType" : {
            "type" : "string",
            "description" : "Variant type",
            "example" : "COLOR"
          }
        },
        "description" : "Updated product data"
      },
      "UpdateProductCategoryRequest" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Category name",
            "example" : "Smartphones"
          },
          "description" : {
            "type" : "string",
            "description" : "Category description",
            "example" : "Latest smartphones and mobile devices"
          },
          "parentId" : {
            "type" : "string",
            "description" : "Parent category ID for hierarchical structure",
            "example" : "507f1f77bcf86cd799439012"
          },
          "imageId" : {
            "type" : "string",
            "description" : "Primary image ID",
            "example" : "img_123456789"
          },
          "imageUrl" : {
            "type" : "string",
            "description" : "Primary image URL",
            "example" : "https://example.com/images/category.jpg"
          },
          "imageAlt" : {
            "type" : "string",
            "description" : "Image alt text",
            "example" : "Smartphones Category"
          },
          "bannerImageUrl" : {
            "type" : "string",
            "description" : "Banner image URL",
            "example" : "https://example.com/images/banner.jpg"
          },
          "iconImageUrl" : {
            "type" : "string",
            "description" : "Icon image URL",
            "example" : "https://example.com/images/icon.jpg"
          },
          "backgroundColor" : {
            "type" : "string",
            "description" : "Background color in hex format",
            "example" : "#FFFFFF"
          },
          "primaryColor" : {
            "type" : "string",
            "description" : "Primary color in hex format",
            "example" : "#007BFF"
          },
          "secondaryColor" : {
            "type" : "string",
            "description" : "Secondary color in hex format",
            "example" : "#6C757D"
          },
          "gradientStart" : {
            "type" : "string",
            "description" : "Gradient start color",
            "example" : "#FF6B6B"
          },
          "gradientEnd" : {
            "type" : "string",
            "description" : "Gradient end color",
            "example" : "#4ECDC4"
          },
          "iconClass" : {
            "type" : "string",
            "description" : "CSS icon class",
            "example" : "bx bx-mobile"
          },
          "displayOrder" : {
            "type" : "integer",
            "description" : "Display order for sorting",
            "format" : "int32",
            "example" : 1
          },
          "isFeatured" : {
            "type" : "boolean",
            "description" : "Whether this category is featured",
            "example" : false
          },
          "showOnHomepage" : {
            "type" : "boolean",
            "description" : "Show on homepage",
            "example" : false
          },
          "showInMenu" : {
            "type" : "boolean",
            "description" : "Show in navigation menu",
            "example" : true
          },
          "showInFooter" : {
            "type" : "boolean",
            "description" : "Show in footer links",
            "example" : false
          },
          "categoryType" : {
            "type" : "string",
            "description" : "Category type",
            "example" : "MAIN"
          },
          "maxLevel" : {
            "type" : "integer",
            "description" : "Maximum allowed sub-level depth",
            "format" : "int32",
            "example" : 3
          },
          "attributes" : {
            "type" : "array",
            "description" : "Category-specific attributes",
            "items" : {
              "type" : "string",
              "description" : "Category-specific attributes"
            }
          },
          "filterOptions" : {
            "type" : "array",
            "description" : "Available filter options",
            "items" : {
              "type" : "string",
              "description" : "Available filter options"
            }
          },
          "sortOptions" : {
            "type" : "string",
            "description" : "Default sort options",
            "example" : "price_asc,popularity,rating"
          },
          "allowProducts" : {
            "type" : "boolean",
            "description" : "Allow direct products in this category",
            "example" : true
          },
          "requiresApproval" : {
            "type" : "boolean",
            "description" : "Products need approval before listing",
            "example" : false
          },
          "commissionRate" : {
            "type" : "number",
            "description" : "Commission rate for products",
            "format" : "double",
            "example" : 5.0
          },
          "taxClass" : {
            "type" : "string",
            "description" : "Tax classification",
            "example" : "ELECTRONICS"
          },
          "metaTitle" : {
            "type" : "string",
            "description" : "SEO meta title",
            "example" : "Smartphones - Latest Mobile Devices"
          },
          "metaDescription" : {
            "type" : "string",
            "description" : "SEO meta description",
            "example" : "Shop latest smartphones with best prices"
          },
          "metaKeywords" : {
            "type" : "string",
            "description" : "SEO meta keywords",
            "example" : "smartphones, mobile, android, ios"
          },
          "canonicalUrl" : {
            "type" : "string",
            "description" : "Canonical URL",
            "example" : "/categories/smartphones"
          },
          "ogTitle" : {
            "type" : "string",
            "description" : "Open Graph title",
            "example" : "Best Smartphones Collection"
          },
          "ogDescription" : {
            "type" : "string",
            "description" : "Open Graph description",
            "example" : "Discover the latest smartphones"
          },
          "ogImage" : {
            "type" : "string",
            "description" : "Open Graph image",
            "example" : "https://example.com/og-image.jpg"
          },
          "status" : {
            "type" : "string",
            "description" : "Category status",
            "example" : "ACTIVE",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT" ]
          },
          "shortDescription" : {
            "type" : "string",
            "description" : "Short description for cards",
            "example" : "Latest mobile devices"
          },
          "benefits" : {
            "type" : "string",
            "description" : "Key benefits/features",
            "example" : "Fast delivery, warranty included"
          },
          "keyFeatures" : {
            "type" : "array",
            "description" : "Category highlights",
            "items" : {
              "type" : "string",
              "description" : "Category highlights"
            }
          },
          "headerContent" : {
            "type" : "string",
            "description" : "Header content for category page"
          },
          "footerContent" : {
            "type" : "string",
            "description" : "Footer content for category page"
          },
          "sidebarContent" : {
            "type" : "string",
            "description" : "Sidebar content"
          },
          "bannerImages" : {
            "type" : "array",
            "description" : "Multiple banner images",
            "items" : {
              "type" : "string",
              "description" : "Multiple banner images"
            }
          },
          "productsPerPage" : {
            "type" : "integer",
            "description" : "Products to show per page",
            "format" : "int32",
            "example" : 20
          },
          "defaultSortBy" : {
            "type" : "string",
            "description" : "Default sorting",
            "example" : "price_asc"
          },
          "enableFilters" : {
            "type" : "boolean",
            "description" : "Enable filtering for this category",
            "example" : true
          },
          "enableSearch" : {
            "type" : "boolean",
            "description" : "Enable search within category",
            "example" : true
          },
          "enableComparison" : {
            "type" : "boolean",
            "description" : "Enable product comparison",
            "example" : true
          },
          "isSeasonalCategory" : {
            "type" : "boolean",
            "description" : "Is seasonal category",
            "example" : false
          },
          "seasonStart" : {
            "type" : "string",
            "description" : "Season start date",
            "format" : "date-time"
          },
          "seasonEnd" : {
            "type" : "string",
            "description" : "Season end date",
            "format" : "date-time"
          },
          "promotionalText" : {
            "type" : "string",
            "description" : "Promotional text",
            "example" : "Special Diwali Offers"
          }
        },
        "description" : "Updated product category data"
      },
      "UpdateInventoryRequest" : {
        "type" : "object",
        "properties" : {
          "stockQuantity" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "Stock quantity",
            "format" : "int32",
            "example" : 150
          },
          "reservedQuantity" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "Reserved quantity",
            "format" : "int32",
            "example" : 15
          },
          "minimumStock" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "Minimum stock threshold",
            "format" : "int32",
            "example" : 25
          },
          "maximumStock" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "Maximum stock threshold",
            "format" : "int32",
            "example" : 600
          },
          "reorderLevel" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "Reorder level threshold",
            "format" : "int32",
            "example" : 35
          },
          "reorderQuantity" : {
            "minimum" : 1,
            "type" : "integer",
            "description" : "Reorder quantity",
            "format" : "int32",
            "example" : 75
          },
          "warehouseId" : {
            "type" : "string",
            "description" : "Warehouse ID",
            "example" : "WH002"
          },
          "warehouseLocation" : {
            "type" : "string",
            "description" : "Warehouse location",
            "example" : "Chittagong Branch Warehouse"
          },
          "binLocation" : {
            "type" : "string",
            "description" : "Bin location within warehouse",
            "example" : "B-2-C-1"
          },
          "supplierReference" : {
            "type" : "string",
            "description" : "Supplier reference",
            "example" : "SUP-REF-002"
          },
          "unitCost" : {
            "minimum" : 0,
            "type" : "number",
            "description" : "Unit cost for inventory valuation",
            "format" : "double",
            "example" : 27.75
          },
          "leadTimeDays" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "Lead time in days",
            "format" : "int32",
            "example" : 10
          },
          "expectedRestockDate" : {
            "type" : "string",
            "description" : "Expected restock date",
            "format" : "date-time"
          },
          "lastSupplierOrderId" : {
            "type" : "string",
            "description" : "Last supplier order ID",
            "example" : "PO-2024-002"
          },
          "damagedQuantity" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "Damaged stock quantity",
            "format" : "int32",
            "example" : 1
          },
          "expiredQuantity" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "Expired stock quantity",
            "format" : "int32",
            "example" : 0
          },
          "expiryDate" : {
            "type" : "string",
            "description" : "Expiry date for perishable items",
            "format" : "date-time"
          },
          "qualityGrade" : {
            "type" : "string",
            "description" : "Quality grade (A, B, C)",
            "example" : "B"
          },
          "trackMovements" : {
            "type" : "boolean",
            "description" : "Whether to track stock movements",
            "example" : false
          },
          "enableAlerts" : {
            "type" : "boolean",
            "description" : "Whether alerts are enabled",
            "example" : false
          },
          "notes" : {
            "type" : "string",
            "description" : "Additional notes",
            "example" : "Updated stock levels"
          }
        },
        "description" : "Inventory update request"
      },
      "ApiResponseHomePageSection" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/HomePageSection"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "HomePageSection" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "cityId" : {
            "type" : "string"
          },
          "sectionId" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "isVisible" : {
            "type" : "boolean"
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "settings" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "updatedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "createdBy" : {
            "type" : "string"
          },
          "updatedBy" : {
            "type" : "string"
          }
        }
      },
      "UpdateCartItemRequest" : {
        "type" : "object",
        "properties" : {
          "quantity" : {
            "minimum" : 1,
            "type" : "integer",
            "description" : "New quantity for the item",
            "format" : "int32",
            "example" : 3
          },
          "selectedVariant" : {
            "type" : "string",
            "description" : "Selected product variant",
            "example" : "Blue-Medium"
          },
          "selectedColor" : {
            "type" : "string",
            "description" : "Selected color",
            "example" : "Blue"
          },
          "selectedSize" : {
            "type" : "string",
            "description" : "Selected size",
            "example" : "Medium"
          },
          "vendorId" : {
            "type" : "string",
            "description" : "Preferred vendor ID for services",
            "example" : "vendor456"
          },
          "preferredServiceDate" : {
            "type" : "string",
            "description" : "Preferred service date for services",
            "format" : "date-time"
          },
          "serviceAddress" : {
            "type" : "string",
            "description" : "Service address for services",
            "example" : "456 Oak St, City"
          },
          "serviceInstructions" : {
            "type" : "string",
            "description" : "Service instructions for services",
            "example" : "Use back entrance"
          },
          "selectedOptions" : {
            "type" : "array",
            "description" : "Selected package options for services",
            "example" : [ "premium", "express" ],
            "items" : {
              "type" : "string",
              "description" : "Selected package options for services",
              "example" : "[\"premium\",\"express\"]"
            }
          },
          "notes" : {
            "type" : "string",
            "description" : "Special notes or customizations",
            "example" : "Updated requirements"
          }
        },
        "description" : "Cart item update request"
      },
      "UpdateDeliveryInfoRequest" : {
        "required" : [ "deliveryAddress" ],
        "type" : "object",
        "properties" : {
          "deliveryAddress" : {
            "type" : "string",
            "description" : "Delivery address",
            "example" : "123 Main St, City, State 12345"
          },
          "deliveryType" : {
            "type" : "string",
            "description" : "Delivery type",
            "example" : "HOME_DELIVERY",
            "enum" : [ "HOME_DELIVERY", "PICKUP", "EXPRESS" ]
          },
          "preferredDeliveryDate" : {
            "type" : "string",
            "description" : "Preferred delivery date",
            "format" : "date-time"
          },
          "deliveryInstructions" : {
            "type" : "string",
            "description" : "Special delivery instructions",
            "example" : "Leave at front door if no answer"
          }
        },
        "description" : "Delivery information update request"
      },
      "UpdateServiceVisitRequest" : {
        "type" : "object",
        "properties" : {
          "scheduledDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "scheduledStartTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "scheduledEndTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "timeSlot" : {
            "type" : "string"
          },
          "actualStartTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "actualEndTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "arrivalTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "departureTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "actualDuration" : {
            "type" : "integer",
            "format" : "int32"
          },
          "travelTime" : {
            "type" : "integer",
            "format" : "int32"
          },
          "workDescription" : {
            "type" : "string"
          },
          "workSummary" : {
            "type" : "string"
          },
          "tasksCompleted" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "tasksPending" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "issuesFound" : {
            "type" : "string"
          },
          "recommendedActions" : {
            "type" : "string"
          },
          "materialsUsed" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "toolsUsed" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "materialsCost" : {
            "type" : "number",
            "format" : "double"
          },
          "materialsInvoice" : {
            "type" : "string"
          },
          "customerProvidedMaterials" : {
            "type" : "boolean"
          },
          "customerFeedback" : {
            "type" : "string"
          },
          "customerRating" : {
            "type" : "number",
            "format" : "double"
          },
          "customerPresent" : {
            "type" : "boolean"
          },
          "customerSignature" : {
            "type" : "string"
          },
          "customerComments" : {
            "type" : "string"
          },
          "isCompleted" : {
            "type" : "boolean"
          },
          "completionPercentage" : {
            "type" : "number",
            "format" : "double"
          },
          "requiresRevisit" : {
            "type" : "boolean"
          },
          "revisitReason" : {
            "type" : "string"
          },
          "suggestedRevisitDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "qualityCheckNotes" : {
            "type" : "string"
          },
          "vendorName" : {
            "type" : "string"
          },
          "vendorPhone" : {
            "type" : "string"
          },
          "vendorNotes" : {
            "type" : "string"
          },
          "vendorRecommendations" : {
            "type" : "string"
          },
          "vendorRating" : {
            "type" : "number",
            "format" : "double"
          },
          "vendorPerformanceNotes" : {
            "type" : "string"
          },
          "equipmentUsed" : {
            "type" : "string"
          },
          "technicalFindings" : {
            "type" : "string"
          },
          "troubleshootingSteps" : {
            "type" : "string"
          },
          "solutionApplied" : {
            "type" : "string"
          },
          "preventiveMeasures" : {
            "type" : "string"
          },
          "safetyProtocolsFollowed" : {
            "type" : "boolean"
          },
          "safetyNotes" : {
            "type" : "string"
          },
          "complianceChecked" : {
            "type" : "boolean"
          },
          "complianceNotes" : {
            "type" : "string"
          },
          "certifications" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "visitCharge" : {
            "type" : "number",
            "format" : "double"
          },
          "additionalCharges" : {
            "type" : "number",
            "format" : "double"
          },
          "discount" : {
            "type" : "number",
            "format" : "double"
          },
          "currency" : {
            "type" : "string"
          },
          "billingNotes" : {
            "type" : "string"
          },
          "weatherConditions" : {
            "type" : "string"
          },
          "trafficConditions" : {
            "type" : "string"
          },
          "accessibilityIssues" : {
            "type" : "string"
          },
          "externalFactors" : {
            "type" : "string"
          },
          "hasWarranty" : {
            "type" : "boolean"
          },
          "warrantyDays" : {
            "type" : "integer",
            "format" : "int32"
          },
          "warrantyTerms" : {
            "type" : "string"
          },
          "followUpRequired" : {
            "type" : "boolean"
          },
          "followUpDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "followUpInstructions" : {
            "type" : "string"
          },
          "gpsLocation" : {
            "type" : "string"
          },
          "vendorGpsTrack" : {
            "type" : "string"
          },
          "distanceTraveled" : {
            "type" : "number",
            "format" : "double"
          },
          "routeTaken" : {
            "type" : "string"
          },
          "rescheduleReason" : {
            "type" : "string"
          },
          "cancellationReason" : {
            "type" : "string"
          },
          "isRefundable" : {
            "type" : "boolean"
          }
        }
      },
      "ApiResponseServiceVisitResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/ServiceVisitResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ServiceVisitResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "visitNumber" : {
            "type" : "string"
          },
          "bookingId" : {
            "type" : "string"
          },
          "vendorId" : {
            "type" : "string"
          },
          "customerId" : {
            "type" : "string"
          },
          "serviceId" : {
            "type" : "string"
          },
          "cityId" : {
            "type" : "string"
          },
          "scheduledDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "scheduledStartTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "scheduledEndTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "timeSlot" : {
            "type" : "string"
          },
          "actualStartTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "actualEndTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "arrivalTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "departureTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "actualDuration" : {
            "type" : "integer",
            "format" : "int32"
          },
          "travelTime" : {
            "type" : "integer",
            "format" : "int32"
          },
          "formattedDuration" : {
            "type" : "string"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "SCHEDULED", "IN_PROGRESS", "COMPLETED", "CANCELLED", "RESCHEDULED", "NO_SHOW", "CUSTOMER_UNAVAILABLE", "FAILED", "PARTIALLY_COMPLETED", "PENDING_APPROVAL" ]
          },
          "statusReason" : {
            "type" : "string"
          },
          "statusUpdatedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "statusUpdatedBy" : {
            "type" : "string"
          },
          "workDescription" : {
            "type" : "string"
          },
          "workSummary" : {
            "type" : "string"
          },
          "tasksCompleted" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "tasksPending" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "issuesFound" : {
            "type" : "string"
          },
          "recommendedActions" : {
            "type" : "string"
          },
          "beforeImages" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "afterImages" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "workInProgressImages" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "documentUrls" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "videoUrl" : {
            "type" : "string"
          },
          "hasDocumentation" : {
            "type" : "boolean"
          },
          "totalImages" : {
            "type" : "integer",
            "format" : "int32"
          },
          "materialsUsed" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "toolsUsed" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "materialsCost" : {
            "type" : "number",
            "format" : "double"
          },
          "materialsInvoice" : {
            "type" : "string"
          },
          "customerProvidedMaterials" : {
            "type" : "boolean"
          },
          "customerFeedback" : {
            "type" : "string"
          },
          "customerRating" : {
            "type" : "number",
            "format" : "double"
          },
          "feedbackDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "customerPresent" : {
            "type" : "boolean"
          },
          "customerSignature" : {
            "type" : "string"
          },
          "customerComments" : {
            "type" : "string"
          },
          "isCompleted" : {
            "type" : "boolean"
          },
          "completionPercentage" : {
            "type" : "number",
            "format" : "double"
          },
          "requiresRevisit" : {
            "type" : "boolean"
          },
          "revisitReason" : {
            "type" : "string"
          },
          "suggestedRevisitDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "qualityCheckNotes" : {
            "type" : "string"
          },
          "isFullyCompleted" : {
            "type" : "boolean"
          },
          "needsFollowUp" : {
            "type" : "boolean"
          },
          "vendorName" : {
            "type" : "string"
          },
          "vendorPhone" : {
            "type" : "string"
          },
          "vendorNotes" : {
            "type" : "string"
          },
          "vendorRecommendations" : {
            "type" : "string"
          },
          "vendorRating" : {
            "type" : "number",
            "format" : "double"
          },
          "vendorPerformanceNotes" : {
            "type" : "string"
          },
          "equipmentUsed" : {
            "type" : "string"
          },
          "technicalFindings" : {
            "type" : "string"
          },
          "troubleshootingSteps" : {
            "type" : "string"
          },
          "solutionApplied" : {
            "type" : "string"
          },
          "preventiveMeasures" : {
            "type" : "string"
          },
          "safetyProtocolsFollowed" : {
            "type" : "boolean"
          },
          "safetyNotes" : {
            "type" : "string"
          },
          "complianceChecked" : {
            "type" : "boolean"
          },
          "complianceNotes" : {
            "type" : "string"
          },
          "certifications" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "visitCharge" : {
            "type" : "number",
            "format" : "double"
          },
          "additionalCharges" : {
            "type" : "number",
            "format" : "double"
          },
          "discount" : {
            "type" : "number",
            "format" : "double"
          },
          "totalAmount" : {
            "type" : "number",
            "format" : "double"
          },
          "currency" : {
            "type" : "string"
          },
          "billingNotes" : {
            "type" : "string"
          },
          "formattedTotal" : {
            "type" : "string"
          },
          "weatherConditions" : {
            "type" : "string"
          },
          "trafficConditions" : {
            "type" : "string"
          },
          "accessibilityIssues" : {
            "type" : "string"
          },
          "externalFactors" : {
            "type" : "string"
          },
          "hasWarranty" : {
            "type" : "boolean"
          },
          "warrantyDays" : {
            "type" : "integer",
            "format" : "int32"
          },
          "warrantyExpiry" : {
            "type" : "string",
            "format" : "date-time"
          },
          "warrantyTerms" : {
            "type" : "string"
          },
          "followUpRequired" : {
            "type" : "boolean"
          },
          "followUpDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "followUpInstructions" : {
            "type" : "string"
          },
          "isWithinWarranty" : {
            "type" : "boolean"
          },
          "gpsLocation" : {
            "type" : "string"
          },
          "vendorGpsTrack" : {
            "type" : "string"
          },
          "distanceTraveled" : {
            "type" : "number",
            "format" : "double"
          },
          "routeTaken" : {
            "type" : "string"
          },
          "rescheduleCount" : {
            "type" : "integer",
            "format" : "int32"
          },
          "lastRescheduledAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "rescheduleReason" : {
            "type" : "string"
          },
          "rescheduleHistory" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "cancelledAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "cancellationReason" : {
            "type" : "string"
          },
          "cancelledBy" : {
            "type" : "string"
          },
          "isRefundable" : {
            "type" : "boolean"
          },
          "customerSegment" : {
            "type" : "string"
          },
          "serviceComplexity" : {
            "type" : "string"
          },
          "profitMargin" : {
            "type" : "number",
            "format" : "double"
          },
          "performanceScore" : {
            "type" : "string"
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "updatedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "createdBy" : {
            "type" : "string"
          },
          "updatedBy" : {
            "type" : "string"
          },
          "isValid" : {
            "type" : "boolean"
          },
          "validationErrors" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "requiresApproval" : {
            "type" : "boolean"
          },
          "approvedBy" : {
            "type" : "string"
          },
          "approvedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "isVisitCompleted" : {
            "type" : "boolean"
          },
          "isCancelled" : {
            "type" : "boolean"
          },
          "isInProgress" : {
            "type" : "boolean"
          },
          "isScheduled" : {
            "type" : "boolean"
          },
          "canBeStarted" : {
            "type" : "boolean"
          },
          "canBeCancelled" : {
            "type" : "boolean"
          },
          "canBeRescheduled" : {
            "type" : "boolean"
          },
          "isOverdue" : {
            "type" : "boolean"
          },
          "isToday" : {
            "type" : "boolean"
          },
          "isTomorrow" : {
            "type" : "boolean"
          },
          "isUpcoming" : {
            "type" : "boolean"
          },
          "timeSlotDisplay" : {
            "type" : "string"
          }
        }
      },
      "UpdateServiceBookingRequest" : {
        "type" : "object",
        "properties" : {
          "scheduledDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "scheduledTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "scheduledEndTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "timeSlot" : {
            "type" : "string"
          },
          "estimatedDuration" : {
            "type" : "integer",
            "format" : "int32"
          },
          "address" : {
            "type" : "string"
          },
          "addressLine1" : {
            "type" : "string"
          },
          "addressLine2" : {
            "type" : "string"
          },
          "landmark" : {
            "type" : "string"
          },
          "pincode" : {
            "type" : "string"
          },
          "contactPhone" : {
            "pattern" : "^[+]?[0-9]{10,15}$",
            "type" : "string"
          },
          "contactName" : {
            "type" : "string"
          },
          "alternatePhone" : {
            "pattern" : "^[+]?[0-9]{10,15}$",
            "type" : "string"
          },
          "vendorId" : {
            "type" : "string"
          },
          "vendorName" : {
            "type" : "string"
          },
          "vendorPhone" : {
            "type" : "string"
          },
          "specialInstructions" : {
            "type" : "string"
          },
          "customerNotes" : {
            "type" : "string"
          },
          "internalNotes" : {
            "type" : "string"
          },
          "serviceRequirements" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "equipmentNeeded" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "isUrgent" : {
            "type" : "boolean"
          },
          "isRecurring" : {
            "type" : "boolean"
          },
          "recurringPattern" : {
            "type" : "string"
          },
          "nextRecurringDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "totalAmount" : {
            "type" : "number",
            "format" : "double"
          },
          "serviceCharge" : {
            "type" : "number",
            "format" : "double"
          },
          "additionalCharges" : {
            "type" : "number",
            "format" : "double"
          },
          "discount" : {
            "type" : "number",
            "format" : "double"
          },
          "currency" : {
            "type" : "string"
          },
          "paymentMethod" : {
            "type" : "string"
          },
          "actualStartTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "actualEndTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "actualDuration" : {
            "type" : "integer",
            "format" : "int32"
          },
          "completionNotes" : {
            "type" : "string"
          },
          "completionImages" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "customerRating" : {
            "type" : "number",
            "format" : "double"
          },
          "customerFeedback" : {
            "type" : "string"
          },
          "isRecommended" : {
            "type" : "boolean"
          },
          "hasWarranty" : {
            "type" : "boolean"
          },
          "warrantyDays" : {
            "type" : "integer",
            "format" : "int32"
          },
          "warrantyTerms" : {
            "type" : "string"
          },
          "requiresFollowUp" : {
            "type" : "boolean"
          },
          "followUpDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "rescheduleReason" : {
            "type" : "string"
          },
          "cancellationReason" : {
            "type" : "string"
          },
          "isRefundable" : {
            "type" : "boolean"
          },
          "refundAmount" : {
            "type" : "number",
            "format" : "double"
          }
        }
      },
      "ApiResponseServiceBookingResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/ServiceBookingResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ServiceBookingResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "bookingNumber" : {
            "type" : "string"
          },
          "customerId" : {
            "type" : "string"
          },
          "serviceId" : {
            "type" : "string"
          },
          "packageId" : {
            "type" : "string"
          },
          "cityId" : {
            "type" : "string"
          },
          "scheduledDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "scheduledTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "scheduledEndTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "timeSlot" : {
            "type" : "string"
          },
          "estimatedDuration" : {
            "type" : "integer",
            "format" : "int32"
          },
          "address" : {
            "type" : "string"
          },
          "addressLine1" : {
            "type" : "string"
          },
          "addressLine2" : {
            "type" : "string"
          },
          "landmark" : {
            "type" : "string"
          },
          "pincode" : {
            "type" : "string"
          },
          "contactPhone" : {
            "type" : "string"
          },
          "contactName" : {
            "type" : "string"
          },
          "alternatePhone" : {
            "type" : "string"
          },
          "vendorId" : {
            "type" : "string"
          },
          "vendorName" : {
            "type" : "string"
          },
          "vendorPhone" : {
            "type" : "string"
          },
          "vendorAssignedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "assignedBy" : {
            "type" : "string"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "PENDING", "CONFIRMED", "ASSIGNED", "IN_PROGRESS", "COMPLETED", "CANCELLED", "RESCHEDULED", "NO_SHOW", "FAILED", "REFUNDED", "ON_HOLD" ]
          },
          "statusReason" : {
            "type" : "string"
          },
          "statusUpdatedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "statusUpdatedBy" : {
            "type" : "string"
          },
          "totalAmount" : {
            "type" : "number",
            "format" : "double"
          },
          "serviceCharge" : {
            "type" : "number",
            "format" : "double"
          },
          "additionalCharges" : {
            "type" : "number",
            "format" : "double"
          },
          "discount" : {
            "type" : "number",
            "format" : "double"
          },
          "taxAmount" : {
            "type" : "number",
            "format" : "double"
          },
          "currency" : {
            "type" : "string"
          },
          "formattedTotal" : {
            "type" : "string"
          },
          "paymentMethod" : {
            "type" : "string"
          },
          "paymentStatus" : {
            "type" : "string",
            "enum" : [ "PENDING", "PROCESSING", "COMPLETED", "FAILED", "CANCELLED", "REFUNDED", "PARTIALLY_REFUNDED", "EXPIRED", "DISPUTED", "AUTHORIZED", "CAPTURED" ]
          },
          "paymentId" : {
            "type" : "string"
          },
          "paymentDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "paymentReference" : {
            "type" : "string"
          },
          "specialInstructions" : {
            "type" : "string"
          },
          "customerNotes" : {
            "type" : "string"
          },
          "internalNotes" : {
            "type" : "string"
          },
          "serviceRequirements" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "equipmentNeeded" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "preferredVendorId" : {
            "type" : "string"
          },
          "isUrgent" : {
            "type" : "boolean"
          },
          "isRecurring" : {
            "type" : "boolean"
          },
          "recurringPattern" : {
            "type" : "string"
          },
          "nextRecurringDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "source" : {
            "type" : "string"
          },
          "campaign" : {
            "type" : "string"
          },
          "referrer" : {
            "type" : "string"
          },
          "promoCode" : {
            "type" : "string"
          },
          "affiliateId" : {
            "type" : "string"
          },
          "actualStartTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "actualEndTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "actualDuration" : {
            "type" : "integer",
            "format" : "int32"
          },
          "completionNotes" : {
            "type" : "string"
          },
          "completionImages" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "customerRating" : {
            "type" : "number",
            "format" : "double"
          },
          "customerFeedback" : {
            "type" : "string"
          },
          "feedbackDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "isRecommended" : {
            "type" : "boolean"
          },
          "hasWarranty" : {
            "type" : "boolean"
          },
          "warrantyDays" : {
            "type" : "integer",
            "format" : "int32"
          },
          "warrantyExpiry" : {
            "type" : "string",
            "format" : "date-time"
          },
          "warrantyTerms" : {
            "type" : "string"
          },
          "requiresFollowUp" : {
            "type" : "boolean"
          },
          "followUpDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "rescheduleCount" : {
            "type" : "integer",
            "format" : "int32"
          },
          "lastRescheduledAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "rescheduleReason" : {
            "type" : "string"
          },
          "rescheduleHistory" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "cancelledAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "cancellationReason" : {
            "type" : "string"
          },
          "cancelledBy" : {
            "type" : "string"
          },
          "isRefundable" : {
            "type" : "boolean"
          },
          "refundAmount" : {
            "type" : "number",
            "format" : "double"
          },
          "refundStatus" : {
            "type" : "string"
          },
          "visitIds" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "totalVisits" : {
            "type" : "integer",
            "format" : "int32"
          },
          "completedVisits" : {
            "type" : "integer",
            "format" : "int32"
          },
          "pendingVisits" : {
            "type" : "integer",
            "format" : "int32"
          },
          "revisitRequestIds" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "totalRevisits" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approvedRevisits" : {
            "type" : "integer",
            "format" : "int32"
          },
          "hasActiveRevisit" : {
            "type" : "boolean"
          },
          "customerSegment" : {
            "type" : "string"
          },
          "customerBookingCount" : {
            "type" : "integer",
            "format" : "int32"
          },
          "profitMargin" : {
            "type" : "number",
            "format" : "double"
          },
          "vendorPerformanceScore" : {
            "type" : "string"
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "updatedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "createdBy" : {
            "type" : "string"
          },
          "updatedBy" : {
            "type" : "string"
          },
          "isValid" : {
            "type" : "boolean"
          },
          "validationErrors" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "lastValidatedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "requiresApproval" : {
            "type" : "boolean"
          },
          "approvedBy" : {
            "type" : "string"
          },
          "approvedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "isCompleted" : {
            "type" : "boolean"
          },
          "isCancelled" : {
            "type" : "boolean"
          },
          "isPaid" : {
            "type" : "boolean"
          },
          "isOverdue" : {
            "type" : "boolean"
          },
          "isToday" : {
            "type" : "boolean"
          },
          "isTomorrow" : {
            "type" : "boolean"
          },
          "isUpcoming" : {
            "type" : "boolean"
          },
          "isWithinWarranty" : {
            "type" : "boolean"
          },
          "canBeCancelled" : {
            "type" : "boolean"
          },
          "canBeRescheduled" : {
            "type" : "boolean"
          },
          "daysSinceBooking" : {
            "type" : "integer",
            "format" : "int64"
          },
          "hoursUntilService" : {
            "type" : "integer",
            "format" : "int64"
          },
          "timeSlotDisplay" : {
            "type" : "string"
          }
        }
      },
      "UpdateSaleRequest" : {
        "type" : "object",
        "properties" : {
          "customerNotes" : {
            "type" : "string",
            "description" : "Customer notes",
            "example" : "Updated delivery instructions"
          },
          "internalNotes" : {
            "type" : "string",
            "description" : "Internal notes",
            "example" : "Customer called to confirm address"
          },
          "specialInstructions" : {
            "type" : "string",
            "description" : "Special instructions",
            "example" : "Leave at front door"
          },
          "deliveryAddress" : {
            "type" : "string",
            "description" : "Delivery address",
            "example" : "456 New St, City, State 12345"
          },
          "deliveryCity" : {
            "type" : "string",
            "description" : "Delivery city",
            "example" : "New City"
          },
          "deliveryState" : {
            "type" : "string",
            "description" : "Delivery state",
            "example" : "New State"
          },
          "deliveryPincode" : {
            "type" : "string",
            "description" : "Delivery pincode",
            "example" : "54321"
          },
          "deliveryCountry" : {
            "type" : "string",
            "description" : "Delivery country",
            "example" : "India"
          },
          "contactPhone" : {
            "type" : "string",
            "description" : "Contact phone",
            "example" : "+1234567890"
          },
          "contactEmail" : {
            "type" : "string",
            "description" : "Contact email",
            "example" : "newemail@example.com"
          },
          "contactName" : {
            "type" : "string",
            "description" : "Contact name",
            "example" : "John Doe"
          },
          "billingAddress" : {
            "type" : "string",
            "description" : "Billing address",
            "example" : "789 Billing St, City, State 12345"
          },
          "billingCity" : {
            "type" : "string",
            "description" : "Billing city",
            "example" : "Billing City"
          },
          "billingState" : {
            "type" : "string",
            "description" : "Billing state",
            "example" : "Billing State"
          },
          "billingPincode" : {
            "type" : "string",
            "description" : "Billing pincode",
            "example" : "67890"
          },
          "billingCountry" : {
            "type" : "string",
            "description" : "Billing country",
            "example" : "India"
          },
          "taxId" : {
            "type" : "string",
            "description" : "Tax ID (GST number)",
            "example" : "GST123456789"
          },
          "commissionRate" : {
            "type" : "number",
            "description" : "Commission rate percentage",
            "format" : "double",
            "example" : 5.0
          },
          "source" : {
            "type" : "string",
            "description" : "Sale source",
            "example" : "online",
            "enum" : [ "store", "online", "phone", "field" ]
          },
          "channel" : {
            "type" : "string",
            "description" : "Sales channel",
            "example" : "partner",
            "enum" : [ "direct", "partner", "affiliate" ]
          }
        },
        "description" : "Request to update a sale"
      },
      "ApiResponseSaleResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/SaleResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "SaleItemResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Sale item ID",
            "example" : "item123"
          },
          "saleId" : {
            "type" : "string",
            "description" : "Sale ID",
            "example" : "sale123"
          },
          "productId" : {
            "type" : "string",
            "description" : "Product ID",
            "example" : "product123"
          },
          "serviceId" : {
            "type" : "string",
            "description" : "Service ID",
            "example" : "service123"
          },
          "packageId" : {
            "type" : "string",
            "description" : "Package ID",
            "example" : "package123"
          },
          "customerId" : {
            "type" : "string",
            "description" : "Customer ID",
            "example" : "customer123"
          },
          "cityId" : {
            "type" : "string",
            "description" : "City ID",
            "example" : "city123"
          },
          "vendorId" : {
            "type" : "string",
            "description" : "Vendor ID",
            "example" : "vendor123"
          },
          "quantity" : {
            "type" : "integer",
            "description" : "Quantity",
            "format" : "int32",
            "example" : 2
          },
          "unitPrice" : {
            "type" : "number",
            "description" : "Unit price",
            "format" : "double",
            "example" : 50.0
          },
          "originalUnitPrice" : {
            "type" : "number",
            "description" : "Original unit price",
            "format" : "double",
            "example" : 55.0
          },
          "totalPrice" : {
            "type" : "number",
            "description" : "Total price",
            "format" : "double",
            "example" : 100.0
          },
          "currency" : {
            "type" : "string",
            "description" : "Currency",
            "example" : "INR"
          },
          "unitCost" : {
            "type" : "number",
            "description" : "Unit cost",
            "format" : "double",
            "example" : 30.0
          },
          "totalCost" : {
            "type" : "number",
            "description" : "Total cost",
            "format" : "double",
            "example" : 60.0
          },
          "profitPerUnit" : {
            "type" : "number",
            "description" : "Profit per unit",
            "format" : "double",
            "example" : 20.0
          },
          "totalProfit" : {
            "type" : "number",
            "description" : "Total profit",
            "format" : "double",
            "example" : 40.0
          },
          "profitMargin" : {
            "type" : "number",
            "description" : "Profit margin",
            "format" : "double",
            "example" : 40.0
          },
          "discountAmount" : {
            "type" : "number",
            "description" : "Discount amount",
            "format" : "double",
            "example" : 5.0
          },
          "discountType" : {
            "type" : "string",
            "description" : "Discount type",
            "example" : "FIXED_AMOUNT"
          },
          "discountPercentage" : {
            "type" : "number",
            "description" : "Discount percentage",
            "format" : "double",
            "example" : 10.0
          },
          "discountReason" : {
            "type" : "string",
            "description" : "Discount reason",
            "example" : "Bulk purchase"
          },
          "itemType" : {
            "type" : "string",
            "description" : "Item type",
            "example" : "PRODUCT"
          },
          "itemTypeDisplay" : {
            "type" : "string",
            "description" : "Item type display",
            "example" : "Product"
          },
          "categoryId" : {
            "type" : "string",
            "description" : "Category ID",
            "example" : "category123"
          },
          "brandId" : {
            "type" : "string",
            "description" : "Brand ID",
            "example" : "brand123"
          },
          "itemName" : {
            "type" : "string",
            "description" : "Item name",
            "example" : "Premium Widget"
          },
          "itemDescription" : {
            "type" : "string",
            "description" : "Item description",
            "example" : "High-quality premium widget"
          },
          "itemImageUrl" : {
            "type" : "string",
            "description" : "Item image URL",
            "example" : "https://example.com/image.jpg"
          },
          "itemSku" : {
            "type" : "string",
            "description" : "Item SKU",
            "example" : "SKU123"
          },
          "itemModel" : {
            "type" : "string",
            "description" : "Item model",
            "example" : "Model-X"
          },
          "status" : {
            "type" : "string",
            "description" : "Status",
            "example" : "COMPLETED",
            "enum" : [ "PENDING", "CONFIRMED", "PROCESSING", "COMPLETED", "DELIVERED", "SERVICED", "CANCELLED", "REFUNDED", "RETURNED", "FAILED" ]
          },
          "scheduledServiceDate" : {
            "type" : "string",
            "description" : "Scheduled service date",
            "format" : "date-time"
          },
          "actualServiceDate" : {
            "type" : "string",
            "description" : "Actual service date",
            "format" : "date-time"
          },
          "serviceAddress" : {
            "type" : "string",
            "description" : "Service address",
            "example" : "123 Service St, City"
          },
          "serviceInstructions" : {
            "type" : "string",
            "description" : "Service instructions",
            "example" : "Call before arrival"
          },
          "selectedOptions" : {
            "type" : "array",
            "description" : "Selected options",
            "items" : {
              "type" : "string",
              "description" : "Selected options"
            }
          },
          "serviceNotes" : {
            "type" : "string",
            "description" : "Service notes",
            "example" : "Service completed successfully"
          },
          "serviceTechnician" : {
            "type" : "string",
            "description" : "Service technician",
            "example" : "Tech John"
          },
          "selectedVariant" : {
            "type" : "string",
            "description" : "Selected variant",
            "example" : "Red-Large"
          },
          "selectedColor" : {
            "type" : "string",
            "description" : "Selected color",
            "example" : "Red"
          },
          "selectedSize" : {
            "type" : "string",
            "description" : "Selected size",
            "example" : "Large"
          },
          "customizations" : {
            "type" : "array",
            "description" : "Customizations",
            "items" : {
              "type" : "string",
              "description" : "Customizations"
            }
          },
          "serialNumber" : {
            "type" : "string",
            "description" : "Serial number",
            "example" : "SN123456"
          },
          "salesPersonId" : {
            "type" : "string",
            "description" : "Sales person ID",
            "example" : "salesperson123"
          },
          "commissionRate" : {
            "type" : "number",
            "description" : "Commission rate",
            "format" : "double",
            "example" : 5.0
          },
          "commissionAmount" : {
            "type" : "number",
            "description" : "Commission amount",
            "format" : "double",
            "example" : 5.0
          },
          "commissionPaid" : {
            "type" : "boolean",
            "description" : "Commission paid",
            "example" : false
          },
          "taxAmount" : {
            "type" : "number",
            "description" : "Tax amount",
            "format" : "double",
            "example" : 9.0
          },
          "taxRate" : {
            "type" : "string",
            "description" : "Tax rate",
            "example" : "18.0"
          },
          "warrantyPeriod" : {
            "type" : "string",
            "description" : "Warranty period",
            "example" : "1 Year"
          },
          "warrantyStartDate" : {
            "type" : "string",
            "description" : "Warranty start date",
            "format" : "date-time"
          },
          "warrantyEndDate" : {
            "type" : "string",
            "description" : "Warranty end date",
            "format" : "date-time"
          },
          "hasWarranty" : {
            "type" : "boolean",
            "description" : "Has warranty",
            "example" : true
          },
          "rating" : {
            "type" : "number",
            "description" : "Rating",
            "format" : "double",
            "example" : 4.5
          },
          "review" : {
            "type" : "string",
            "description" : "Review",
            "example" : "Great product!"
          },
          "isReviewed" : {
            "type" : "boolean",
            "description" : "Is reviewed",
            "example" : true
          },
          "isReturnable" : {
            "type" : "boolean",
            "description" : "Is returnable",
            "example" : true
          },
          "returnDeadline" : {
            "type" : "string",
            "description" : "Return deadline",
            "format" : "date-time"
          },
          "canBeReturned" : {
            "type" : "boolean",
            "description" : "Can be returned",
            "example" : true
          },
          "isGift" : {
            "type" : "boolean",
            "description" : "Is gift",
            "example" : false
          },
          "giftMessage" : {
            "type" : "string",
            "description" : "Gift message",
            "example" : "Happy Birthday!"
          },
          "isPromoItem" : {
            "type" : "boolean",
            "description" : "Is promotional item",
            "example" : false
          },
          "isFreeItem" : {
            "type" : "boolean",
            "description" : "Is free item",
            "example" : false
          },
          "isBonusItem" : {
            "type" : "boolean",
            "description" : "Is bonus item",
            "example" : false
          },
          "soldAt" : {
            "type" : "string",
            "description" : "Sold at",
            "format" : "date-time"
          },
          "confirmedAt" : {
            "type" : "string",
            "description" : "Confirmed at",
            "format" : "date-time"
          },
          "deliveredAt" : {
            "type" : "string",
            "description" : "Delivered at",
            "format" : "date-time"
          },
          "servicedAt" : {
            "type" : "string",
            "description" : "Serviced at",
            "format" : "date-time"
          },
          "createdAt" : {
            "type" : "string",
            "description" : "Created at",
            "format" : "date-time"
          },
          "updatedAt" : {
            "type" : "string",
            "description" : "Updated at",
            "format" : "date-time"
          },
          "formattedUnitPrice" : {
            "type" : "string",
            "description" : "Formatted unit price",
            "example" : "INR 50.00"
          },
          "formattedTotalPrice" : {
            "type" : "string",
            "description" : "Formatted total price",
            "example" : "INR 100.00"
          },
          "totalDiscount" : {
            "type" : "number",
            "description" : "Total discount",
            "format" : "double",
            "example" : 10.0
          },
          "subtotal" : {
            "type" : "number",
            "description" : "Subtotal",
            "format" : "double",
            "example" : 110.0
          },
          "hasDiscount" : {
            "type" : "boolean",
            "description" : "Has discount",
            "example" : true
          },
          "hasCommission" : {
            "type" : "boolean",
            "description" : "Has commission",
            "example" : true
          },
          "commissionDue" : {
            "type" : "number",
            "description" : "Commission due",
            "format" : "double",
            "example" : 5.0
          },
          "hasProfit" : {
            "type" : "boolean",
            "description" : "Has profit",
            "example" : true
          }
        },
        "description" : "Sale item response"
      },
      "SaleResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Sale ID",
            "example" : "sale123"
          },
          "saleNumber" : {
            "type" : "string",
            "description" : "Sale number",
            "example" : "SALE-202412-000001"
          },
          "customerId" : {
            "type" : "string",
            "description" : "Customer ID",
            "example" : "customer123"
          },
          "cityId" : {
            "type" : "string",
            "description" : "City ID",
            "example" : "city123"
          },
          "vendorId" : {
            "type" : "string",
            "description" : "Vendor ID",
            "example" : "vendor123"
          },
          "salesPersonId" : {
            "type" : "string",
            "description" : "Sales person ID",
            "example" : "salesperson123"
          },
          "salesPersonName" : {
            "type" : "string",
            "description" : "Sales person name",
            "example" : "John Doe"
          },
          "status" : {
            "type" : "string",
            "description" : "Sale status",
            "example" : "COMPLETED",
            "enum" : [ "PENDING", "CONFIRMED", "PROCESSING", "COMPLETED", "CANCELLED", "REFUNDED", "PARTIALLY_REFUNDED", "FAILED", "ON_HOLD" ]
          },
          "paymentStatus" : {
            "type" : "string",
            "description" : "Payment status",
            "example" : "COMPLETED",
            "enum" : [ "PENDING", "PROCESSING", "COMPLETED", "FAILED", "CANCELLED", "REFUNDED", "PARTIALLY_REFUNDED", "EXPIRED", "DISPUTED", "AUTHORIZED", "CAPTURED" ]
          },
          "paymentMethod" : {
            "type" : "string",
            "description" : "Payment method",
            "example" : "CARD"
          },
          "subtotal" : {
            "type" : "number",
            "description" : "Subtotal amount",
            "format" : "double",
            "example" : 100.0
          },
          "totalDiscount" : {
            "type" : "number",
            "description" : "Total discount",
            "format" : "double",
            "example" : 10.0
          },
          "taxAmount" : {
            "type" : "number",
            "description" : "Tax amount",
            "format" : "double",
            "example" : 9.0
          },
          "totalAmount" : {
            "type" : "number",
            "description" : "Total amount",
            "format" : "double",
            "example" : 99.0
          },
          "currency" : {
            "type" : "string",
            "description" : "Currency",
            "example" : "INR"
          },
          "totalItems" : {
            "type" : "integer",
            "description" : "Total items count",
            "format" : "int32",
            "example" : 3
          },
          "totalQuantity" : {
            "type" : "integer",
            "description" : "Total quantity",
            "format" : "int32",
            "example" : 5
          },
          "commissionAmount" : {
            "type" : "number",
            "description" : "Commission amount",
            "format" : "double",
            "example" : 5.0
          },
          "commissionRate" : {
            "type" : "number",
            "description" : "Commission rate",
            "format" : "double",
            "example" : 5.0
          },
          "commissionPaid" : {
            "type" : "boolean",
            "description" : "Is commission paid",
            "example" : false
          },
          "profitAmount" : {
            "type" : "number",
            "description" : "Profit amount",
            "format" : "double",
            "example" : 40.0
          },
          "profitMargin" : {
            "type" : "number",
            "description" : "Profit margin",
            "format" : "double",
            "example" : 40.4
          },
          "hasProductItems" : {
            "type" : "boolean",
            "description" : "Has product items",
            "example" : true
          },
          "hasServiceItems" : {
            "type" : "boolean",
            "description" : "Has service items",
            "example" : false
          },
          "saleTypeDisplay" : {
            "type" : "string",
            "description" : "Sale type display",
            "example" : "Product Sale"
          },
          "customerNotes" : {
            "type" : "string",
            "description" : "Customer notes",
            "example" : "Customer requested express delivery"
          },
          "internalNotes" : {
            "type" : "string",
            "description" : "Internal notes",
            "example" : "VIP customer"
          },
          "specialInstructions" : {
            "type" : "string",
            "description" : "Special instructions",
            "example" : "Handle with care"
          },
          "deliveryAddress" : {
            "type" : "string",
            "description" : "Delivery address",
            "example" : "123 Main St, City, State 12345"
          },
          "contactPhone" : {
            "type" : "string",
            "description" : "Contact phone",
            "example" : "+1234567890"
          },
          "contactEmail" : {
            "type" : "string",
            "description" : "Contact email",
            "example" : "customer@example.com"
          },
          "source" : {
            "type" : "string",
            "description" : "Sale source",
            "example" : "store"
          },
          "channel" : {
            "type" : "string",
            "description" : "Sales channel",
            "example" : "direct"
          },
          "couponCode" : {
            "type" : "string",
            "description" : "Coupon code",
            "example" : "SAVE10"
          },
          "discountType" : {
            "type" : "string",
            "description" : "Discount type",
            "example" : "PERCENTAGE"
          },
          "discountValue" : {
            "type" : "number",
            "description" : "Discount value",
            "format" : "double",
            "example" : 10.0
          },
          "invoiceNumber" : {
            "type" : "string",
            "description" : "Invoice number",
            "example" : "INV-2024-001"
          },
          "saleDate" : {
            "type" : "string",
            "description" : "Sale date",
            "format" : "date-time"
          },
          "confirmedAt" : {
            "type" : "string",
            "description" : "Confirmed at",
            "format" : "date-time"
          },
          "processedAt" : {
            "type" : "string",
            "description" : "Processed at",
            "format" : "date-time"
          },
          "completedAt" : {
            "type" : "string",
            "description" : "Completed at",
            "format" : "date-time"
          },
          "paymentDate" : {
            "type" : "string",
            "description" : "Payment date",
            "format" : "date-time"
          },
          "createdAt" : {
            "type" : "string",
            "description" : "Created at",
            "format" : "date-time"
          },
          "updatedAt" : {
            "type" : "string",
            "description" : "Updated at",
            "format" : "date-time"
          },
          "items" : {
            "type" : "array",
            "description" : "Sale items",
            "items" : {
              "$ref" : "#/components/schemas/SaleItemResponse"
            }
          },
          "isValid" : {
            "type" : "boolean",
            "description" : "Is sale valid",
            "example" : true
          },
          "validationErrors" : {
            "type" : "array",
            "description" : "Validation errors",
            "items" : {
              "type" : "string",
              "description" : "Validation errors"
            }
          },
          "canBeCancelled" : {
            "type" : "boolean",
            "description" : "Can be cancelled",
            "example" : false
          },
          "canBeReturned" : {
            "type" : "boolean",
            "description" : "Can be returned",
            "example" : true
          },
          "daysSinceSale" : {
            "type" : "integer",
            "description" : "Days since sale",
            "format" : "int64",
            "example" : 5
          },
          "formattedTotal" : {
            "type" : "string",
            "description" : "Formatted total",
            "example" : "INR 99.00"
          },
          "formattedSavings" : {
            "type" : "string",
            "description" : "Formatted savings",
            "example" : "INR 10.00"
          }
        },
        "description" : "Sale response"
      },
      "UpdateRevisitRequestRequest" : {
        "type" : "object",
        "properties" : {
          "reason" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "issueCategory" : {
            "type" : "string"
          },
          "priority" : {
            "type" : "string"
          },
          "urgencyLevel" : {
            "type" : "string"
          },
          "requestedDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "scheduledDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "scheduledStartTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "scheduledEndTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "timeSlot" : {
            "type" : "string"
          },
          "schedulingNotes" : {
            "type" : "string"
          },
          "assignedVendorId" : {
            "type" : "string"
          },
          "assignedVendorName" : {
            "type" : "string"
          },
          "preferOriginalVendor" : {
            "type" : "boolean"
          },
          "customerPhone" : {
            "pattern" : "^[+]?[0-9]{10,15}$",
            "type" : "string"
          },
          "customerEmail" : {
            "type" : "string"
          },
          "customerAddress" : {
            "type" : "string"
          },
          "contactPreference" : {
            "type" : "string"
          },
          "customerComments" : {
            "type" : "string"
          },
          "isWarrantyRevisit" : {
            "type" : "boolean"
          },
          "warrantyExpiry" : {
            "type" : "string",
            "format" : "date-time"
          },
          "warrantyTerms" : {
            "type" : "string"
          },
          "isEligible" : {
            "type" : "boolean"
          },
          "eligibilityReason" : {
            "type" : "string"
          },
          "resolutionPlan" : {
            "type" : "string"
          },
          "approvalNotes" : {
            "type" : "string"
          },
          "rejectionReason" : {
            "type" : "string"
          },
          "isChargeable" : {
            "type" : "boolean"
          },
          "estimatedCost" : {
            "type" : "number",
            "format" : "double"
          },
          "actualCost" : {
            "type" : "number",
            "format" : "double"
          },
          "costJustification" : {
            "type" : "string"
          },
          "billingNotes" : {
            "type" : "string"
          },
          "currency" : {
            "type" : "string"
          },
          "newVisitId" : {
            "type" : "string"
          },
          "serviceStarted" : {
            "type" : "string",
            "format" : "date-time"
          },
          "serviceCompleted" : {
            "type" : "string",
            "format" : "date-time"
          },
          "serviceNotes" : {
            "type" : "string"
          },
          "issueResolved" : {
            "type" : "boolean"
          },
          "resolutionDetails" : {
            "type" : "string"
          },
          "postRevisitRating" : {
            "type" : "number",
            "format" : "double"
          },
          "postRevisitFeedback" : {
            "type" : "string"
          },
          "customerSatisfied" : {
            "type" : "boolean"
          },
          "satisfactionNotes" : {
            "type" : "string"
          },
          "requiresEscalation" : {
            "type" : "boolean"
          },
          "escalationLevel" : {
            "type" : "string"
          },
          "escalatedTo" : {
            "type" : "string"
          },
          "escalationReason" : {
            "type" : "string"
          },
          "requiresManagerApproval" : {
            "type" : "boolean"
          },
          "assignedAgent" : {
            "type" : "string"
          },
          "processingNotes" : {
            "type" : "string"
          },
          "qualityCheckNotes" : {
            "type" : "string"
          },
          "requiresInvestigation" : {
            "type" : "boolean"
          },
          "investigationFindings" : {
            "type" : "string"
          },
          "impactsVendorRating" : {
            "type" : "boolean"
          },
          "vendorFaultLevel" : {
            "type" : "string"
          },
          "vendorPenalty" : {
            "type" : "string"
          },
          "vendorTrainingRequired" : {
            "type" : "string"
          },
          "businessImpact" : {
            "type" : "string"
          },
          "customerRetentionRisk" : {
            "type" : "string"
          },
          "brandImpact" : {
            "type" : "string"
          },
          "revenueImpact" : {
            "type" : "number",
            "format" : "double"
          },
          "responseDeadline" : {
            "type" : "string",
            "format" : "date-time"
          },
          "resolutionDeadline" : {
            "type" : "string",
            "format" : "date-time"
          },
          "requestExpiry" : {
            "type" : "string",
            "format" : "date-time"
          },
          "expiryReason" : {
            "type" : "string"
          },
          "issueComplexity" : {
            "type" : "string"
          },
          "resolutionTime" : {
            "type" : "integer",
            "format" : "int32"
          },
          "resolutionCategory" : {
            "type" : "string"
          },
          "rootCause" : {
            "type" : "string"
          },
          "preventiveMeasures" : {
            "type" : "string"
          }
        }
      },
      "ApiResponseRevisitRequestResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/RevisitRequestResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "RevisitRequestResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "requestNumber" : {
            "type" : "string"
          },
          "originalBookingId" : {
            "type" : "string"
          },
          "originalVisitId" : {
            "type" : "string"
          },
          "customerId" : {
            "type" : "string"
          },
          "serviceId" : {
            "type" : "string"
          },
          "cityId" : {
            "type" : "string"
          },
          "reason" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "issueCategory" : {
            "type" : "string"
          },
          "priority" : {
            "type" : "string"
          },
          "urgencyLevel" : {
            "type" : "string"
          },
          "priorityDisplay" : {
            "type" : "string"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "REQUESTED", "APPROVED", "REJECTED", "SCHEDULED", "ASSIGNED", "IN_PROGRESS", "COMPLETED", "CANCELLED", "EXPIRED", "PENDING_REVIEW" ]
          },
          "statusReason" : {
            "type" : "string"
          },
          "statusUpdatedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "statusUpdatedBy" : {
            "type" : "string"
          },
          "requestedDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "scheduledDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "scheduledStartTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "scheduledEndTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "timeSlot" : {
            "type" : "string"
          },
          "schedulingNotes" : {
            "type" : "string"
          },
          "assignedVendorId" : {
            "type" : "string"
          },
          "assignedVendorName" : {
            "type" : "string"
          },
          "vendorAssignedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "assignedBy" : {
            "type" : "string"
          },
          "preferOriginalVendor" : {
            "type" : "boolean"
          },
          "originalVendorId" : {
            "type" : "string"
          },
          "isWarrantyRevisit" : {
            "type" : "boolean"
          },
          "warrantyExpiry" : {
            "type" : "string",
            "format" : "date-time"
          },
          "warrantyTerms" : {
            "type" : "string"
          },
          "isEligible" : {
            "type" : "boolean"
          },
          "eligibilityReason" : {
            "type" : "string"
          },
          "eligibilityCheckedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "eligibilityCheckedBy" : {
            "type" : "string"
          },
          "isWithinWarranty" : {
            "type" : "boolean"
          },
          "isFreeRevisit" : {
            "type" : "boolean"
          },
          "isPaidRevisit" : {
            "type" : "boolean"
          },
          "issueImages" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "evidenceDocuments" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "videoUrl" : {
            "type" : "string"
          },
          "audioRecording" : {
            "type" : "string"
          },
          "witnessContacts" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "hasEvidence" : {
            "type" : "boolean"
          },
          "totalEvidenceCount" : {
            "type" : "integer",
            "format" : "int32"
          },
          "customerPhone" : {
            "type" : "string"
          },
          "customerEmail" : {
            "type" : "string"
          },
          "customerAddress" : {
            "type" : "string"
          },
          "contactPreference" : {
            "type" : "string"
          },
          "customerComments" : {
            "type" : "string"
          },
          "customerRating" : {
            "type" : "number",
            "format" : "double"
          },
          "resolutionPlan" : {
            "type" : "string"
          },
          "approvalNotes" : {
            "type" : "string"
          },
          "rejectionReason" : {
            "type" : "string"
          },
          "approvedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "approvedBy" : {
            "type" : "string"
          },
          "rejectedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "rejectedBy" : {
            "type" : "string"
          },
          "isChargeable" : {
            "type" : "boolean"
          },
          "estimatedCost" : {
            "type" : "number",
            "format" : "double"
          },
          "actualCost" : {
            "type" : "number",
            "format" : "double"
          },
          "costJustification" : {
            "type" : "string"
          },
          "billingNotes" : {
            "type" : "string"
          },
          "currency" : {
            "type" : "string"
          },
          "formattedCost" : {
            "type" : "string"
          },
          "newVisitId" : {
            "type" : "string"
          },
          "serviceStarted" : {
            "type" : "string",
            "format" : "date-time"
          },
          "serviceCompleted" : {
            "type" : "string",
            "format" : "date-time"
          },
          "serviceNotes" : {
            "type" : "string"
          },
          "issueResolved" : {
            "type" : "boolean"
          },
          "resolutionDetails" : {
            "type" : "string"
          },
          "postRevisitRating" : {
            "type" : "number",
            "format" : "double"
          },
          "postRevisitFeedback" : {
            "type" : "string"
          },
          "customerSatisfied" : {
            "type" : "boolean"
          },
          "satisfactionNotes" : {
            "type" : "string"
          },
          "feedbackDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "requiresEscalation" : {
            "type" : "boolean"
          },
          "escalationLevel" : {
            "type" : "string"
          },
          "escalatedTo" : {
            "type" : "string"
          },
          "escalatedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "escalationReason" : {
            "type" : "string"
          },
          "requiresManagerApproval" : {
            "type" : "boolean"
          },
          "needsEscalation" : {
            "type" : "boolean"
          },
          "needsManagerApproval" : {
            "type" : "boolean"
          },
          "communicationLog" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "customerNotified" : {
            "type" : "boolean"
          },
          "vendorNotified" : {
            "type" : "boolean"
          },
          "notificationHistory" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "lastCommunication" : {
            "type" : "string"
          },
          "lastCommunicationDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "assignedAgent" : {
            "type" : "string"
          },
          "processingNotes" : {
            "type" : "string"
          },
          "qualityCheckNotes" : {
            "type" : "string"
          },
          "requiresInvestigation" : {
            "type" : "boolean"
          },
          "investigationFindings" : {
            "type" : "string"
          },
          "investigationDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "impactsVendorRating" : {
            "type" : "boolean"
          },
          "vendorFaultLevel" : {
            "type" : "string"
          },
          "vendorPenalty" : {
            "type" : "string"
          },
          "vendorTrainingRequired" : {
            "type" : "string"
          },
          "businessImpact" : {
            "type" : "string"
          },
          "customerRetentionRisk" : {
            "type" : "string"
          },
          "brandImpact" : {
            "type" : "string"
          },
          "revenueImpact" : {
            "type" : "number",
            "format" : "double"
          },
          "requestExpiry" : {
            "type" : "string",
            "format" : "date-time"
          },
          "responseDeadline" : {
            "type" : "string",
            "format" : "date-time"
          },
          "resolutionDeadline" : {
            "type" : "string",
            "format" : "date-time"
          },
          "isExpired" : {
            "type" : "boolean"
          },
          "expiryReason" : {
            "type" : "string"
          },
          "isOverdue" : {
            "type" : "boolean"
          },
          "hoursUntilDeadline" : {
            "type" : "integer",
            "format" : "int64"
          },
          "issueComplexity" : {
            "type" : "string"
          },
          "resolutionTime" : {
            "type" : "integer",
            "format" : "int32"
          },
          "resolutionCategory" : {
            "type" : "string"
          },
          "rootCause" : {
            "type" : "string"
          },
          "preventiveMeasures" : {
            "type" : "string"
          },
          "daysSinceRequest" : {
            "type" : "integer",
            "format" : "int64"
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "updatedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "createdBy" : {
            "type" : "string"
          },
          "updatedBy" : {
            "type" : "string"
          },
          "isValid" : {
            "type" : "boolean"
          },
          "validationErrors" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "lastValidatedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "isApproved" : {
            "type" : "boolean"
          },
          "isRejected" : {
            "type" : "boolean"
          },
          "isCompleted" : {
            "type" : "boolean"
          },
          "isCancelled" : {
            "type" : "boolean"
          },
          "isScheduled" : {
            "type" : "boolean"
          },
          "isPending" : {
            "type" : "boolean"
          },
          "canBeApproved" : {
            "type" : "boolean"
          },
          "canBeRejected" : {
            "type" : "boolean"
          },
          "canBeScheduled" : {
            "type" : "boolean"
          },
          "canBeCancelled" : {
            "type" : "boolean"
          },
          "isUrgent" : {
            "type" : "boolean"
          },
          "isToday" : {
            "type" : "boolean"
          },
          "isTomorrow" : {
            "type" : "boolean"
          }
        }
      },
      "UpdateOrderRequest" : {
        "type" : "object",
        "properties" : {
          "deliveryAddress" : {
            "type" : "string"
          },
          "deliveryCity" : {
            "type" : "string"
          },
          "contactPhone" : {
            "type" : "string"
          },
          "contactEmail" : {
            "type" : "string"
          },
          "deliveryInstructions" : {
            "type" : "string"
          },
          "customerNotes" : {
            "type" : "string"
          },
          "preferredDeliveryDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "deliveryTimeSlot" : {
            "type" : "string"
          }
        }
      },
      "ApiResponseOrderResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/OrderResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "OrderResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "orderNumber" : {
            "type" : "string"
          },
          "customerId" : {
            "type" : "string"
          },
          "cityId" : {
            "type" : "string"
          },
          "vendorId" : {
            "type" : "string"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "PENDING", "CONFIRMED", "PROCESSING", "SHIPPED", "OUT_FOR_DELIVERY", "DELIVERED", "CANCELLED", "REFUNDED", "RETURNED", "FAILED", "ON_HOLD" ]
          },
          "paymentStatus" : {
            "type" : "string",
            "enum" : [ "PENDING", "PROCESSING", "COMPLETED", "FAILED", "CANCELLED", "REFUNDED", "PARTIALLY_REFUNDED", "EXPIRED", "DISPUTED", "AUTHORIZED", "CAPTURED" ]
          },
          "subtotal" : {
            "type" : "number",
            "format" : "double"
          },
          "totalDiscount" : {
            "type" : "number",
            "format" : "double"
          },
          "taxAmount" : {
            "type" : "number",
            "format" : "double"
          },
          "deliveryCharge" : {
            "type" : "number",
            "format" : "double"
          },
          "totalAmount" : {
            "type" : "number",
            "format" : "double"
          },
          "currency" : {
            "type" : "string"
          },
          "totalItems" : {
            "type" : "integer",
            "format" : "int32"
          },
          "totalQuantity" : {
            "type" : "integer",
            "format" : "int32"
          },
          "deliveryAddress" : {
            "type" : "string"
          },
          "contactPhone" : {
            "type" : "string"
          },
          "contactEmail" : {
            "type" : "string"
          },
          "paymentMethod" : {
            "type" : "string"
          },
          "trackingNumber" : {
            "type" : "string"
          },
          "shippingCarrier" : {
            "type" : "string"
          },
          "orderDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "estimatedDeliveryDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "deliveredAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "customerNotes" : {
            "type" : "string"
          },
          "hasProductItems" : {
            "type" : "boolean"
          },
          "hasServiceItems" : {
            "type" : "boolean"
          },
          "requiresShipping" : {
            "type" : "boolean"
          },
          "isValid" : {
            "type" : "boolean"
          },
          "validationErrors" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "updatedAt" : {
            "type" : "string",
            "format" : "date-time"
          }
        }
      },
      "UpdateOrderItemRequest" : {
        "type" : "object",
        "properties" : {
          "quantity" : {
            "type" : "integer",
            "format" : "int32"
          },
          "scheduledServiceDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "serviceAddress" : {
            "type" : "string"
          },
          "serviceInstructions" : {
            "type" : "string"
          }
        }
      },
      "ApiResponseOrderItemResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/OrderItemResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "OrderItemResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "orderId" : {
            "type" : "string"
          },
          "productId" : {
            "type" : "string"
          },
          "serviceId" : {
            "type" : "string"
          },
          "packageId" : {
            "type" : "string"
          },
          "customerId" : {
            "type" : "string"
          },
          "cityId" : {
            "type" : "string"
          },
          "vendorId" : {
            "type" : "string"
          },
          "quantity" : {
            "type" : "integer",
            "format" : "int32"
          },
          "unitPrice" : {
            "type" : "number",
            "format" : "double"
          },
          "totalPrice" : {
            "type" : "number",
            "format" : "double"
          },
          "currency" : {
            "type" : "string"
          },
          "itemType" : {
            "type" : "string"
          },
          "itemName" : {
            "type" : "string"
          },
          "itemDescription" : {
            "type" : "string"
          },
          "itemSku" : {
            "type" : "string"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "PENDING", "CONFIRMED", "PROCESSING", "PACKED", "SHIPPED", "OUT_FOR_DELIVERY", "DELIVERED", "CANCELLED", "REFUNDED", "RETURNED", "FAILED", "UNAVAILABLE", "BACKORDERED" ]
          },
          "scheduledServiceDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "serviceAddress" : {
            "type" : "string"
          },
          "trackingNumber" : {
            "type" : "string"
          },
          "deliveryType" : {
            "type" : "string"
          },
          "requiresShipping" : {
            "type" : "boolean"
          },
          "estimatedDeliveryDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "deliveredAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "updatedAt" : {
            "type" : "string",
            "format" : "date-time"
          }
        }
      },
      "ApiResponseMapStringObject" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ApiResponseString" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "string"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "CreateTypeRequest" : {
        "required" : [ "name" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "maxLength" : 100,
            "minLength" : 2,
            "type" : "string"
          },
          "slug" : {
            "maxLength" : 100,
            "minLength" : 0,
            "type" : "string"
          },
          "description" : {
            "maxLength" : 1000,
            "minLength" : 0,
            "type" : "string"
          },
          "cityId" : {
            "type" : "string"
          },
          "imageId" : {
            "type" : "string"
          },
          "imageUrl" : {
            "type" : "string"
          },
          "imageAlt" : {
            "maxLength" : 255,
            "minLength" : 0,
            "type" : "string"
          },
          "imageBase64" : {
            "type" : "string"
          },
          "backgroundColor" : {
            "maxLength" : 7,
            "minLength" : 0,
            "type" : "string"
          },
          "primaryColor" : {
            "maxLength" : 7,
            "minLength" : 0,
            "type" : "string"
          },
          "secondaryColor" : {
            "maxLength" : 7,
            "minLength" : 0,
            "type" : "string"
          },
          "iconClass" : {
            "maxLength" : 100,
            "minLength" : 0,
            "type" : "string"
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "isFeatured" : {
            "type" : "boolean"
          },
          "metaTitle" : {
            "maxLength" : 150,
            "minLength" : 0,
            "type" : "string"
          },
          "metaDescription" : {
            "maxLength" : 300,
            "minLength" : 0,
            "type" : "string"
          },
          "metaKeywords" : {
            "maxLength" : 500,
            "minLength" : 0,
            "type" : "string"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT" ]
          },
          "averageRating" : {
            "type" : "number",
            "format" : "double"
          },
          "totalReviews" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalCategories" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalServices" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalBookings" : {
            "type" : "integer",
            "format" : "int64"
          }
        },
        "description" : "Type creation request"
      },
      "CreatePackageRequest" : {
        "required" : [ "name", "serviceId", "slug" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "maxLength" : 200,
            "minLength" : 2,
            "type" : "string"
          },
          "slug" : {
            "pattern" : "^[a-z0-9-]+$",
            "type" : "string"
          },
          "shortDescription" : {
            "maxLength" : 500,
            "minLength" : 0,
            "type" : "string"
          },
          "fullDescription" : {
            "maxLength" : 10000,
            "minLength" : 0,
            "type" : "string"
          },
          "aboutThisServiceTitle" : {
            "maxLength" : 255,
            "minLength" : 0,
            "type" : "string"
          },
          "aboutThisServiceDescription" : {
            "type" : "string"
          },
          "frequentlyRebookedTitle" : {
            "type" : "string"
          },
          "frequentlyRebookedSubtitle" : {
            "type" : "string"
          },
          "frequentlyRebookedPackageIds" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "faqTitle" : {
            "type" : "string"
          },
          "faqs" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/FaqItem"
            }
          },
          "serviceId" : {
            "type" : "string"
          },
          "cityId" : {
            "type" : "string"
          },
          "imageId" : {
            "type" : "string"
          },
          "imageUrl" : {
            "type" : "string"
          },
          "imageAlt" : {
            "type" : "string"
          },
          "galleryImageIds" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "galleryImagesList" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PackageImage"
            }
          },
          "beforeImageId" : {
            "type" : "string"
          },
          "afterImageId" : {
            "type" : "string"
          },
          "parentId" : {
            "type" : "string"
          },
          "backgroundColor" : {
            "pattern" : "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
            "type" : "string"
          },
          "primaryColor" : {
            "pattern" : "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
            "type" : "string"
          },
          "secondaryColor" : {
            "pattern" : "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
            "type" : "string"
          },
          "gradientStart" : {
            "pattern" : "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
            "type" : "string"
          },
          "gradientEnd" : {
            "pattern" : "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
            "type" : "string"
          },
          "cardBackgroundColor" : {
            "pattern" : "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
            "type" : "string"
          },
          "badgeColor" : {
            "pattern" : "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
            "type" : "string"
          },
          "iconClass" : {
            "type" : "string"
          },
          "displayOrder" : {
            "minimum" : 0,
            "type" : "integer",
            "format" : "int32"
          },
          "isFeatured" : {
            "type" : "boolean"
          },
          "isPopular" : {
            "type" : "boolean"
          },
          "isBestValue" : {
            "type" : "boolean"
          },
          "isRecommended" : {
            "type" : "boolean"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT", "OUT_OF_STOCK", "DISCONTINUED" ]
          },
          "packageType" : {
            "type" : "string",
            "enum" : [ "BUNDLE", "LUXURY", "BASIC", "STANDARD", "PREMIUM", "DELUXE", "COMBO", "SUBSCRIPTION", "TRIAL", "CUSTOM", "SUB_PACKAGE" ]
          },
          "packageCode" : {
            "type" : "string"
          },
          "quantity" : {
            "minimum" : 1,
            "type" : "integer",
            "format" : "int32"
          },
          "quantityUnit" : {
            "type" : "string"
          },
          "originalPrice" : {
            "minimum" : 0.0,
            "exclusiveMinimum" : true,
            "type" : "number",
            "format" : "double"
          },
          "discountedPrice" : {
            "minimum" : 0.0,
            "exclusiveMinimum" : true,
            "type" : "number",
            "format" : "double"
          },
          "currency" : {
            "maxLength" : 3,
            "minLength" : 3,
            "type" : "string"
          },
          "estimatedDuration" : {
            "minimum" : 1,
            "type" : "integer",
            "format" : "int32"
          },
          "durationUnit" : {
            "type" : "string"
          },
          "validityDays" : {
            "minimum" : 1,
            "type" : "integer",
            "format" : "int32"
          },
          "inclusions" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "exclusions" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "keyHighlights" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "benefits" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "requirements" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "theClassyCoverEnabled" : {
            "type" : "boolean"
          },
          "theClassyCoverTitle" : {
            "type" : "string"
          },
          "theClassyCoverDescription" : {
            "type" : "string"
          },
          "warrantyDays" : {
            "minimum" : 0,
            "type" : "integer",
            "format" : "int32"
          },
          "warrantyTerms" : {
            "type" : "string"
          },
          "hasGuarantee" : {
            "type" : "boolean"
          },
          "guaranteeTerms" : {
            "type" : "string"
          },
          "availableAddons" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "allowCustomization" : {
            "type" : "boolean"
          },
          "customizationOptions" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "isCustomizable" : {
            "type" : "boolean"
          },
          "basePriceLocked" : {
            "type" : "boolean"
          },
          "customizationFee" : {
            "minimum" : 0.0,
            "exclusiveMinimum" : false,
            "type" : "number",
            "format" : "double"
          },
          "minCustomizationPrice" : {
            "minimum" : 0.0,
            "exclusiveMinimum" : false,
            "type" : "number",
            "format" : "double"
          },
          "maxCustomizationPrice" : {
            "minimum" : 0.0,
            "exclusiveMinimum" : false,
            "type" : "number",
            "format" : "double"
          },
          "requiresQuote" : {
            "type" : "boolean"
          },
          "bookingRequired" : {
            "type" : "boolean"
          },
          "advanceBookingHours" : {
            "minimum" : 0,
            "type" : "integer",
            "format" : "int32"
          },
          "maxBookingsPerDay" : {
            "minimum" : 1,
            "type" : "integer",
            "format" : "int32"
          },
          "isBookable" : {
            "type" : "boolean"
          },
          "isSeasonalPackage" : {
            "type" : "boolean"
          },
          "availableFrom" : {
            "type" : "string",
            "format" : "date-time"
          },
          "availableTo" : {
            "type" : "string",
            "format" : "date-time"
          },
          "availableDays" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "availableTimeSlots" : {
            "type" : "string"
          },
          "hasOffer" : {
            "type" : "boolean"
          },
          "offerText" : {
            "maxLength" : 100,
            "minLength" : 0,
            "type" : "string"
          },
          "badgeText" : {
            "maxLength" : 50,
            "minLength" : 0,
            "type" : "string"
          },
          "isLimitedTime" : {
            "type" : "boolean"
          },
          "offerExpiryDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "tags" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "keywords" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "metaTitle" : {
            "type" : "string"
          },
          "metaDescription" : {
            "type" : "string"
          },
          "metaKeywords" : {
            "type" : "string"
          },
          "minVendorsRequired" : {
            "minimum" : 0,
            "type" : "integer",
            "format" : "int32"
          },
          "certificationRequired" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "qualityStandards" : {
            "type" : "string"
          },
          "defaultSelections" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/DefaultSelectionRequest"
            }
          },
          "packageBuilderConfig" : {
            "$ref" : "#/components/schemas/PackageBuilderConfigRequest"
          }
        }
      },
      "ApiResponseListServicePackageResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ServicePackageResponse"
            }
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "CreatePackageOptionRequest" : {
        "required" : [ "optionGroupName", "optionType", "options", "packageId" ],
        "type" : "object",
        "properties" : {
          "packageId" : {
            "type" : "string"
          },
          "optionGroupName" : {
            "maxLength" : 200,
            "minLength" : 2,
            "type" : "string"
          },
          "optionGroupDescription" : {
            "maxLength" : 500,
            "minLength" : 0,
            "type" : "string"
          },
          "displayOrder" : {
            "minimum" : 0,
            "type" : "integer",
            "format" : "int32"
          },
          "isRequired" : {
            "type" : "boolean"
          },
          "isMultipleSelection" : {
            "type" : "boolean"
          },
          "minSelections" : {
            "minimum" : 0,
            "type" : "integer",
            "format" : "int32"
          },
          "maxSelections" : {
            "minimum" : 1,
            "type" : "integer",
            "format" : "int32"
          },
          "optionType" : {
            "type" : "string",
            "enum" : [ "SINGLE_CHOICE", "MULTIPLE_CHOICE", "QUANTITY", "ADD_ON", "TEXT_INPUT", "DROPDOWN", "RANGE_SLIDER", "DATE_PICKER", "TIME_PICKER" ]
          },
          "options" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OptionChoiceRequest"
            }
          },
          "conditionalLogic" : {
            "$ref" : "#/components/schemas/ConditionalLogicRequest"
          },
          "pricingLogic" : {
            "$ref" : "#/components/schemas/PricingLogicRequest"
          }
        }
      },
      "ApiResponsePackageOptionBulkImportResult" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/PackageOptionBulkImportResult"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ImportError" : {
        "type" : "object",
        "properties" : {
          "rowNumber" : {
            "type" : "integer",
            "format" : "int32"
          },
          "columnName" : {
            "type" : "string"
          },
          "value" : {
            "type" : "string"
          },
          "message" : {
            "type" : "string"
          }
        }
      },
      "PackageOptionBulkImportResult" : {
        "type" : "object",
        "properties" : {
          "dryRun" : {
            "type" : "boolean"
          },
          "totalRows" : {
            "type" : "integer",
            "format" : "int32"
          },
          "validRows" : {
            "type" : "integer",
            "format" : "int32"
          },
          "errorRows" : {
            "type" : "integer",
            "format" : "int32"
          },
          "groupsToCreate" : {
            "type" : "integer",
            "format" : "int32"
          },
          "groupsToUpdate" : {
            "type" : "integer",
            "format" : "int32"
          },
          "partsToCreate" : {
            "type" : "integer",
            "format" : "int32"
          },
          "partsToUpdate" : {
            "type" : "integer",
            "format" : "int32"
          },
          "errors" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ImportError"
            }
          }
        }
      },
      "ApiResponseVoid" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "object"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "CreateFAQRequest" : {
        "type" : "object",
        "properties" : {
          "question" : {
            "type" : "string"
          },
          "answer" : {
            "type" : "string"
          },
          "type" : {
            "type" : "string",
            "enum" : [ "CATEGORY", "SERVICE", "PACKAGE", "ORDERS", "TECHNICIAN", "GENERAL" ]
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "isActive" : {
            "type" : "boolean"
          }
        }
      },
      "CreateDepartmentRequest" : {
        "required" : [ "name" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Department name",
            "example" : "Service"
          },
          "isHidden" : {
            "type" : "boolean",
            "description" : "Whether the department is hidden from selection lists"
          }
        },
        "description" : "Department creation request"
      },
      "ApiResponseCityHomePage" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/CityHomePage"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "CityHomePage" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "cityId" : {
            "type" : "string"
          },
          "cityName" : {
            "type" : "string"
          },
          "sectionSettings" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          },
          "heroSection" : {
            "$ref" : "#/components/schemas/HeroSectionSettings"
          },
          "contactSection" : {
            "$ref" : "#/components/schemas/ContactSectionSettings"
          },
          "title" : {
            "type" : "string"
          },
          "seoMeta" : {
            "$ref" : "#/components/schemas/SeoMeta"
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "updatedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "active" : {
            "type" : "boolean"
          }
        }
      },
      "ContactSectionSettings" : {
        "type" : "object",
        "properties" : {
          "phoneNumber" : {
            "type" : "string"
          },
          "email" : {
            "type" : "string"
          },
          "whatsappNumber" : {
            "type" : "string"
          },
          "supportTiming" : {
            "type" : "string"
          }
        }
      },
      "HeroImage" : {
        "type" : "object",
        "properties" : {
          "url" : {
            "type" : "string"
          },
          "alt" : {
            "type" : "string"
          },
          "order" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "HeroSectionSettings" : {
        "type" : "object",
        "properties" : {
          "mainHeading" : {
            "type" : "string"
          },
          "subHeading" : {
            "type" : "string"
          },
          "searchPlaceholder" : {
            "type" : "string"
          },
          "heroImages" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/HeroImage"
            }
          },
          "videoUrl" : {
            "type" : "string"
          },
          "displayType" : {
            "type" : "string"
          }
        }
      },
      "SeoMeta" : {
        "type" : "object",
        "properties" : {
          "metaTitle" : {
            "type" : "string"
          },
          "metaDescription" : {
            "type" : "string"
          },
          "metaKeywords" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "canonicalUrl" : {
            "type" : "string"
          },
          "ogTitle" : {
            "type" : "string"
          },
          "ogDescription" : {
            "type" : "string"
          },
          "ogImage" : {
            "type" : "string"
          }
        }
      },
      "CreateCategoryRequest" : {
        "required" : [ "name", "typeId" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Category name",
            "example" : "AC Repair"
          },
          "description" : {
            "type" : "string",
            "description" : "Category description",
            "example" : "Professional AC repair and maintenance services"
          },
          "typeId" : {
            "type" : "string",
            "description" : "Business type ID this category belongs to",
            "example" : "507f1f77bcf86cd799439011"
          },
          "parentId" : {
            "type" : "string",
            "description" : "Parent category ID for hierarchical structure",
            "example" : "507f1f77bcf86cd799439012"
          },
          "departmentId" : {
            "type" : "string",
            "description" : "Department ID (required for sub-categories)",
            "example" : "507f1f77bcf86cd799439099"
          },
          "cityId" : {
            "type" : "string",
            "description" : "City ID for city-specific category creation",
            "example" : "507f1f77bcf86cd799439013"
          },
          "status" : {
            "type" : "string",
            "description" : "Category status",
            "example" : "ACTIVE",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT" ]
          },
          "featured" : {
            "type" : "boolean",
            "description" : "Whether this category is featured",
            "example" : false
          },
          "displayOrder" : {
            "type" : "integer",
            "description" : "Display order for sorting",
            "format" : "int32",
            "example" : 1
          },
          "backgroundColor" : {
            "type" : "string",
            "description" : "Background color in hex format",
            "example" : "#FFFFFF"
          },
          "primaryColor" : {
            "type" : "string",
            "description" : "Primary color in hex format",
            "example" : "#007BFF"
          },
          "secondaryColor" : {
            "type" : "string",
            "description" : "Secondary color in hex format",
            "example" : "#6C757D"
          },
          "gradientStart" : {
            "type" : "string",
            "description" : "Gradient start color in hex format",
            "example" : "#FF6B6B"
          },
          "gradientEnd" : {
            "type" : "string",
            "description" : "Gradient end color in hex format",
            "example" : "#4ECDC4"
          },
          "imageBase64" : {
            "type" : "string",
            "description" : "Base64 encoded image string"
          },
          "imageId" : {
            "type" : "string",
            "description" : "Image ID reference",
            "example" : "img_123456789"
          },
          "imageUrl" : {
            "type" : "string",
            "description" : "Image URL",
            "example" : "https://example.com/images/category.jpg"
          },
          "imageAlt" : {
            "type" : "string",
            "description" : "Image alt text",
            "example" : "AC Repair Services"
          },
          "shortDescription" : {
            "type" : "string",
            "description" : "Short description for previews",
            "example" : "Quick and reliable AC repair"
          },
          "benefits" : {
            "type" : "string",
            "description" : "Key benefits or features",
            "example" : "Same day service, 24/7 support, warranty included"
          },
          "priceRange" : {
            "type" : "string",
            "description" : "Price range description",
            "example" : "₹500 - ₹2000"
          },
          "metaTitle" : {
            "type" : "string",
            "description" : "SEO meta title",
            "example" : "Professional AC Repair Services"
          },
          "metaDescription" : {
            "type" : "string",
            "description" : "SEO meta description",
            "example" : "Get professional AC repair services with same day booking"
          },
          "keywords" : {
            "type" : "string",
            "description" : "SEO keywords",
            "example" : "ac repair, air conditioner, cooling, hvac"
          },
          "faqs" : {
            "type" : "array",
            "description" : "List of frequently asked questions",
            "items" : {
              "$ref" : "#/components/schemas/FAQItemRequest"
            }
          },
          "aboutSections" : {
            "type" : "array",
            "description" : "About sections for the category page",
            "items" : {
              "$ref" : "#/components/schemas/AboutSectionRequest"
            }
          },
          "aboutTitle" : {
            "type" : "string",
            "description" : "Main title for About/Content section",
            "example" : "The #1 Split AC - Indore"
          },
          "aboutSubtitle" : {
            "type" : "string",
            "description" : "Subtitle for About/Content section",
            "example" : "Platform in Your City"
          },
          "pricingSectionTitle" : {
            "type" : "string",
            "description" : "Title for pricing transparency section",
            "example" : "Transparent Rates for Spare Parts & Labor"
          },
          "pricingSectionDescription" : {
            "type" : "string",
            "description" : "Description for pricing transparency section",
            "example" : "We believe in honest pricing..."
          },
          "pricingTable" : {
            "type" : "array",
            "description" : "Pricing table categories and items",
            "items" : {
              "$ref" : "#/components/schemas/PricingCategoryRequest"
            }
          },
          "highlightPackageIds" : {
            "type" : "array",
            "description" : "List of Service IDs to highlight",
            "items" : {
              "type" : "string",
              "description" : "List of Service IDs to highlight"
            }
          },
          "media" : {
            "type" : "array",
            "description" : "Media gallery URLs",
            "items" : {
              "type" : "string",
              "description" : "Media gallery URLs"
            }
          },
          "popularLinks" : {
            "type" : "array",
            "description" : "Popular quick links",
            "items" : {
              "type" : "object",
              "additionalProperties" : {
                "type" : "string",
                "description" : "Popular quick links"
              },
              "description" : "Popular quick links"
            }
          },
          "rightCard" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "Right promo card config"
            },
            "description" : "Right promo card config"
          },
          "comparisonCard" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "Comparison card config"
            },
            "description" : "Comparison card config"
          },
          "customerReviewsSection" : {
            "$ref" : "#/components/schemas/CustomerReviewsSectionRequest"
          },
          "frequentlyRebookedSection" : {
            "$ref" : "#/components/schemas/FrequentlyRebookedSectionRequest"
          }
        },
        "description" : "Category creation request"
      },
      "ImageUploadResponse" : {
        "type" : "object",
        "properties" : {
          "categoryId" : {
            "type" : "string",
            "description" : "Category ID that the image was uploaded for",
            "example" : "507f1f77bcf86cd799439011"
          },
          "categoryName" : {
            "type" : "string",
            "description" : "Category name",
            "example" : "AC Repair"
          },
          "imageId" : {
            "type" : "string",
            "description" : "Generated image ID",
            "example" : "img_1695732456789"
          },
          "imageUrl" : {
            "type" : "string",
            "description" : "Image URL for access",
            "example" : "https://example.com/images/img_1695732456789.jpg"
          },
          "fileName" : {
            "type" : "string",
            "description" : "Original file name",
            "example" : "category-image.jpg"
          },
          "fileSize" : {
            "type" : "integer",
            "description" : "File size in bytes",
            "format" : "int64",
            "example" : 245760
          },
          "imageAlt" : {
            "type" : "string",
            "description" : "Image alternative text",
            "example" : "AC Repair service category image"
          },
          "mimeType" : {
            "type" : "string",
            "description" : "File MIME type",
            "example" : "image/jpeg"
          },
          "uploadedAt" : {
            "type" : "string",
            "description" : "Upload timestamp",
            "example" : "2025-09-16T10:30:45"
          }
        },
        "description" : "Image upload response"
      },
      "CreateBrandRequest" : {
        "required" : [ "name" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "slug" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "imageId" : {
            "type" : "string"
          },
          "imageUrl" : {
            "type" : "string"
          },
          "imageAlt" : {
            "type" : "string"
          },
          "imageBase64" : {
            "type" : "string"
          },
          "backgroundColor" : {
            "pattern" : "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
            "type" : "string"
          },
          "primaryColor" : {
            "pattern" : "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
            "type" : "string"
          },
          "secondaryColor" : {
            "pattern" : "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
            "type" : "string"
          },
          "gradientStart" : {
            "pattern" : "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
            "type" : "string"
          },
          "gradientEnd" : {
            "pattern" : "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
            "type" : "string"
          },
          "iconClass" : {
            "type" : "string"
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "isFeatured" : {
            "type" : "boolean"
          },
          "metaTitle" : {
            "type" : "string"
          },
          "metaDescription" : {
            "type" : "string"
          },
          "metaKeywords" : {
            "type" : "string"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DRAFT" ]
          },
          "websiteUrl" : {
            "type" : "string"
          },
          "contactEmail" : {
            "type" : "string"
          },
          "phoneNumber" : {
            "type" : "string"
          },
          "address" : {
            "type" : "string"
          },
          "foundedYear" : {
            "type" : "integer",
            "format" : "int32"
          }
        },
        "description" : "Brand creation request"
      },
      "CreateBlogPostRequest" : {
        "type" : "object",
        "properties" : {
          "title" : {
            "type" : "string"
          },
          "slug" : {
            "type" : "string"
          },
          "excerpt" : {
            "type" : "string"
          },
          "contentHtml" : {
            "type" : "string"
          },
          "coverImageUrl" : {
            "type" : "string"
          },
          "coverImageAlt" : {
            "type" : "string"
          },
          "category" : {
            "type" : "string"
          },
          "authorName" : {
            "type" : "string"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "DRAFT", "PUBLISHED", "ARCHIVED" ]
          },
          "publishedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "metaTitle" : {
            "type" : "string"
          },
          "metaDescription" : {
            "type" : "string"
          },
          "metaKeywords" : {
            "type" : "string"
          }
        }
      },
      "CreateBannerRequest" : {
        "required" : [ "position", "title" ],
        "type" : "object",
        "properties" : {
          "title" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "imageBase64" : {
            "type" : "string"
          },
          "imageId" : {
            "type" : "string"
          },
          "imageUrl" : {
            "type" : "string"
          },
          "imageAlt" : {
            "type" : "string"
          },
          "position" : {
            "type" : "string",
            "enum" : [ "HOME_HERO", "HOME_TOP", "HOME_MIDDLE", "HOME_BOTTOM", "SIDEBAR", "FOOTER", "CATEGORY_TOP", "SERVICE_TOP", "CHECKOUT_TOP", "POPUP", "FLOATING" ]
          },
          "bannerType" : {
            "type" : "string",
            "enum" : [ "IMAGE", "VIDEO", "CAROUSEL", "TEXT", "HTML", "PROMOTIONAL", "INFORMATIONAL", "SEASONAL", "FLASH_SALE" ]
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "redirectType" : {
            "type" : "string",
            "enum" : [ "NONE", "INTERNAL", "EXTERNAL", "SERVICE", "CATEGORY", "BRAND", "PACKAGE", "CUSTOM_PAGE" ]
          },
          "redirectUrl" : {
            "type" : "string"
          },
          "redirectPage" : {
            "type" : "string"
          },
          "buttonText" : {
            "type" : "string"
          },
          "buttonColor" : {
            "type" : "string"
          },
          "backgroundColor" : {
            "type" : "string"
          },
          "textColor" : {
            "type" : "string"
          },
          "showOnMobile" : {
            "type" : "boolean"
          },
          "showOnDesktop" : {
            "type" : "boolean"
          },
          "isFeatured" : {
            "type" : "boolean"
          },
          "priority" : {
            "type" : "integer",
            "format" : "int32"
          },
          "requiresAuth" : {
            "type" : "boolean"
          },
          "targetCities" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "startDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "endDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "DRAFT", "ACTIVE", "INACTIVE", "SCHEDULED", "EXPIRED", "DELETED" ]
          }
        },
        "description" : "Banner creation request"
      },
      "ApiResponseMapStringListBannerResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/components/schemas/BannerResponse"
              }
            }
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "CreateSectionRequest" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "title" : {
            "type" : "string"
          },
          "subtitle" : {
            "type" : "string"
          },
          "platform" : {
            "type" : "string"
          },
          "layoutType" : {
            "type" : "string"
          },
          "leftColumnWidth" : {
            "type" : "integer",
            "format" : "int32"
          },
          "rightColumnWidth" : {
            "type" : "integer",
            "format" : "int32"
          },
          "backgroundType" : {
            "type" : "string"
          },
          "backgroundColor" : {
            "type" : "string"
          },
          "backgroundImageUrl" : {
            "type" : "string"
          },
          "gradientColors" : {
            "type" : "string"
          },
          "isVisible" : {
            "type" : "boolean"
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "status" : {
            "type" : "string"
          },
          "leftContent" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SectionContent"
            }
          },
          "rightContent" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SectionContent"
            }
          }
        }
      },
      "CreateProductRequest" : {
        "required" : [ "categoryId", "name", "price", "sku" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Product name",
            "example" : "Samsung Galaxy S24"
          },
          "shortDescription" : {
            "type" : "string",
            "description" : "Short description for cards",
            "example" : "Latest flagship smartphone with AI features"
          },
          "fullDescription" : {
            "type" : "string",
            "description" : "Detailed product description",
            "example" : "The Samsung Galaxy S24 features advanced AI capabilities..."
          },
          "brandId" : {
            "type" : "string",
            "description" : "Brand ID",
            "example" : "507f1f77bcf86cd799439011"
          },
          "categoryId" : {
            "type" : "string",
            "description" : "Product category ID",
            "example" : "507f1f77bcf86cd799439012"
          },
          "sku" : {
            "type" : "string",
            "description" : "Stock Keeping Unit",
            "example" : "SAM-GAL-S24-128GB"
          },
          "barcode" : {
            "type" : "string",
            "description" : "Product barcode",
            "example" : "1234567890123"
          },
          "model" : {
            "type" : "string",
            "description" : "Product model number",
            "example" : "SM-S921B"
          },
          "price" : {
            "type" : "number",
            "description" : "Current selling price",
            "format" : "double",
            "example" : 79999.0
          },
          "originalPrice" : {
            "type" : "number",
            "description" : "Original/MRP price",
            "format" : "double",
            "example" : 89999.0
          },
          "costPrice" : {
            "type" : "number",
            "description" : "Cost price for margin calculation",
            "format" : "double",
            "example" : 65000.0
          },
          "currency" : {
            "type" : "string",
            "description" : "Currency code",
            "example" : "INR"
          },
          "discount" : {
            "type" : "number",
            "description" : "Discount amount",
            "format" : "double",
            "example" : 10000.0
          },
          "discountType" : {
            "type" : "string",
            "description" : "Discount type",
            "example" : "FIXED_AMOUNT"
          },
          "imageId" : {
            "type" : "string",
            "description" : "Primary image ID",
            "example" : "img_123456789"
          },
          "imageUrl" : {
            "type" : "string",
            "description" : "Primary image URL",
            "example" : "https://example.com/images/product.jpg"
          },
          "imageAlt" : {
            "type" : "string",
            "description" : "Image alt text",
            "example" : "Samsung Galaxy S24 Front View"
          },
          "galleryImageIds" : {
            "type" : "array",
            "description" : "Gallery image IDs",
            "items" : {
              "type" : "string",
              "description" : "Gallery image IDs"
            }
          },
          "galleryImageUrls" : {
            "type" : "array",
            "description" : "Gallery image URLs",
            "items" : {
              "type" : "string",
              "description" : "Gallery image URLs"
            }
          },
          "backgroundColor" : {
            "type" : "string",
            "description" : "Background color in hex format",
            "example" : "#FFFFFF"
          },
          "primaryColor" : {
            "type" : "string",
            "description" : "Primary color in hex format",
            "example" : "#007BFF"
          },
          "secondaryColor" : {
            "type" : "string",
            "description" : "Secondary color in hex format",
            "example" : "#6C757D"
          },
          "gradientStart" : {
            "type" : "string",
            "description" : "Gradient start color",
            "example" : "#FF6B6B"
          },
          "gradientEnd" : {
            "type" : "string",
            "description" : "Gradient end color",
            "example" : "#4ECDC4"
          },
          "iconClass" : {
            "type" : "string",
            "description" : "CSS icon class",
            "example" : "bx bx-mobile"
          },
          "displayOrder" : {
            "type" : "integer",
            "description" : "Display order for sorting",
            "format" : "int32",
            "example" : 1
          },
          "isFeatured" : {
            "type" : "boolean",
            "description" : "Whether this product is featured",
            "example" : false
          },
          "isPopular" : {
            "type" : "boolean",
            "description" : "Whether this product is popular",
            "example" : false
          },
          "showOnHomepage" : {
            "type" : "boolean",
            "description" : "Show on homepage",
            "example" : false
          },
          "isBestseller" : {
            "type" : "boolean",
            "description" : "Whether this product is bestseller",
            "example" : false
          },
          "isNewArrival" : {
            "type" : "boolean",
            "description" : "Whether this product is new arrival",
            "example" : true
          },
          "keyFeatures" : {
            "type" : "array",
            "description" : "Key product features",
            "items" : {
              "type" : "string",
              "description" : "Key product features"
            }
          },
          "specifications" : {
            "type" : "array",
            "description" : "Technical specifications",
            "items" : {
              "type" : "string",
              "description" : "Technical specifications"
            }
          },
          "inclusions" : {
            "type" : "array",
            "description" : "What's included in the box",
            "items" : {
              "type" : "string",
              "description" : "What's included in the box"
            }
          },
          "warranty" : {
            "type" : "string",
            "description" : "Warranty information",
            "example" : "1 year manufacturer warranty"
          },
          "returnPolicy" : {
            "type" : "string",
            "description" : "Return policy details",
            "example" : "7 days return policy"
          },
          "weight" : {
            "type" : "number",
            "description" : "Product weight in kg",
            "format" : "double",
            "example" : 0.168
          },
          "dimensions" : {
            "type" : "string",
            "description" : "Dimensions in L x W x H cm",
            "example" : "14.7 x 7.1 x 0.79"
          },
          "color" : {
            "type" : "string",
            "description" : "Primary color",
            "example" : "Phantom Black"
          },
          "availableColors" : {
            "type" : "array",
            "description" : "Available color variants",
            "items" : {
              "type" : "string",
              "description" : "Available color variants"
            }
          },
          "size" : {
            "type" : "string",
            "description" : "Size information",
            "example" : "128GB"
          },
          "availableSizes" : {
            "type" : "array",
            "description" : "Available sizes",
            "items" : {
              "type" : "string",
              "description" : "Available sizes"
            }
          },
          "stockQuantity" : {
            "type" : "integer",
            "description" : "Current stock quantity",
            "format" : "int32",
            "example" : 100
          },
          "minimumStock" : {
            "type" : "integer",
            "description" : "Minimum stock threshold",
            "format" : "int32",
            "example" : 10
          },
          "maximumStock" : {
            "type" : "integer",
            "description" : "Maximum stock capacity",
            "format" : "int32",
            "example" : 500
          },
          "trackInventory" : {
            "type" : "boolean",
            "description" : "Whether to track inventory",
            "example" : true
          },
          "allowBackorder" : {
            "type" : "boolean",
            "description" : "Allow orders when out of stock",
            "example" : false
          },
          "tags" : {
            "type" : "array",
            "description" : "Product tags for search and filtering",
            "items" : {
              "type" : "string",
              "description" : "Product tags for search and filtering"
            }
          },
          "keywords" : {
            "type" : "array",
            "description" : "SEO keywords",
            "items" : {
              "type" : "string",
              "description" : "SEO keywords"
            }
          },
          "categories" : {
            "type" : "array",
            "description" : "Additional category tags",
            "items" : {
              "type" : "string",
              "description" : "Additional category tags"
            }
          },
          "requiresShipping" : {
            "type" : "boolean",
            "description" : "Requires shipping",
            "example" : true
          },
          "shippingWeight" : {
            "type" : "number",
            "description" : "Shipping weight in kg",
            "format" : "double",
            "example" : 0.2
          },
          "isDigital" : {
            "type" : "boolean",
            "description" : "Is digital product",
            "example" : false
          },
          "isVirtual" : {
            "type" : "boolean",
            "description" : "Is virtual product",
            "example" : false
          },
          "taxable" : {
            "type" : "boolean",
            "description" : "Subject to tax",
            "example" : true
          },
          "taxClass" : {
            "type" : "string",
            "description" : "Tax classification",
            "example" : "ELECTRONICS"
          },
          "metaTitle" : {
            "type" : "string",
            "description" : "SEO meta title",
            "example" : "Samsung Galaxy S24 - Latest Flagship Smartphone"
          },
          "metaDescription" : {
            "type" : "string",
            "description" : "SEO meta description",
            "example" : "Buy Samsung Galaxy S24 with advanced AI features"
          },
          "metaKeywords" : {
            "type" : "string",
            "description" : "SEO meta keywords",
            "example" : "samsung, galaxy, s24, smartphone"
          },
          "canonicalUrl" : {
            "type" : "string",
            "description" : "Canonical URL",
            "example" : "/products/samsung-galaxy-s24"
          },
          "status" : {
            "type" : "string",
            "description" : "Product status",
            "example" : "ACTIVE",
            "enum" : [ "ACTIVE", "INACTIVE", "OUT_OF_STOCK", "DISCONTINUED", "DRAFT" ]
          },
          "hasOffer" : {
            "type" : "boolean",
            "description" : "Currently has offers",
            "example" : false
          },
          "offerText" : {
            "type" : "string",
            "description" : "Offer text",
            "example" : "20% OFF Limited Time"
          },
          "offerStartDate" : {
            "type" : "string",
            "description" : "Offer start date",
            "format" : "date-time"
          },
          "offerEndDate" : {
            "type" : "string",
            "description" : "Offer end date",
            "format" : "date-time"
          },
          "isOnSale" : {
            "type" : "boolean",
            "description" : "Currently on sale",
            "example" : false
          },
          "supplierId" : {
            "type" : "string",
            "description" : "Supplier/vendor ID",
            "example" : "supplier123"
          },
          "supplierSku" : {
            "type" : "string",
            "description" : "Supplier's SKU",
            "example" : "SUP-SAM-S24-001"
          },
          "leadTime" : {
            "type" : "integer",
            "description" : "Lead time in days",
            "format" : "int32",
            "example" : 3
          },
          "reorderLevel" : {
            "type" : "integer",
            "description" : "Reorder level",
            "format" : "int32",
            "example" : 20
          },
          "reorderQuantity" : {
            "type" : "integer",
            "description" : "Reorder quantity",
            "format" : "int32",
            "example" : 50
          },
          "relatedProductIds" : {
            "type" : "array",
            "description" : "Related product IDs",
            "items" : {
              "type" : "string",
              "description" : "Related product IDs"
            }
          },
          "crossSellProductIds" : {
            "type" : "array",
            "description" : "Cross-sell product IDs",
            "items" : {
              "type" : "string",
              "description" : "Cross-sell product IDs"
            }
          },
          "upsellProductIds" : {
            "type" : "array",
            "description" : "Upsell product IDs",
            "items" : {
              "type" : "string",
              "description" : "Upsell product IDs"
            }
          },
          "bundleProductIds" : {
            "type" : "array",
            "description" : "Bundle product IDs",
            "items" : {
              "type" : "string",
              "description" : "Bundle product IDs"
            }
          },
          "parentProductId" : {
            "type" : "string",
            "description" : "Parent product ID for variants"
          },
          "isVariant" : {
            "type" : "boolean",
            "description" : "Is this a variant of another product",
            "example" : false
          },
          "variantType" : {
            "type" : "string",
            "description" : "Variant type",
            "example" : "COLOR"
          }
        },
        "description" : "Product creation request"
      },
      "CreateProductCategoryRequest" : {
        "required" : [ "name" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Category name",
            "example" : "Smartphones"
          },
          "description" : {
            "type" : "string",
            "description" : "Category description",
            "example" : "Latest smartphones and mobile devices"
          },
          "parentId" : {
            "type" : "string",
            "description" : "Parent category ID for hierarchical structure",
            "example" : "507f1f77bcf86cd799439012"
          },
          "imageId" : {
            "type" : "string",
            "description" : "Primary image ID",
            "example" : "img_123456789"
          },
          "imageUrl" : {
            "type" : "string",
            "description" : "Primary image URL",
            "example" : "https://example.com/images/category.jpg"
          },
          "imageAlt" : {
            "type" : "string",
            "description" : "Image alt text",
            "example" : "Smartphones Category"
          },
          "bannerImageUrl" : {
            "type" : "string",
            "description" : "Banner image URL",
            "example" : "https://example.com/images/banner.jpg"
          },
          "iconImageUrl" : {
            "type" : "string",
            "description" : "Icon image URL",
            "example" : "https://example.com/images/icon.jpg"
          },
          "backgroundColor" : {
            "type" : "string",
            "description" : "Background color in hex format",
            "example" : "#FFFFFF"
          },
          "primaryColor" : {
            "type" : "string",
            "description" : "Primary color in hex format",
            "example" : "#007BFF"
          },
          "secondaryColor" : {
            "type" : "string",
            "description" : "Secondary color in hex format",
            "example" : "#6C757D"
          },
          "gradientStart" : {
            "type" : "string",
            "description" : "Gradient start color",
            "example" : "#FF6B6B"
          },
          "gradientEnd" : {
            "type" : "string",
            "description" : "Gradient end color",
            "example" : "#4ECDC4"
          },
          "iconClass" : {
            "type" : "string",
            "description" : "CSS icon class",
            "example" : "bx bx-mobile"
          },
          "displayOrder" : {
            "type" : "integer",
            "description" : "Display order for sorting",
            "format" : "int32",
            "example" : 1
          },
          "isFeatured" : {
            "type" : "boolean",
            "description" : "Whether this category is featured",
            "example" : false
          },
          "showOnHomepage" : {
            "type" : "boolean",
            "description" : "Show on homepage",
            "example" : false
          },
          "showInMenu" : {
            "type" : "boolean",
            "description" : "Show in navigation menu",
            "example" : true
          },
          "showInFooter" : {
            "type" : "boolean",
            "description" : "Show in footer links",
            "example" : false
          },
          "categoryType" : {
            "type" : "string",
            "description" : "Category type",
            "example" : "MAIN"
          },
          "maxLevel" : {
            "type" : "integer",
            "description" : "Maximum allowed sub-level depth",
            "format" : "int32",
            "example" : 3
          },
          "attributes" : {
            "type" : "array",
            "description" : "Category-specific attributes",
            "items" : {
              "type" : "string",
              "description" : "Category-specific attributes"
            }
          },
          "filterOptions" : {
            "type" : "array",
            "description" : "Available filter options",
            "items" : {
              "type" : "string",
              "description" : "Available filter options"
            }
          },
          "sortOptions" : {
            "type" : "string",
            "description" : "Default sort options",
            "example" : "price_asc,popularity,rating"
          },
          "allowProducts" : {
            "type" : "boolean",
            "description" : "Allow direct products in this category",
            "example" : true
          },
          "requiresApproval" : {
            "type" : "boolean",
            "description" : "Products need approval before listing",
            "example" : false
          },
          "commissionRate" : {
            "type" : "number",
            "description" : "Commission rate for products",
            "format" : "double",
            "example" : 5.0
          },
          "taxClass" : {
            "type" : "string",
            "description" : "Tax classification",
            "example" : "ELECTRONICS"
          },
          "metaTitle" : {
            "type" : "string",
            "description" : "SEO meta title",
            "example" : "Smartphones - Latest Mobile Devices"
          },
          "metaDescription" : {
            "type" : "string",
            "description" : "SEO meta description",
            "example" : "Shop latest smartphones with best prices"
          },
          "metaKeywords" : {
            "type" : "string",
            "description" : "SEO meta keywords",
            "example" : "smartphones, mobile, android, ios"
          },
          "canonicalUrl" : {
            "type" : "string",
            "description" : "Canonical URL",
            "example" : "/categories/smartphones"
          },
          "ogTitle" : {
            "type" : "string",
            "description" : "Open Graph title",
            "example" : "Best Smartphones Collection"
          },
          "ogDescription" : {
            "type" : "string",
            "description" : "Open Graph description",
            "example" : "Discover the latest smartphones"
          },
          "ogImage" : {
            "type" : "string",
            "description" : "Open Graph image",
            "example" : "https://example.com/og-image.jpg"
          },
          "status" : {
            "type" : "string",
            "description" : "Category status",
            "example" : "ACTIVE",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT" ]
          },
          "shortDescription" : {
            "type" : "string",
            "description" : "Short description for cards",
            "example" : "Latest mobile devices"
          },
          "benefits" : {
            "type" : "string",
            "description" : "Key benefits/features",
            "example" : "Fast delivery, warranty included"
          },
          "keyFeatures" : {
            "type" : "array",
            "description" : "Category highlights",
            "items" : {
              "type" : "string",
              "description" : "Category highlights"
            }
          },
          "headerContent" : {
            "type" : "string",
            "description" : "Header content for category page"
          },
          "footerContent" : {
            "type" : "string",
            "description" : "Footer content for category page"
          },
          "sidebarContent" : {
            "type" : "string",
            "description" : "Sidebar content"
          },
          "bannerImages" : {
            "type" : "array",
            "description" : "Multiple banner images",
            "items" : {
              "type" : "string",
              "description" : "Multiple banner images"
            }
          },
          "productsPerPage" : {
            "type" : "integer",
            "description" : "Products to show per page",
            "format" : "int32",
            "example" : 20
          },
          "defaultSortBy" : {
            "type" : "string",
            "description" : "Default sorting",
            "example" : "price_asc"
          },
          "enableFilters" : {
            "type" : "boolean",
            "description" : "Enable filtering for this category",
            "example" : true
          },
          "enableSearch" : {
            "type" : "boolean",
            "description" : "Enable search within category",
            "example" : true
          },
          "enableComparison" : {
            "type" : "boolean",
            "description" : "Enable product comparison",
            "example" : true
          },
          "isSeasonalCategory" : {
            "type" : "boolean",
            "description" : "Is seasonal category",
            "example" : false
          },
          "seasonStart" : {
            "type" : "string",
            "description" : "Season start date",
            "format" : "date-time"
          },
          "seasonEnd" : {
            "type" : "string",
            "description" : "Season end date",
            "format" : "date-time"
          },
          "promotionalText" : {
            "type" : "string",
            "description" : "Promotional text",
            "example" : "Special Diwali Offers"
          }
        },
        "description" : "Product category creation request"
      },
      "CreateInventoryRequest" : {
        "required" : [ "cityId", "productId", "stockQuantity" ],
        "type" : "object",
        "properties" : {
          "productId" : {
            "type" : "string",
            "description" : "Product ID",
            "example" : "507f1f77bcf86cd799439011"
          },
          "cityId" : {
            "type" : "string",
            "description" : "City ID",
            "example" : "507f1f77bcf86cd799439012"
          },
          "stockQuantity" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "Initial stock quantity",
            "format" : "int32",
            "example" : 100
          },
          "reservedQuantity" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "Reserved quantity",
            "format" : "int32",
            "example" : 10
          },
          "minimumStock" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "Minimum stock threshold",
            "format" : "int32",
            "example" : 20
          },
          "maximumStock" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "Maximum stock threshold",
            "format" : "int32",
            "example" : 500
          },
          "reorderLevel" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "Reorder level threshold",
            "format" : "int32",
            "example" : 30
          },
          "reorderQuantity" : {
            "minimum" : 1,
            "type" : "integer",
            "description" : "Reorder quantity",
            "format" : "int32",
            "example" : 50
          },
          "warehouseId" : {
            "type" : "string",
            "description" : "Warehouse ID",
            "example" : "WH001"
          },
          "warehouseLocation" : {
            "type" : "string",
            "description" : "Warehouse location",
            "example" : "Dhaka Main Warehouse"
          },
          "binLocation" : {
            "type" : "string",
            "description" : "Bin location within warehouse",
            "example" : "A-1-B-3"
          },
          "supplierReference" : {
            "type" : "string",
            "description" : "Supplier reference",
            "example" : "SUP-REF-001"
          },
          "unitCost" : {
            "minimum" : 0,
            "type" : "number",
            "description" : "Unit cost for inventory valuation",
            "format" : "double",
            "example" : 25.5
          },
          "leadTimeDays" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "Lead time in days",
            "format" : "int32",
            "example" : 7
          },
          "expectedRestockDate" : {
            "type" : "string",
            "description" : "Expected restock date",
            "format" : "date-time"
          },
          "lastSupplierOrderId" : {
            "type" : "string",
            "description" : "Last supplier order ID",
            "example" : "PO-2024-001"
          },
          "damagedQuantity" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "Damaged stock quantity",
            "format" : "int32",
            "example" : 2
          },
          "expiredQuantity" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "Expired stock quantity",
            "format" : "int32",
            "example" : 0
          },
          "expiryDate" : {
            "type" : "string",
            "description" : "Expiry date for perishable items",
            "format" : "date-time"
          },
          "qualityGrade" : {
            "type" : "string",
            "description" : "Quality grade (A, B, C)",
            "example" : "A"
          },
          "trackMovements" : {
            "type" : "boolean",
            "description" : "Whether to track stock movements",
            "example" : true
          },
          "enableAlerts" : {
            "type" : "boolean",
            "description" : "Whether alerts are enabled",
            "example" : true
          },
          "notes" : {
            "type" : "string",
            "description" : "Additional notes",
            "example" : "Initial stock setup"
          }
        },
        "description" : "Inventory creation request"
      },
      "StockReservationRequest" : {
        "required" : [ "cityId", "productId", "quantity", "reservationReference" ],
        "type" : "object",
        "properties" : {
          "productId" : {
            "type" : "string",
            "description" : "Product ID",
            "example" : "507f1f77bcf86cd799439011"
          },
          "cityId" : {
            "type" : "string",
            "description" : "City ID",
            "example" : "507f1f77bcf86cd799439012"
          },
          "quantity" : {
            "minimum" : 1,
            "type" : "integer",
            "description" : "Quantity to reserve",
            "format" : "int32",
            "example" : 5
          },
          "reservationReference" : {
            "type" : "string",
            "description" : "Reference for the reservation",
            "example" : "ORDER-2024-001"
          },
          "notes" : {
            "type" : "string",
            "description" : "Notes for the reservation",
            "example" : "Reserved for customer order"
          }
        },
        "description" : "Stock reservation request"
      },
      "BulkStockUpdateRequest" : {
        "required" : [ "stockUpdates" ],
        "type" : "object",
        "properties" : {
          "stockUpdates" : {
            "type" : "array",
            "description" : "List of stock updates",
            "items" : {
              "$ref" : "#/components/schemas/StockUpdateRequest"
            }
          },
          "notes" : {
            "type" : "string",
            "description" : "Notes for the bulk operation",
            "example" : "Monthly inventory adjustment"
          }
        },
        "description" : "Bulk stock update request"
      },
      "StockUpdateRequest" : {
        "required" : [ "cityId", "productId", "quantity" ],
        "type" : "object",
        "properties" : {
          "productId" : {
            "type" : "string",
            "description" : "Product ID",
            "example" : "507f1f77bcf86cd799439011"
          },
          "cityId" : {
            "type" : "string",
            "description" : "City ID",
            "example" : "507f1f77bcf86cd799439012"
          },
          "quantity" : {
            "type" : "integer",
            "description" : "Stock quantity (positive for add, negative for reduce)",
            "format" : "int32",
            "example" : 50
          },
          "movementType" : {
            "type" : "string",
            "description" : "Movement type",
            "example" : "PURCHASE",
            "enum" : [ "PURCHASE", "SALE", "ADJUSTMENT", "TRANSFER", "RETURN" ]
          },
          "reference" : {
            "type" : "string",
            "description" : "Reference for the movement",
            "example" : "PO-2024-001"
          },
          "notes" : {
            "type" : "string",
            "description" : "Notes for the stock update",
            "example" : "Stock replenishment"
          }
        },
        "description" : "Stock update request"
      },
      "AddServiceToCartRequest" : {
        "required" : [ "cityId", "preferredServiceDate", "serviceAddress", "serviceId" ],
        "type" : "object",
        "properties" : {
          "serviceId" : {
            "type" : "string",
            "description" : "Service ID to add to cart",
            "example" : "service123"
          },
          "packageId" : {
            "type" : "string",
            "description" : "Service package ID if booking a package",
            "example" : "package123"
          },
          "cityId" : {
            "type" : "string",
            "description" : "City ID for service availability",
            "example" : "city123"
          },
          "vendorId" : {
            "type" : "string",
            "description" : "Preferred vendor ID",
            "example" : "vendor123"
          },
          "preferredServiceDate" : {
            "type" : "string",
            "description" : "Preferred date for service",
            "format" : "date-time"
          },
          "serviceAddress" : {
            "type" : "string",
            "description" : "Address where service will be performed",
            "example" : "123 Main St, City"
          },
          "serviceInstructions" : {
            "type" : "string",
            "description" : "Special instructions for the service",
            "example" : "Call before arriving"
          },
          "selectedOptions" : {
            "type" : "array",
            "description" : "Selected package options",
            "example" : [ "option1", "option2" ],
            "items" : {
              "type" : "string",
              "description" : "Selected package options",
              "example" : "[\"option1\",\"option2\"]"
            }
          },
          "source" : {
            "type" : "string",
            "description" : "Source of addition",
            "example" : "search"
          },
          "campaign" : {
            "type" : "string",
            "description" : "Campaign reference",
            "example" : "service-promo-2024"
          }
        },
        "description" : "Service addition request"
      },
      "AddProductToCartRequest" : {
        "required" : [ "cityId", "productId", "quantity" ],
        "type" : "object",
        "properties" : {
          "productId" : {
            "type" : "string",
            "description" : "Product ID to add to cart",
            "example" : "507f1f77bcf86cd799439011"
          },
          "quantity" : {
            "minimum" : 1,
            "type" : "integer",
            "description" : "Quantity of the product",
            "format" : "int32",
            "example" : 2
          },
          "cityId" : {
            "type" : "string",
            "description" : "City ID for pricing context",
            "example" : "city123"
          },
          "selectedVariant" : {
            "type" : "string",
            "description" : "Selected product variant (color, size, etc.)",
            "example" : "Red-Large"
          },
          "selectedColor" : {
            "type" : "string",
            "description" : "Selected color",
            "example" : "Red"
          },
          "selectedSize" : {
            "type" : "string",
            "description" : "Selected size",
            "example" : "Large"
          },
          "notes" : {
            "type" : "string",
            "description" : "Special notes or customizations",
            "example" : "Gift wrap required"
          },
          "source" : {
            "type" : "string",
            "description" : "Source of addition (search, recommendation, etc.)",
            "example" : "search"
          },
          "campaign" : {
            "type" : "string",
            "description" : "Campaign reference",
            "example" : "summer-sale-2024"
          }
        },
        "description" : "Product addition request"
      },
      "ApplyCouponRequest" : {
        "required" : [ "couponCode" ],
        "type" : "object",
        "properties" : {
          "couponCode" : {
            "type" : "string",
            "description" : "Coupon code to apply",
            "example" : "SAVE20"
          }
        },
        "description" : "Coupon application request"
      },
      "CreateServiceVisitRequest" : {
        "required" : [ "bookingId", "customerId", "scheduledDate", "vendorId" ],
        "type" : "object",
        "properties" : {
          "bookingId" : {
            "type" : "string"
          },
          "vendorId" : {
            "type" : "string"
          },
          "customerId" : {
            "type" : "string"
          },
          "serviceId" : {
            "type" : "string"
          },
          "cityId" : {
            "type" : "string"
          },
          "scheduledDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "scheduledStartTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "scheduledEndTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "timeSlot" : {
            "type" : "string"
          },
          "vendorName" : {
            "type" : "string"
          },
          "vendorPhone" : {
            "type" : "string"
          },
          "workDescription" : {
            "type" : "string"
          },
          "workSummary" : {
            "type" : "string"
          },
          "tasksCompleted" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "tasksPending" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "materialsUsed" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "toolsUsed" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "materialsCost" : {
            "type" : "number",
            "format" : "double"
          },
          "materialsInvoice" : {
            "type" : "string"
          },
          "customerProvidedMaterials" : {
            "type" : "boolean"
          },
          "equipmentUsed" : {
            "type" : "string"
          },
          "technicalFindings" : {
            "type" : "string"
          },
          "troubleshootingSteps" : {
            "type" : "string"
          },
          "solutionApplied" : {
            "type" : "string"
          },
          "preventiveMeasures" : {
            "type" : "string"
          },
          "safetyProtocolsFollowed" : {
            "type" : "boolean"
          },
          "safetyNotes" : {
            "type" : "string"
          },
          "complianceChecked" : {
            "type" : "boolean"
          },
          "complianceNotes" : {
            "type" : "string"
          },
          "certifications" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "visitCharge" : {
            "type" : "number",
            "format" : "double"
          },
          "additionalCharges" : {
            "type" : "number",
            "format" : "double"
          },
          "discount" : {
            "type" : "number",
            "format" : "double"
          },
          "currency" : {
            "type" : "string"
          },
          "billingNotes" : {
            "type" : "string"
          },
          "weatherConditions" : {
            "type" : "string"
          },
          "trafficConditions" : {
            "type" : "string"
          },
          "accessibilityIssues" : {
            "type" : "string"
          },
          "externalFactors" : {
            "type" : "string"
          },
          "hasWarranty" : {
            "type" : "boolean"
          },
          "warrantyDays" : {
            "type" : "integer",
            "format" : "int32"
          },
          "warrantyTerms" : {
            "type" : "string"
          },
          "followUpRequired" : {
            "type" : "boolean"
          },
          "followUpDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "followUpInstructions" : {
            "type" : "string"
          },
          "gpsLocation" : {
            "type" : "string"
          },
          "distanceTraveled" : {
            "type" : "number",
            "format" : "double"
          },
          "routeTaken" : {
            "type" : "string"
          },
          "isCompleted" : {
            "type" : "boolean"
          },
          "completionPercentage" : {
            "type" : "number",
            "format" : "double"
          },
          "requiresRevisit" : {
            "type" : "boolean"
          },
          "revisitReason" : {
            "type" : "string"
          },
          "suggestedRevisitDate" : {
            "type" : "string",
            "format" : "date-time"
          }
        }
      },
      "CreateServiceBookingRequest" : {
        "required" : [ "address", "cityId", "contactName", "contactPhone", "customerId", "serviceId" ],
        "type" : "object",
        "properties" : {
          "customerId" : {
            "type" : "string"
          },
          "serviceId" : {
            "type" : "string"
          },
          "packageId" : {
            "type" : "string"
          },
          "cityId" : {
            "type" : "string"
          },
          "scheduledDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "scheduledTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "scheduledEndTime" : {
            "type" : "string",
            "format" : "date-time"
          },
          "timeSlot" : {
            "type" : "string"
          },
          "estimatedDuration" : {
            "type" : "integer",
            "format" : "int32"
          },
          "address" : {
            "type" : "string"
          },
          "addressLine1" : {
            "type" : "string"
          },
          "addressLine2" : {
            "type" : "string"
          },
          "landmark" : {
            "type" : "string"
          },
          "pincode" : {
            "type" : "string"
          },
          "contactPhone" : {
            "pattern" : "^[+]?[0-9]{10,15}$",
            "type" : "string"
          },
          "contactName" : {
            "type" : "string"
          },
          "alternatePhone" : {
            "pattern" : "^[+]?[0-9]{10,15}$",
            "type" : "string"
          },
          "preferredVendorId" : {
            "type" : "string"
          },
          "specialInstructions" : {
            "type" : "string"
          },
          "customerNotes" : {
            "type" : "string"
          },
          "serviceRequirements" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "equipmentNeeded" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "isUrgent" : {
            "type" : "boolean"
          },
          "isRecurring" : {
            "type" : "boolean"
          },
          "recurringPattern" : {
            "type" : "string"
          },
          "totalAmount" : {
            "type" : "number",
            "format" : "double"
          },
          "serviceCharge" : {
            "type" : "number",
            "format" : "double"
          },
          "additionalCharges" : {
            "type" : "number",
            "format" : "double"
          },
          "discount" : {
            "type" : "number",
            "format" : "double"
          },
          "currency" : {
            "type" : "string"
          },
          "paymentMethod" : {
            "type" : "string"
          },
          "source" : {
            "type" : "string"
          },
          "campaign" : {
            "type" : "string"
          },
          "referrer" : {
            "type" : "string"
          },
          "promoCode" : {
            "type" : "string"
          },
          "affiliateId" : {
            "type" : "string"
          },
          "hasWarranty" : {
            "type" : "boolean"
          },
          "warrantyDays" : {
            "type" : "integer",
            "format" : "int32"
          },
          "warrantyTerms" : {
            "type" : "string"
          },
          "requiresFollowUp" : {
            "type" : "boolean"
          },
          "followUpDate" : {
            "type" : "string",
            "format" : "date-time"
          }
        }
      },
      "CreateSaleRequest" : {
        "required" : [ "cityId", "customerId", "salesPersonId" ],
        "type" : "object",
        "properties" : {
          "customerId" : {
            "type" : "string",
            "description" : "Customer ID",
            "example" : "customer123"
          },
          "cityId" : {
            "type" : "string",
            "description" : "City ID where the sale is made",
            "example" : "city123"
          },
          "salesPersonId" : {
            "type" : "string",
            "description" : "Sales person ID",
            "example" : "salesperson123"
          },
          "customerNotes" : {
            "type" : "string",
            "description" : "Customer notes",
            "example" : "Customer requested express delivery"
          },
          "internalNotes" : {
            "type" : "string",
            "description" : "Internal notes",
            "example" : "VIP customer - priority handling"
          },
          "specialInstructions" : {
            "type" : "string",
            "description" : "Special instructions",
            "example" : "Handle with care"
          },
          "deliveryAddress" : {
            "type" : "string",
            "description" : "Delivery address",
            "example" : "123 Main St, City, State 12345"
          },
          "contactPhone" : {
            "type" : "string",
            "description" : "Contact phone",
            "example" : "+1234567890"
          },
          "contactEmail" : {
            "type" : "string",
            "description" : "Contact email",
            "example" : "customer@example.com"
          },
          "source" : {
            "type" : "string",
            "description" : "Sale source",
            "example" : "store",
            "enum" : [ "store", "online", "phone", "field" ]
          },
          "channel" : {
            "type" : "string",
            "description" : "Sales channel",
            "example" : "direct",
            "enum" : [ "direct", "partner", "affiliate" ]
          }
        },
        "description" : "Request to create a new sale"
      },
      "AddServiceToSaleRequest" : {
        "required" : [ "cityId", "serviceId" ],
        "type" : "object",
        "properties" : {
          "serviceId" : {
            "type" : "string",
            "description" : "Service ID",
            "example" : "service123"
          },
          "packageId" : {
            "type" : "string",
            "description" : "Package ID (if service is part of a package)",
            "example" : "package123"
          },
          "cityId" : {
            "type" : "string",
            "description" : "City ID for pricing context",
            "example" : "city123"
          },
          "unitPrice" : {
            "type" : "number",
            "description" : "Unit price (if different from default)",
            "format" : "double",
            "example" : 199.99
          },
          "unitCost" : {
            "type" : "number",
            "description" : "Unit cost (for profit calculation)",
            "format" : "double",
            "example" : 100.0
          },
          "scheduledServiceDate" : {
            "type" : "string",
            "description" : "Scheduled service date",
            "format" : "date-time"
          },
          "serviceAddress" : {
            "type" : "string",
            "description" : "Service address",
            "example" : "123 Service St, City, State 12345"
          },
          "serviceInstructions" : {
            "type" : "string",
            "description" : "Service instructions",
            "example" : "Call before arrival"
          },
          "vendorId" : {
            "type" : "string",
            "description" : "Vendor ID for this service",
            "example" : "vendor123"
          },
          "discountAmount" : {
            "type" : "number",
            "description" : "Discount amount",
            "format" : "double",
            "example" : 20.0
          },
          "discountType" : {
            "type" : "string",
            "description" : "Discount type",
            "example" : "PERCENTAGE",
            "enum" : [ "PERCENTAGE", "FIXED_AMOUNT" ]
          },
          "discountReason" : {
            "type" : "string",
            "description" : "Reason for discount",
            "example" : "First-time customer discount"
          },
          "notes" : {
            "type" : "string",
            "description" : "Special notes for this service",
            "example" : "Customer prefers morning slot"
          }
        },
        "description" : "Request to add a service to a sale"
      },
      "ApiResponseSaleItemResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/SaleItemResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "AddProductToSaleRequest" : {
        "required" : [ "cityId", "productId", "quantity" ],
        "type" : "object",
        "properties" : {
          "productId" : {
            "type" : "string",
            "description" : "Product ID",
            "example" : "product123"
          },
          "quantity" : {
            "type" : "integer",
            "description" : "Quantity of the product",
            "format" : "int32",
            "example" : 2
          },
          "cityId" : {
            "type" : "string",
            "description" : "City ID for pricing context",
            "example" : "city123"
          },
          "unitPrice" : {
            "type" : "number",
            "description" : "Unit price (if different from default)",
            "format" : "double",
            "example" : 99.99
          },
          "unitCost" : {
            "type" : "number",
            "description" : "Unit cost (for profit calculation)",
            "format" : "double",
            "example" : 50.0
          },
          "vendorId" : {
            "type" : "string",
            "description" : "Vendor ID for this item",
            "example" : "vendor123"
          },
          "discountAmount" : {
            "type" : "number",
            "description" : "Discount amount per unit",
            "format" : "double",
            "example" : 10.0
          },
          "discountType" : {
            "type" : "string",
            "description" : "Discount type",
            "example" : "FIXED_AMOUNT",
            "enum" : [ "PERCENTAGE", "FIXED_AMOUNT" ]
          },
          "discountReason" : {
            "type" : "string",
            "description" : "Reason for discount",
            "example" : "Bulk purchase discount"
          },
          "notes" : {
            "type" : "string",
            "description" : "Special notes for this item",
            "example" : "Customer requested specific color"
          }
        },
        "description" : "Request to add a product to a sale"
      },
      "ApplyDiscountRequest" : {
        "required" : [ "discountType", "discountValue" ],
        "type" : "object",
        "properties" : {
          "discountType" : {
            "type" : "string",
            "description" : "Discount type",
            "example" : "PERCENTAGE",
            "enum" : [ "PERCENTAGE", "FIXED_AMOUNT" ]
          },
          "discountValue" : {
            "type" : "number",
            "description" : "Discount value",
            "format" : "double",
            "example" : 10.0
          },
          "reason" : {
            "type" : "string",
            "description" : "Reason for discount",
            "example" : "Customer loyalty discount"
          },
          "couponCode" : {
            "type" : "string",
            "description" : "Coupon code (if applicable)",
            "example" : "SAVE10"
          }
        },
        "description" : "Request to apply discount to a sale"
      },
      "CreateRevisitRequestRequest" : {
        "required" : [ "customerId", "description", "originalBookingId", "reason" ],
        "type" : "object",
        "properties" : {
          "originalBookingId" : {
            "type" : "string"
          },
          "originalVisitId" : {
            "type" : "string"
          },
          "customerId" : {
            "type" : "string"
          },
          "serviceId" : {
            "type" : "string"
          },
          "cityId" : {
            "type" : "string"
          },
          "reason" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "issueCategory" : {
            "type" : "string"
          },
          "priority" : {
            "type" : "string"
          },
          "urgencyLevel" : {
            "type" : "string"
          },
          "requestedDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "timeSlot" : {
            "type" : "string"
          },
          "schedulingNotes" : {
            "type" : "string"
          },
          "preferOriginalVendor" : {
            "type" : "boolean"
          },
          "originalVendorId" : {
            "type" : "string"
          },
          "customerPhone" : {
            "pattern" : "^[+]?[0-9]{10,15}$",
            "type" : "string"
          },
          "customerEmail" : {
            "type" : "string"
          },
          "customerAddress" : {
            "type" : "string"
          },
          "contactPreference" : {
            "type" : "string"
          },
          "customerComments" : {
            "type" : "string"
          },
          "issueImages" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "evidenceDocuments" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "videoUrl" : {
            "type" : "string"
          },
          "audioRecording" : {
            "type" : "string"
          },
          "witnessContacts" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "isWarrantyRevisit" : {
            "type" : "boolean"
          },
          "warrantyExpiry" : {
            "type" : "string",
            "format" : "date-time"
          },
          "warrantyTerms" : {
            "type" : "string"
          },
          "isChargeable" : {
            "type" : "boolean"
          },
          "estimatedCost" : {
            "type" : "number",
            "format" : "double"
          },
          "costJustification" : {
            "type" : "string"
          },
          "currency" : {
            "type" : "string"
          },
          "businessImpact" : {
            "type" : "string"
          },
          "customerRetentionRisk" : {
            "type" : "string"
          },
          "brandImpact" : {
            "type" : "string"
          },
          "revenueImpact" : {
            "type" : "number",
            "format" : "double"
          },
          "requiresEscalation" : {
            "type" : "boolean"
          },
          "escalationLevel" : {
            "type" : "string"
          },
          "requiresManagerApproval" : {
            "type" : "boolean"
          },
          "requiresInvestigation" : {
            "type" : "boolean"
          },
          "responseDeadline" : {
            "type" : "string",
            "format" : "date-time"
          },
          "resolutionDeadline" : {
            "type" : "string",
            "format" : "date-time"
          },
          "requestExpiry" : {
            "type" : "string",
            "format" : "date-time"
          },
          "issueComplexity" : {
            "type" : "string"
          },
          "rootCause" : {
            "type" : "string"
          },
          "preventiveMeasures" : {
            "type" : "string"
          }
        }
      },
      "CreateOrderRequest" : {
        "required" : [ "cityId", "customerId" ],
        "type" : "object",
        "properties" : {
          "customerId" : {
            "type" : "string"
          },
          "cityId" : {
            "type" : "string"
          }
        }
      },
      "AddServiceToOrderRequest" : {
        "required" : [ "cityId", "serviceId" ],
        "type" : "object",
        "properties" : {
          "serviceId" : {
            "type" : "string"
          },
          "packageId" : {
            "type" : "string"
          },
          "cityId" : {
            "type" : "string"
          },
          "scheduledServiceDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "serviceAddress" : {
            "type" : "string"
          }
        }
      },
      "AddProductToOrderRequest" : {
        "required" : [ "cityId", "productId", "quantity" ],
        "type" : "object",
        "properties" : {
          "productId" : {
            "type" : "string"
          },
          "quantity" : {
            "type" : "integer",
            "format" : "int32"
          },
          "cityId" : {
            "type" : "string"
          }
        }
      },
      "ServiceStatusResponse" : {
        "type" : "object",
        "properties" : {
          "serviceId" : {
            "type" : "string"
          },
          "serviceName" : {
            "type" : "string"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT", "OUT_OF_STOCK", "SEASONAL" ]
          },
          "previousStatus" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT", "OUT_OF_STOCK", "SEASONAL" ]
          },
          "statusChangedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "statusChangedBy" : {
            "type" : "string"
          },
          "statusChangeReason" : {
            "type" : "string"
          }
        }
      },
      "TypeStatusResponse" : {
        "type" : "object",
        "properties" : {
          "typeId" : {
            "type" : "string"
          },
          "typeName" : {
            "type" : "string"
          },
          "previousStatus" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT" ]
          },
          "newStatus" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT" ]
          },
          "updatedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "updatedBy" : {
            "type" : "string"
          },
          "slug" : {
            "type" : "string"
          },
          "isFeatured" : {
            "type" : "boolean"
          }
        }
      },
      "TypeColorsResponse" : {
        "type" : "object",
        "properties" : {
          "typeId" : {
            "type" : "string",
            "description" : "Type ID",
            "example" : "507f1f77bcf86cd799439011"
          },
          "typeName" : {
            "type" : "string",
            "description" : "Type name",
            "example" : "Beauty & Wellness"
          },
          "backgroundColor" : {
            "type" : "string",
            "description" : "Background color (hex code)",
            "example" : "#FF5733"
          },
          "primaryColor" : {
            "type" : "string",
            "description" : "Primary color (hex code)",
            "example" : "#28A745"
          },
          "secondaryColor" : {
            "type" : "string",
            "description" : "Secondary color (hex code)",
            "example" : "#FFC107"
          },
          "previousBackgroundColor" : {
            "type" : "string",
            "description" : "Previous background color",
            "example" : "#FFFFFF"
          },
          "previousPrimaryColor" : {
            "type" : "string",
            "description" : "Previous primary color",
            "example" : "#000000"
          },
          "previousSecondaryColor" : {
            "type" : "string",
            "description" : "Previous secondary color",
            "example" : "#CCCCCC"
          },
          "updatedAt" : {
            "type" : "string",
            "description" : "Timestamp when colors were updated",
            "example" : "2025-09-16T10:30:45"
          },
          "updatedBy" : {
            "type" : "string",
            "description" : "User who updated the colors",
            "example" : "admin@theclassy.com"
          }
        },
        "description" : "Type colors update response"
      },
      "ApiResponseListPackageOption" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PackageOption"
            }
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "CategoryStatusResponse" : {
        "type" : "object",
        "properties" : {
          "categoryId" : {
            "type" : "string"
          },
          "categoryName" : {
            "type" : "string"
          },
          "previousStatus" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT" ]
          },
          "newStatus" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "DELETED", "DRAFT" ]
          },
          "updatedAt" : {
            "type" : "string",
            "format" : "date-time"
          },
          "updatedBy" : {
            "type" : "string"
          },
          "typeId" : {
            "type" : "string"
          },
          "parentId" : {
            "type" : "string"
          }
        }
      },
      "MoveCategoryResponse" : {
        "type" : "object",
        "properties" : {
          "categoryId" : {
            "type" : "string"
          },
          "categoryName" : {
            "type" : "string"
          },
          "previousParentId" : {
            "type" : "string"
          },
          "newParentId" : {
            "type" : "string"
          },
          "newParentName" : {
            "type" : "string"
          },
          "category" : {
            "$ref" : "#/components/schemas/CategoryResponse"
          },
          "typeId" : {
            "type" : "string"
          }
        }
      },
      "CategoryColorsResponse" : {
        "type" : "object",
        "properties" : {
          "categoryId" : {
            "type" : "string",
            "description" : "Category ID that colors were updated for",
            "example" : "507f1f77bcf86cd799439011"
          },
          "categoryName" : {
            "type" : "string",
            "description" : "Category name",
            "example" : "AC Repair"
          },
          "backgroundColor" : {
            "type" : "string",
            "description" : "Background color",
            "example" : "#F8F9FA"
          },
          "primaryColor" : {
            "type" : "string",
            "description" : "Primary color",
            "example" : "#007BFF"
          },
          "secondaryColor" : {
            "type" : "string",
            "description" : "Secondary color",
            "example" : "#6C757D"
          },
          "gradientStart" : {
            "type" : "string",
            "description" : "Gradient start color",
            "example" : "#007BFF"
          },
          "gradientEnd" : {
            "type" : "string",
            "description" : "Gradient end color",
            "example" : "#0056B3"
          },
          "category" : {
            "$ref" : "#/components/schemas/CategoryResponse"
          },
          "updatedAt" : {
            "type" : "string",
            "description" : "Updated timestamp",
            "example" : "2025-09-16T10:30:45"
          }
        },
        "description" : "Category colors update response"
      },
      "TypeStatsResponse" : {
        "type" : "object",
        "properties" : {
          "typeId" : {
            "type" : "string"
          },
          "typeName" : {
            "type" : "string"
          },
          "totalCategories" : {
            "type" : "integer",
            "format" : "int64"
          },
          "activeCategories" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalServices" : {
            "type" : "integer",
            "format" : "int64"
          },
          "activeServices" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalVendors" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalBookings" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalRevenue" : {
            "type" : "number",
            "format" : "double"
          },
          "averageBookingAmount" : {
            "type" : "number",
            "format" : "double"
          },
          "averageRating" : {
            "type" : "number",
            "format" : "double"
          },
          "totalReviews" : {
            "type" : "integer",
            "format" : "int64"
          },
          "conversionRate" : {
            "type" : "number",
            "format" : "double"
          },
          "growthRate" : {
            "type" : "number",
            "format" : "double"
          },
          "mostPopularCategory" : {
            "type" : "string"
          },
          "peakBookingHours" : {
            "type" : "string"
          },
          "avgServiceDuration" : {
            "type" : "string"
          },
          "satisfactionScore" : {
            "type" : "number",
            "format" : "double"
          },
          "calculatedAt" : {
            "type" : "string",
            "format" : "date-time"
          }
        }
      },
      "ApiResponsePagedResponseServicePackageResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/PagedResponseServicePackageResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "PagedResponseServicePackageResponse" : {
        "type" : "object",
        "properties" : {
          "content" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ServicePackageResponse"
            }
          },
          "currentPage" : {
            "type" : "integer",
            "format" : "int32"
          },
          "pageSize" : {
            "type" : "integer",
            "format" : "int32"
          },
          "totalElements" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalPages" : {
            "type" : "integer",
            "format" : "int32"
          },
          "first" : {
            "type" : "boolean"
          },
          "last" : {
            "type" : "boolean"
          },
          "hasNext" : {
            "type" : "boolean"
          },
          "hasPrevious" : {
            "type" : "boolean"
          },
          "numberOfElements" : {
            "type" : "integer",
            "format" : "int32"
          },
          "sort" : {
            "$ref" : "#/components/schemas/SortInfo"
          }
        }
      },
      "SortInfo" : {
        "type" : "object",
        "properties" : {
          "sorted" : {
            "type" : "boolean"
          },
          "direction" : {
            "type" : "string"
          },
          "property" : {
            "type" : "string"
          }
        }
      },
      "ApiResponseObject" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "object"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ApiResponsePagePartItemResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/PagePartItemResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "PagePartItemResponse" : {
        "type" : "object",
        "properties" : {
          "totalElements" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalPages" : {
            "type" : "integer",
            "format" : "int32"
          },
          "numberOfElements" : {
            "type" : "integer",
            "format" : "int32"
          },
          "last" : {
            "type" : "boolean"
          },
          "first" : {
            "type" : "boolean"
          },
          "pageable" : {
            "$ref" : "#/components/schemas/PageableObject"
          },
          "size" : {
            "type" : "integer",
            "format" : "int32"
          },
          "content" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PartItemResponse"
            }
          },
          "number" : {
            "type" : "integer",
            "format" : "int32"
          },
          "sort" : {
            "$ref" : "#/components/schemas/SortObject"
          },
          "empty" : {
            "type" : "boolean"
          }
        }
      },
      "PageableObject" : {
        "type" : "object",
        "properties" : {
          "unpaged" : {
            "type" : "boolean"
          },
          "paged" : {
            "type" : "boolean"
          },
          "pageNumber" : {
            "type" : "integer",
            "format" : "int32"
          },
          "pageSize" : {
            "type" : "integer",
            "format" : "int32"
          },
          "offset" : {
            "type" : "integer",
            "format" : "int64"
          },
          "sort" : {
            "$ref" : "#/components/schemas/SortObject"
          }
        }
      },
      "SortObject" : {
        "type" : "object",
        "properties" : {
          "unsorted" : {
            "type" : "boolean"
          },
          "sorted" : {
            "type" : "boolean"
          },
          "empty" : {
            "type" : "boolean"
          }
        }
      },
      "Pageable" : {
        "type" : "object",
        "properties" : {
          "page" : {
            "minimum" : 0,
            "type" : "integer",
            "format" : "int32"
          },
          "size" : {
            "minimum" : 1,
            "type" : "integer",
            "format" : "int32"
          },
          "sort" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "ApiResponsePageFAQResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/PageFAQResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "PageFAQResponse" : {
        "type" : "object",
        "properties" : {
          "totalElements" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalPages" : {
            "type" : "integer",
            "format" : "int32"
          },
          "numberOfElements" : {
            "type" : "integer",
            "format" : "int32"
          },
          "last" : {
            "type" : "boolean"
          },
          "first" : {
            "type" : "boolean"
          },
          "pageable" : {
            "$ref" : "#/components/schemas/PageableObject"
          },
          "size" : {
            "type" : "integer",
            "format" : "int32"
          },
          "content" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/FAQResponse"
            }
          },
          "number" : {
            "type" : "integer",
            "format" : "int32"
          },
          "sort" : {
            "$ref" : "#/components/schemas/SortObject"
          },
          "empty" : {
            "type" : "boolean"
          }
        }
      },
      "ApiResponseListFAQResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/FAQResponse"
            }
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ApiResponseListDepartmentResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/DepartmentResponse"
            }
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "CategoryStatsResponse" : {
        "type" : "object",
        "properties" : {
          "categoryId" : {
            "type" : "string",
            "description" : "Category ID",
            "example" : "507f1f77bcf86cd799439011"
          },
          "categoryName" : {
            "type" : "string",
            "description" : "Category name",
            "example" : "AC Repair"
          },
          "totalServices" : {
            "type" : "integer",
            "description" : "Total services under this category",
            "format" : "int64",
            "example" : 25
          },
          "totalBookings" : {
            "type" : "integer",
            "description" : "Total bookings",
            "format" : "int64",
            "example" : 150
          },
          "totalVendors" : {
            "type" : "integer",
            "description" : "Total vendors",
            "format" : "int64",
            "example" : 10
          },
          "averageRating" : {
            "type" : "number",
            "description" : "Average rating",
            "format" : "double",
            "example" : 4.5
          },
          "totalReviews" : {
            "type" : "integer",
            "description" : "Total reviews",
            "format" : "int64",
            "example" : 75
          },
          "averagePrice" : {
            "type" : "number",
            "description" : "Average price",
            "format" : "double",
            "example" : 1250.0
          },
          "subcategoryCount" : {
            "type" : "integer",
            "description" : "Number of subcategories",
            "format" : "int64",
            "example" : 3
          },
          "totalRevenue" : {
            "type" : "number",
            "description" : "Revenue generated",
            "format" : "double",
            "example" : 50000.0
          },
          "conversionRate" : {
            "type" : "number",
            "description" : "Booking conversion rate",
            "format" : "double",
            "example" : 0.85
          },
          "popularService" : {
            "type" : "string",
            "description" : "Most popular service",
            "example" : "AC Installation"
          },
          "peakHours" : {
            "type" : "string",
            "description" : "Peak booking hours",
            "example" : "10:00-12:00"
          }
        },
        "description" : "Category statistics response"
      },
      "ApiResponseListPricingCategoryResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PricingCategoryResponse"
            }
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ApiResponseCategoryImageDiagnosticResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/CategoryImageDiagnosticResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "CategoryImageDiagnosticResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Category ID",
            "example" : "69bf0f6f12300c230d2d3c26"
          },
          "name" : {
            "type" : "string",
            "description" : "Category name",
            "example" : "Electrician - Indore"
          },
          "storedImageId" : {
            "type" : "string",
            "description" : "Stored image ID in the database",
            "example" : "categories/2b0a8ff5-54bb-4df7-9918-74edd5f6a594.webp"
          },
          "storedImageUrl" : {
            "type" : "string",
            "description" : "Stored raw image URL as found on the entity",
            "example" : "categories/2b0a8ff5-54bb-4df7-9918-74edd5f6a594.webp"
          },
          "normalizedImageUrl" : {
            "type" : "string",
            "description" : "Normalized public image URL after host normalization",
            "example" : "https://api.theclassy.in/api/v1/common/storage/view/categories/2b0a8ff5-54bb-4df7-9918-74edd5f6a594.webp"
          },
          "publicApiImageUrl" : {
            "type" : "string",
            "description" : "Image URL that the public category response would expose",
            "example" : "https://api.theclassy.in/api/v1/common/storage/view/categories/2b0a8ff5-54bb-4df7-9918-74edd5f6a594.webp"
          },
          "imageAlt" : {
            "type" : "string",
            "description" : "Stored image alt text"
          },
          "storedMediaUrls" : {
            "type" : "array",
            "description" : "Stored media gallery URLs",
            "items" : {
              "type" : "string",
              "description" : "Stored media gallery URLs"
            }
          },
          "normalizedMediaUrls" : {
            "type" : "array",
            "description" : "Normalized media gallery URLs",
            "items" : {
              "type" : "string",
              "description" : "Normalized media gallery URLs"
            }
          },
          "sourceOfTruth" : {
            "type" : "string",
            "description" : "Source-of-truth field used by category APIs",
            "example" : "imageUrl"
          },
          "alreadyNormalized" : {
            "type" : "boolean",
            "description" : "Whether stored and normalized URLs are identical"
          }
        },
        "description" : "Diagnostic response for category image source-of-truth and normalization"
      },
      "ApiResponsePageBlogPostResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/PageBlogPostResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "PageBlogPostResponse" : {
        "type" : "object",
        "properties" : {
          "totalElements" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalPages" : {
            "type" : "integer",
            "format" : "int32"
          },
          "numberOfElements" : {
            "type" : "integer",
            "format" : "int32"
          },
          "last" : {
            "type" : "boolean"
          },
          "first" : {
            "type" : "boolean"
          },
          "pageable" : {
            "$ref" : "#/components/schemas/PageableObject"
          },
          "size" : {
            "type" : "integer",
            "format" : "int32"
          },
          "content" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/BlogPostResponse"
            }
          },
          "number" : {
            "type" : "integer",
            "format" : "int32"
          },
          "sort" : {
            "$ref" : "#/components/schemas/SortObject"
          },
          "empty" : {
            "type" : "boolean"
          }
        }
      },
      "ApiResponseListBannerResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/BannerResponse"
            }
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ApiResponsePageSection" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/PageSection"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "PageSection" : {
        "type" : "object",
        "properties" : {
          "totalElements" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalPages" : {
            "type" : "integer",
            "format" : "int32"
          },
          "numberOfElements" : {
            "type" : "integer",
            "format" : "int32"
          },
          "last" : {
            "type" : "boolean"
          },
          "first" : {
            "type" : "boolean"
          },
          "pageable" : {
            "$ref" : "#/components/schemas/PageableObject"
          },
          "size" : {
            "type" : "integer",
            "format" : "int32"
          },
          "content" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Section"
            }
          },
          "number" : {
            "type" : "integer",
            "format" : "int32"
          },
          "sort" : {
            "$ref" : "#/components/schemas/SortObject"
          },
          "empty" : {
            "type" : "boolean"
          }
        }
      },
      "ApiResponsePagePublicTypeResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/PagePublicTypeResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "PagePublicTypeResponse" : {
        "type" : "object",
        "properties" : {
          "totalElements" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalPages" : {
            "type" : "integer",
            "format" : "int32"
          },
          "numberOfElements" : {
            "type" : "integer",
            "format" : "int32"
          },
          "last" : {
            "type" : "boolean"
          },
          "first" : {
            "type" : "boolean"
          },
          "pageable" : {
            "$ref" : "#/components/schemas/PageableObject"
          },
          "size" : {
            "type" : "integer",
            "format" : "int32"
          },
          "content" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PublicTypeResponse"
            }
          },
          "number" : {
            "type" : "integer",
            "format" : "int32"
          },
          "sort" : {
            "$ref" : "#/components/schemas/SortObject"
          },
          "empty" : {
            "type" : "boolean"
          }
        }
      },
      "PublicTypeResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Type ID",
            "example" : "60f7b3b3b3b3b3b3b3b3b3b3"
          },
          "name" : {
            "type" : "string",
            "description" : "Type name",
            "example" : "AC & Appliance Repair"
          },
          "slug" : {
            "type" : "string",
            "description" : "URL-friendly slug",
            "example" : "ac-appliance-repair"
          },
          "description" : {
            "type" : "string",
            "description" : "Type description",
            "example" : "Expert AC and appliance repair services"
          },
          "imageUrl" : {
            "type" : "string",
            "description" : "Image URL",
            "example" : "https://example.com/images/ac-repair.jpg"
          },
          "imageAlt" : {
            "type" : "string",
            "description" : "Image alt text",
            "example" : "AC Repair Service"
          },
          "backgroundColor" : {
            "type" : "string",
            "description" : "Background color (hex code)",
            "example" : "#FF5733"
          },
          "primaryColor" : {
            "type" : "string",
            "description" : "Primary color (hex code)",
            "example" : "#28A745"
          },
          "secondaryColor" : {
            "type" : "string",
            "description" : "Secondary color (hex code)",
            "example" : "#FFC107"
          },
          "iconClass" : {
            "type" : "string",
            "description" : "Icon CSS class",
            "example" : "bx bx-wrench"
          },
          "displayOrder" : {
            "type" : "integer",
            "description" : "Display order",
            "format" : "int32",
            "example" : 1
          },
          "isFeatured" : {
            "type" : "boolean",
            "description" : "Is featured type",
            "example" : true
          },
          "totalCategories" : {
            "type" : "integer",
            "description" : "Total categories under this type",
            "format" : "int64",
            "example" : 15
          },
          "totalServices" : {
            "type" : "integer",
            "description" : "Total services available",
            "format" : "int64",
            "example" : 120
          },
          "averageRating" : {
            "type" : "number",
            "description" : "Average rating",
            "format" : "double",
            "example" : 4.5
          },
          "totalReviews" : {
            "type" : "integer",
            "description" : "Total reviews",
            "format" : "int64",
            "example" : 250
          },
          "cityId" : {
            "type" : "string",
            "description" : "City ID for city-specific types",
            "example" : "60f7b3b3b3b3b3b3b3b3b3b3"
          }
        },
        "description" : "Public service type response with display information"
      },
      "ApiResponseRecommendationResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/RecommendationResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "PricingCategory" : {
        "type" : "object",
        "properties" : {
          "packageId" : {
            "type" : "string"
          },
          "packageOptionId" : {
            "type" : "string"
          },
          "category" : {
            "type" : "string"
          },
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PricingItem"
            }
          }
        },
        "description" : "Pricing table inherited from category"
      },
      "PricingItem" : {
        "type" : "object",
        "properties" : {
          "packageId" : {
            "type" : "string"
          },
          "packageOptionId" : {
            "type" : "string"
          },
          "packageOptionItemId" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "price" : {
            "type" : "string"
          }
        }
      },
      "PublicProductResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Product ID",
            "example" : "60f7b3b3b3b3b3b3b3b3b3b3"
          },
          "name" : {
            "type" : "string",
            "description" : "Product name",
            "example" : "Dell Inspiron 15 3000 Laptop"
          },
          "slug" : {
            "type" : "string",
            "description" : "URL-friendly slug",
            "example" : "dell-inspiron-15-3000-laptop"
          },
          "shortDescription" : {
            "type" : "string",
            "description" : "Short description",
            "example" : "15.6-inch laptop with Intel Core i3 processor"
          },
          "fullDescription" : {
            "type" : "string",
            "description" : "Full description",
            "example" : "Dell Inspiron 15 3000 series laptop with 15.6-inch HD display..."
          },
          "brandId" : {
            "type" : "string",
            "description" : "Brand ID",
            "example" : "60f7b3b3b3b3b3b3b3b3b3b2"
          },
          "categoryId" : {
            "type" : "string",
            "description" : "Category ID",
            "example" : "60f7b3b3b3b3b3b3b3b3b3b1"
          },
          "sku" : {
            "type" : "string",
            "description" : "Product SKU",
            "example" : "DELL-INS-15-3000"
          },
          "model" : {
            "type" : "string",
            "description" : "Product model",
            "example" : "Inspiron 15 3000"
          },
          "price" : {
            "type" : "number",
            "description" : "Current selling price",
            "format" : "double",
            "example" : 45000.0
          },
          "originalPrice" : {
            "type" : "number",
            "description" : "Original/MRP price",
            "format" : "double",
            "example" : 50000.0
          },
          "currency" : {
            "type" : "string",
            "description" : "Currency",
            "example" : "INR"
          },
          "discount" : {
            "type" : "number",
            "description" : "Discount amount",
            "format" : "double",
            "example" : 5000.0
          },
          "discountType" : {
            "type" : "string",
            "description" : "Discount type",
            "example" : "FIXED_AMOUNT"
          },
          "discountPercentage" : {
            "type" : "number",
            "description" : "Discount percentage",
            "format" : "double",
            "example" : 10.0
          },
          "formattedPrice" : {
            "type" : "string",
            "description" : "Formatted price",
            "example" : "₹45,000"
          },
          "formattedOriginalPrice" : {
            "type" : "string",
            "description" : "Formatted original price",
            "example" : "₹50,000"
          },
          "imageUrl" : {
            "type" : "string",
            "description" : "Main product image URL",
            "example" : "https://example.com/images/dell-laptop.jpg"
          },
          "imageAlt" : {
            "type" : "string",
            "description" : "Image alt text",
            "example" : "Dell Inspiron 15 3000 Laptop"
          },
          "galleryImageUrls" : {
            "type" : "array",
            "description" : "Gallery image URLs",
            "items" : {
              "type" : "string",
              "description" : "Gallery image URLs"
            }
          },
          "backgroundColor" : {
            "type" : "string",
            "description" : "Background color (hex code)",
            "example" : "#F8F9FA"
          },
          "primaryColor" : {
            "type" : "string",
            "description" : "Primary color (hex code)",
            "example" : "#007BFF"
          },
          "secondaryColor" : {
            "type" : "string",
            "description" : "Secondary color (hex code)",
            "example" : "#6C757D"
          },
          "gradientStart" : {
            "type" : "string",
            "description" : "Gradient start color",
            "example" : "#007BFF"
          },
          "gradientEnd" : {
            "type" : "string",
            "description" : "Gradient end color",
            "example" : "#0056B3"
          },
          "iconClass" : {
            "type" : "string",
            "description" : "Icon CSS class",
            "example" : "bx bx-laptop"
          },
          "displayOrder" : {
            "type" : "integer",
            "description" : "Display order",
            "format" : "int32",
            "example" : 1
          },
          "isFeatured" : {
            "type" : "boolean",
            "description" : "Is featured product",
            "example" : true
          },
          "isPopular" : {
            "type" : "boolean",
            "description" : "Is popular product",
            "example" : true
          },
          "showOnHomepage" : {
            "type" : "boolean",
            "description" : "Show on homepage",
            "example" : true
          },
          "isBestseller" : {
            "type" : "boolean",
            "description" : "Is bestseller",
            "example" : false
          },
          "isNewArrival" : {
            "type" : "boolean",
            "description" : "Is new arrival",
            "example" : true
          },
          "keyFeatures" : {
            "type" : "array",
            "description" : "Key features",
            "items" : {
              "type" : "string",
              "description" : "Key features"
            }
          },
          "specifications" : {
            "type" : "array",
            "description" : "Product specifications",
            "items" : {
              "type" : "string",
              "description" : "Product specifications"
            }
          },
          "inclusions" : {
            "type" : "array",
            "description" : "What's included",
            "items" : {
              "type" : "string",
              "description" : "What's included"
            }
          },
          "warranty" : {
            "type" : "string",
            "description" : "Warranty information",
            "example" : "1 Year Manufacturer Warranty"
          },
          "returnPolicy" : {
            "type" : "string",
            "description" : "Return policy",
            "example" : "7 days return policy"
          },
          "weight" : {
            "type" : "number",
            "description" : "Product weight in kg",
            "format" : "double",
            "example" : 2.1
          },
          "dimensions" : {
            "type" : "string",
            "description" : "Product dimensions",
            "example" : "35.8 x 24.7 x 1.99 cm"
          },
          "color" : {
            "type" : "string",
            "description" : "Primary color",
            "example" : "Black"
          },
          "availableColors" : {
            "type" : "array",
            "description" : "Available colors",
            "items" : {
              "type" : "string",
              "description" : "Available colors"
            }
          },
          "size" : {
            "type" : "string",
            "description" : "Product size",
            "example" : "15.6 inch"
          },
          "availableSizes" : {
            "type" : "array",
            "description" : "Available sizes",
            "items" : {
              "type" : "string",
              "description" : "Available sizes"
            }
          },
          "stockQuantity" : {
            "type" : "integer",
            "description" : "Current stock quantity",
            "format" : "int32",
            "example" : 25
          },
          "inStock" : {
            "type" : "boolean",
            "description" : "Is in stock",
            "example" : true
          },
          "stockStatus" : {
            "type" : "string",
            "description" : "Stock status",
            "example" : "In Stock"
          },
          "lowStock" : {
            "type" : "boolean",
            "description" : "Is low stock",
            "example" : false
          },
          "tags" : {
            "type" : "array",
            "description" : "Product tags",
            "items" : {
              "type" : "string",
              "description" : "Product tags"
            }
          },
          "keywords" : {
            "type" : "array",
            "description" : "SEO keywords",
            "items" : {
              "type" : "string",
              "description" : "SEO keywords"
            }
          },
          "requiresShipping" : {
            "type" : "boolean",
            "description" : "Requires shipping",
            "example" : true
          },
          "isDigital" : {
            "type" : "boolean",
            "description" : "Is digital product",
            "example" : false
          },
          "isVirtual" : {
            "type" : "boolean",
            "description" : "Is virtual product",
            "example" : false
          },
          "taxable" : {
            "type" : "boolean",
            "description" : "Is taxable",
            "example" : true
          },
          "metaTitle" : {
            "type" : "string",
            "description" : "Meta title for SEO"
          },
          "metaDescription" : {
            "type" : "string",
            "description" : "Meta description for SEO"
          },
          "totalSales" : {
            "type" : "integer",
            "description" : "Total sales count",
            "format" : "int64",
            "example" : 150
          },
          "totalViews" : {
            "type" : "integer",
            "description" : "Total views count",
            "format" : "int64",
            "example" : 2500
          },
          "averageRating" : {
            "type" : "number",
            "description" : "Average rating",
            "format" : "double",
            "example" : 4.3
          },
          "totalReviews" : {
            "type" : "integer",
            "description" : "Total reviews count",
            "format" : "int64",
            "example" : 45
          },
          "hasOffer" : {
            "type" : "boolean",
            "description" : "Has active offer",
            "example" : true
          },
          "offerText" : {
            "type" : "string",
            "description" : "Offer text",
            "example" : "Limited Time Offer - 10% OFF"
          },
          "isOnSale" : {
            "type" : "boolean",
            "description" : "Is currently on sale",
            "example" : true
          },
          "relatedProductIds" : {
            "type" : "array",
            "description" : "Related product IDs",
            "items" : {
              "type" : "string",
              "description" : "Related product IDs"
            }
          },
          "crossSellProductIds" : {
            "type" : "array",
            "description" : "Cross-sell product IDs",
            "items" : {
              "type" : "string",
              "description" : "Cross-sell product IDs"
            }
          },
          "upsellProductIds" : {
            "type" : "array",
            "description" : "Upsell product IDs",
            "items" : {
              "type" : "string",
              "description" : "Upsell product IDs"
            }
          },
          "isVariant" : {
            "type" : "boolean",
            "description" : "Is product variant",
            "example" : false
          },
          "parentProductId" : {
            "type" : "string",
            "description" : "Parent product ID (if variant)"
          },
          "variantType" : {
            "type" : "string",
            "description" : "Variant type",
            "example" : "COLOR"
          }
        },
        "description" : "Public product response with display information"
      },
      "PublicServiceResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Service ID",
            "example" : "60f7b3b3b3b3b3b3b3b3b3b3"
          },
          "name" : {
            "type" : "string",
            "description" : "Service name",
            "example" : "AC Repair & Service"
          },
          "slug" : {
            "type" : "string",
            "description" : "URL-friendly slug",
            "example" : "ac-repair-service"
          },
          "shortDescription" : {
            "type" : "string",
            "description" : "Short description",
            "example" : "Professional AC repair and maintenance"
          },
          "aboutTitle" : {
            "type" : "string",
            "description" : "About section title",
            "example" : "About this service"
          },
          "fullDescription" : {
            "type" : "string",
            "description" : "Full description",
            "example" : "Complete AC repair and maintenance service with expert technicians..."
          },
          "typeId" : {
            "type" : "string",
            "description" : "Type ID",
            "example" : "60f7b3b3b3b3b3b3b3b3b3b2"
          },
          "categoryId" : {
            "type" : "string",
            "description" : "Category ID",
            "example" : "60f7b3b3b3b3b3b3b3b3b3b1"
          },
          "typeName" : {
            "type" : "string",
            "description" : "Type name",
            "example" : "AC & Appliance Repair"
          },
          "categoryName" : {
            "type" : "string",
            "description" : "Category name",
            "example" : "AC Repair"
          },
          "imageUrl" : {
            "type" : "string",
            "description" : "Service image URL",
            "example" : "https://example.com/images/ac-repair.jpg"
          },
          "imageAlt" : {
            "type" : "string",
            "description" : "Image alt text",
            "example" : "AC Repair Service"
          },
          "iconClass" : {
            "type" : "string",
            "description" : "Icon CSS class",
            "example" : "bx bx-wrench"
          },
          "displayOrder" : {
            "type" : "integer",
            "description" : "Display order",
            "format" : "int32",
            "example" : 1
          },
          "isFeatured" : {
            "type" : "boolean",
            "description" : "Is featured service",
            "example" : true
          },
          "isPopular" : {
            "type" : "boolean",
            "description" : "Is popular service",
            "example" : true
          },
          "showOnHomepage" : {
            "type" : "boolean",
            "description" : "Show on homepage",
            "example" : true
          },
          "serviceType" : {
            "type" : "string",
            "description" : "Service type",
            "example" : "SINGLE_VISIT"
          },
          "serviceMode" : {
            "type" : "string",
            "description" : "Service mode",
            "example" : "HOME_VISIT"
          },
          "estimatedDuration" : {
            "type" : "integer",
            "description" : "Estimated duration in minutes",
            "format" : "int32",
            "example" : 120
          },
          "formattedDuration" : {
            "type" : "string",
            "description" : "Formatted duration",
            "example" : "2 hrs"
          },
          "startingPrice" : {
            "type" : "number",
            "description" : "Starting price",
            "format" : "double",
            "example" : 500.0
          },
          "currency" : {
            "type" : "string",
            "description" : "Currency",
            "example" : "INR"
          },
          "priceRange" : {
            "type" : "string",
            "description" : "Price range",
            "example" : "₹500 - ₹2000"
          },
          "formattedPriceRange" : {
            "type" : "string",
            "description" : "Formatted price range",
            "example" : "Starting ₹500"
          },
          "metaTitle" : {
            "type" : "string",
            "description" : "Meta title for SEO"
          },
          "metaDescription" : {
            "type" : "string",
            "description" : "Meta description for SEO"
          },
          "totalBookings" : {
            "type" : "integer",
            "description" : "Total bookings count",
            "format" : "int64",
            "example" : 250
          },
          "totalVendors" : {
            "type" : "integer",
            "description" : "Total vendors available",
            "format" : "int64",
            "example" : 15
          },
          "totalPackages" : {
            "type" : "integer",
            "description" : "Total packages available",
            "format" : "int64",
            "example" : 5
          },
          "averageRating" : {
            "type" : "number",
            "description" : "Average rating",
            "format" : "double",
            "example" : 4.5
          },
          "totalReviews" : {
            "type" : "integer",
            "description" : "Total reviews count",
            "format" : "int64",
            "example" : 180
          },
          "conversionRate" : {
            "type" : "number",
            "description" : "Conversion rate",
            "format" : "double",
            "example" : 0.85
          },
          "recommendedServiceIds" : {
            "type" : "array",
            "description" : "Recommended service IDs",
            "items" : {
              "type" : "string",
              "description" : "Recommended service IDs"
            }
          },
          "complementaryServiceIds" : {
            "type" : "array",
            "description" : "Complementary service IDs",
            "items" : {
              "type" : "string",
              "description" : "Complementary service IDs"
            }
          },
          "alternativeServiceIds" : {
            "type" : "array",
            "description" : "Alternative service IDs",
            "items" : {
              "type" : "string",
              "description" : "Alternative service IDs"
            }
          },
          "frequentlyBoughtTogether" : {
            "type" : "array",
            "description" : "Frequently bought together service IDs",
            "items" : {
              "type" : "string",
              "description" : "Frequently bought together service IDs"
            }
          },
          "packages" : {
            "type" : "array",
            "description" : "Active packages for this service",
            "items" : {
              "$ref" : "#/components/schemas/ServicePackageResponse"
            }
          },
          "customerReviewsSection" : {
            "$ref" : "#/components/schemas/CustomerReviewsSectionResponse"
          },
          "frequentlyRebookedSection" : {
            "$ref" : "#/components/schemas/FrequentlyRebookedSectionResponse"
          },
          "faqs" : {
            "type" : "array",
            "description" : "FAQs for the service detail page",
            "items" : {
              "$ref" : "#/components/schemas/FAQItemResponse"
            }
          },
          "highlights" : {
            "type" : "array",
            "description" : "Detailed service highlights",
            "items" : {
              "$ref" : "#/components/schemas/ServiceHighlightResponse"
            }
          },
          "pricingSectionTitle" : {
            "type" : "string",
            "description" : "Title for the pricing transparency section"
          },
          "pricingSectionDescription" : {
            "type" : "string",
            "description" : "Description for the pricing transparency section"
          },
          "pricingTable" : {
            "type" : "array",
            "description" : "Pricing table inherited from category",
            "items" : {
              "$ref" : "#/components/schemas/PricingCategory"
            }
          },
          "popularLinks" : {
            "type" : "array",
            "description" : "Popular local search links inherited from category",
            "items" : {
              "type" : "object",
              "additionalProperties" : {
                "type" : "string",
                "description" : "Popular local search links inherited from category"
              },
              "description" : "Popular local search links inherited from category"
            }
          },
          "rightCard" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "Right promo card inherited from category"
            },
            "description" : "Right promo card inherited from category"
          },
          "comparisonCard" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "Comparison card inherited from category"
            },
            "description" : "Comparison card inherited from category"
          }
        },
        "description" : "Public service response with display information"
      },
      "RecommendationResponse" : {
        "type" : "object",
        "properties" : {
          "recommendationType" : {
            "type" : "string",
            "description" : "Recommendation type",
            "example" : "CROSS_SELL"
          },
          "sourceItemId" : {
            "type" : "string",
            "description" : "Source item ID (product or service)",
            "example" : "60f7b3b3b3b3b3b3b3b3b3b3"
          },
          "sourceItemType" : {
            "type" : "string",
            "description" : "Source item type",
            "example" : "PRODUCT"
          },
          "sourceItemName" : {
            "type" : "string",
            "description" : "Source item name",
            "example" : "Dell Laptop"
          },
          "recommendedProducts" : {
            "type" : "array",
            "description" : "Recommended products",
            "items" : {
              "$ref" : "#/components/schemas/PublicProductResponse"
            }
          },
          "recommendedServices" : {
            "type" : "array",
            "description" : "Recommended services",
            "items" : {
              "$ref" : "#/components/schemas/PublicServiceResponse"
            }
          },
          "recommendationReason" : {
            "type" : "string",
            "description" : "Recommendation reason",
            "example" : "Customers who bought this also bought"
          },
          "confidenceScore" : {
            "type" : "number",
            "description" : "Confidence score",
            "format" : "double",
            "example" : 0.85
          },
          "totalRecommendations" : {
            "type" : "integer",
            "description" : "Total recommendations",
            "format" : "int32",
            "example" : 8
          },
          "categories" : {
            "type" : "array",
            "description" : "Recommendation categories",
            "items" : {
              "type" : "string",
              "description" : "Recommendation categories"
            }
          },
          "tags" : {
            "type" : "array",
            "description" : "Recommendation tags",
            "items" : {
              "type" : "string",
              "description" : "Recommendation tags"
            }
          }
        },
        "description" : "Recommendation response with cross-selling products and services"
      },
      "ApiResponsePublicServiceResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/PublicServiceResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ApiResponsePagePublicServiceResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/PagePublicServiceResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "PagePublicServiceResponse" : {
        "type" : "object",
        "properties" : {
          "totalElements" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalPages" : {
            "type" : "integer",
            "format" : "int32"
          },
          "numberOfElements" : {
            "type" : "integer",
            "format" : "int32"
          },
          "last" : {
            "type" : "boolean"
          },
          "first" : {
            "type" : "boolean"
          },
          "pageable" : {
            "$ref" : "#/components/schemas/PageableObject"
          },
          "size" : {
            "type" : "integer",
            "format" : "int32"
          },
          "content" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PublicServiceResponse"
            }
          },
          "number" : {
            "type" : "integer",
            "format" : "int32"
          },
          "sort" : {
            "$ref" : "#/components/schemas/SortObject"
          },
          "empty" : {
            "type" : "boolean"
          }
        }
      },
      "AboutSection" : {
        "type" : "object",
        "properties" : {
          "title" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          }
        },
        "description" : "About sections"
      },
      "ApiResponseListCategoryServicesDTO" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/CategoryServicesDTO"
            }
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "CategoryServicesDTO" : {
        "type" : "object",
        "properties" : {
          "category" : {
            "$ref" : "#/components/schemas/PublicCategoryResponse"
          },
          "services" : {
            "type" : "array",
            "description" : "List of services belonging to this category",
            "items" : {
              "$ref" : "#/components/schemas/PublicServiceResponse"
            }
          }
        },
        "description" : "DTO containing a category and its grouped active services"
      },
      "FAQItem" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "question" : {
            "type" : "string"
          },
          "answer" : {
            "type" : "string"
          },
          "type" : {
            "type" : "string",
            "enum" : [ "CATEGORY", "SERVICE", "PACKAGE", "ORDERS", "TECHNICIAN", "GENERAL" ]
          },
          "displayOrder" : {
            "type" : "integer",
            "format" : "int32"
          }
        },
        "description" : "FAQs list"
      },
      "PublicCategoryResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Category ID",
            "example" : "60f7b3b3b3b3b3b3b3b3b3b3"
          },
          "name" : {
            "type" : "string",
            "description" : "Category name",
            "example" : "AC Repair"
          },
          "slug" : {
            "type" : "string",
            "description" : "URL-friendly slug",
            "example" : "ac-repair"
          },
          "description" : {
            "type" : "string",
            "description" : "Category description",
            "example" : "Professional AC repair and maintenance services"
          },
          "shortDescription" : {
            "type" : "string",
            "description" : "Short description for cards",
            "example" : "Expert AC repair"
          },
          "typeId" : {
            "type" : "string",
            "description" : "Type ID this category belongs to",
            "example" : "60f7b3b3b3b3b3b3b3b3b3b2"
          },
          "parentId" : {
            "type" : "string",
            "description" : "Parent category ID (if subcategory)",
            "example" : "60f7b3b3b3b3b3b3b3b3b3b1"
          },
          "imageUrl" : {
            "type" : "string",
            "description" : "Image URL",
            "example" : "https://example.com/images/ac-repair.jpg"
          },
          "imageAlt" : {
            "type" : "string",
            "description" : "Image alt text",
            "example" : "AC Repair Service"
          },
          "backgroundColor" : {
            "type" : "string",
            "description" : "Background color (hex code)",
            "example" : "#FF5733"
          },
          "primaryColor" : {
            "type" : "string",
            "description" : "Primary color (hex code)",
            "example" : "#28A745"
          },
          "secondaryColor" : {
            "type" : "string",
            "description" : "Secondary color (hex code)",
            "example" : "#FFC107"
          },
          "gradientStart" : {
            "type" : "string",
            "description" : "Gradient start color",
            "example" : "#FF5733"
          },
          "gradientEnd" : {
            "type" : "string",
            "description" : "Gradient end color",
            "example" : "#FFC107"
          },
          "iconClass" : {
            "type" : "string",
            "description" : "Icon CSS class",
            "example" : "bx bx-wind"
          },
          "displayOrder" : {
            "type" : "integer",
            "description" : "Display order",
            "format" : "int32",
            "example" : 1
          },
          "isFeatured" : {
            "type" : "boolean",
            "description" : "Is featured category",
            "example" : true
          },
          "showOnHomepage" : {
            "type" : "boolean",
            "description" : "Show on homepage",
            "example" : true
          },
          "hasSubCategories" : {
            "type" : "boolean",
            "description" : "Has subcategories",
            "example" : false
          },
          "level" : {
            "type" : "integer",
            "description" : "Category level (0=root, 1=sub)",
            "format" : "int32",
            "example" : 0
          },
          "totalServices" : {
            "type" : "integer",
            "description" : "Total services available",
            "format" : "int64",
            "example" : 45
          },
          "averageRating" : {
            "type" : "number",
            "description" : "Average rating",
            "format" : "double",
            "example" : 4.3
          },
          "totalReviews" : {
            "type" : "integer",
            "description" : "Total reviews",
            "format" : "int64",
            "example" : 180
          },
          "averagePrice" : {
            "type" : "number",
            "description" : "Average price",
            "format" : "double",
            "example" : 850.0
          },
          "priceRange" : {
            "type" : "string",
            "description" : "Price range",
            "example" : "₹500 - ₹2000"
          },
          "benefits" : {
            "type" : "string",
            "description" : "Key benefits",
            "example" : "Quick service, Expert technicians, Warranty coverage"
          },
          "faqs" : {
            "type" : "array",
            "description" : "FAQs list",
            "items" : {
              "$ref" : "#/components/schemas/FAQItem"
            }
          },
          "aboutSections" : {
            "type" : "array",
            "description" : "About sections",
            "items" : {
              "$ref" : "#/components/schemas/AboutSection"
            }
          },
          "aboutTitle" : {
            "type" : "string",
            "description" : "Main title for About/Content section"
          },
          "aboutSubtitle" : {
            "type" : "string",
            "description" : "Subtitle for About/Content section"
          },
          "pricingSectionTitle" : {
            "type" : "string",
            "description" : "Title for pricing transparency section"
          },
          "pricingSectionDescription" : {
            "type" : "string",
            "description" : "Description for pricing transparency section"
          },
          "pricingTable" : {
            "type" : "array",
            "description" : "Pricing table",
            "items" : {
              "$ref" : "#/components/schemas/PricingCategory"
            }
          },
          "highlights" : {
            "type" : "array",
            "description" : "Service highlights",
            "items" : {
              "$ref" : "#/components/schemas/ServiceHighlight"
            }
          },
          "media" : {
            "type" : "array",
            "description" : "Media gallery URLs",
            "items" : {
              "type" : "string",
              "description" : "Media gallery URLs"
            }
          },
          "popularLinks" : {
            "type" : "array",
            "description" : "Popular quick links",
            "items" : {
              "type" : "object",
              "additionalProperties" : {
                "type" : "string",
                "description" : "Popular quick links"
              },
              "description" : "Popular quick links"
            }
          },
          "rightCard" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "Right promo card config"
            },
            "description" : "Right promo card config"
          },
          "comparisonCard" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "Comparison card config"
            },
            "description" : "Comparison card config"
          },
          "customerReviewsSection" : {
            "$ref" : "#/components/schemas/CustomerReviewsSectionResponse"
          },
          "frequentlyRebookedSection" : {
            "$ref" : "#/components/schemas/FrequentlyRebookedSectionResponse"
          },
          "subCategories" : {
            "type" : "array",
            "description" : "Sub-categories list",
            "items" : {
              "$ref" : "#/components/schemas/PublicCategoryResponse"
            }
          }
        },
        "description" : "Public service category response with display information"
      },
      "ServiceHighlight" : {
        "type" : "object",
        "properties" : {
          "title" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "imageUrl" : {
            "type" : "string"
          },
          "features" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "slug" : {
            "type" : "string"
          },
          "serviceId" : {
            "type" : "string"
          }
        },
        "description" : "Service highlights"
      },
      "ApiResponseListSubCategoryPackageGroupResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SubCategoryPackageGroupResponse"
            }
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "SubCategoryPackageGroupResponse" : {
        "type" : "object",
        "properties" : {
          "subCategory" : {
            "$ref" : "#/components/schemas/PublicCategoryResponse"
          },
          "packages" : {
            "type" : "array",
            "description" : "Packages grouped under the subcategory",
            "items" : {
              "$ref" : "#/components/schemas/ServicePackageResponse"
            }
          }
        },
        "description" : "Subcategory-wise grouped package search response"
      },
      "ApiResponseRelatedPackagesSectionResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/RelatedPackagesSectionResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "RelatedPackagesSectionResponse" : {
        "type" : "object",
        "properties" : {
          "title" : {
            "type" : "string"
          },
          "subtitle" : {
            "type" : "string"
          },
          "packages" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ServicePackageResponse"
            }
          }
        }
      },
      "ApiResponsePageServicePackageResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/PageServicePackageResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "PageServicePackageResponse" : {
        "type" : "object",
        "properties" : {
          "totalElements" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalPages" : {
            "type" : "integer",
            "format" : "int32"
          },
          "numberOfElements" : {
            "type" : "integer",
            "format" : "int32"
          },
          "last" : {
            "type" : "boolean"
          },
          "first" : {
            "type" : "boolean"
          },
          "pageable" : {
            "$ref" : "#/components/schemas/PageableObject"
          },
          "size" : {
            "type" : "integer",
            "format" : "int32"
          },
          "content" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ServicePackageResponse"
            }
          },
          "number" : {
            "type" : "integer",
            "format" : "int32"
          },
          "sort" : {
            "$ref" : "#/components/schemas/SortObject"
          },
          "empty" : {
            "type" : "boolean"
          }
        }
      },
      "ApiResponsePagePackageOptionResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/PagePackageOptionResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "PagePackageOptionResponse" : {
        "type" : "object",
        "properties" : {
          "totalElements" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalPages" : {
            "type" : "integer",
            "format" : "int32"
          },
          "numberOfElements" : {
            "type" : "integer",
            "format" : "int32"
          },
          "last" : {
            "type" : "boolean"
          },
          "first" : {
            "type" : "boolean"
          },
          "pageable" : {
            "$ref" : "#/components/schemas/PageableObject"
          },
          "size" : {
            "type" : "integer",
            "format" : "int32"
          },
          "content" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PackageOptionResponse"
            }
          },
          "number" : {
            "type" : "integer",
            "format" : "int32"
          },
          "sort" : {
            "$ref" : "#/components/schemas/SortObject"
          },
          "empty" : {
            "type" : "boolean"
          }
        }
      },
      "ApiResponsePagePublicCategoryResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/PagePublicCategoryResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "PagePublicCategoryResponse" : {
        "type" : "object",
        "properties" : {
          "totalElements" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalPages" : {
            "type" : "integer",
            "format" : "int32"
          },
          "numberOfElements" : {
            "type" : "integer",
            "format" : "int32"
          },
          "last" : {
            "type" : "boolean"
          },
          "first" : {
            "type" : "boolean"
          },
          "pageable" : {
            "$ref" : "#/components/schemas/PageableObject"
          },
          "size" : {
            "type" : "integer",
            "format" : "int32"
          },
          "content" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PublicCategoryResponse"
            }
          },
          "number" : {
            "type" : "integer",
            "format" : "int32"
          },
          "sort" : {
            "$ref" : "#/components/schemas/SortObject"
          },
          "empty" : {
            "type" : "boolean"
          }
        }
      },
      "ApiResponsePublicCategoryResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/PublicCategoryResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ApiResponseListBlogPostResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/BlogPostResponse"
            }
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ApiResponsePageHomePageSection" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/PageHomePageSection"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "PageHomePageSection" : {
        "type" : "object",
        "properties" : {
          "totalElements" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalPages" : {
            "type" : "integer",
            "format" : "int32"
          },
          "numberOfElements" : {
            "type" : "integer",
            "format" : "int32"
          },
          "last" : {
            "type" : "boolean"
          },
          "first" : {
            "type" : "boolean"
          },
          "pageable" : {
            "$ref" : "#/components/schemas/PageableObject"
          },
          "size" : {
            "type" : "integer",
            "format" : "int32"
          },
          "content" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/HomePageSection"
            }
          },
          "number" : {
            "type" : "integer",
            "format" : "int32"
          },
          "sort" : {
            "$ref" : "#/components/schemas/SortObject"
          },
          "empty" : {
            "type" : "boolean"
          }
        }
      },
      "ApiResponsePagedResponseAuditLog" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/PagedResponseAuditLog"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "AuditLog" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "userId" : {
            "type" : "string"
          },
          "username" : {
            "type" : "string"
          },
          "action" : {
            "type" : "string",
            "enum" : [ "PRODUCT_CREATE", "PRODUCT_UPDATE", "PRODUCT_DELETE", "PRODUCT_PRICE_UPDATE", "PRODUCT_STATUS_CHANGE", "INVENTORY_CREATE", "INVENTORY_UPDATE", "INVENTORY_STOCK_UPDATE", "INVENTORY_RESERVATION", "INVENTORY_RELEASE", "INVENTORY_ADJUSTMENT", "SALE_CREATE", "SALE_UPDATE", "SALE_COMPLETE", "SALE_CANCEL", "ORDER_CREATE", "ORDER_UPDATE", "ORDER_STATUS_CHANGE", "ORDER_CANCEL", "CATEGORY_CREATE", "CATEGORY_UPDATE", "CATEGORY_DELETE", "BRAND_CREATE", "BRAND_UPDATE", "BRAND_DELETE", "CITY_MAPPING_CREATE", "CITY_MAPPING_UPDATE", "CITY_MAPPING_DELETE", "LOGIN_SUCCESS", "LOGIN_FAILURE", "LOGOUT", "ACCESS_GRANTED", "ACCESS_DENIED" ]
          },
          "entityType" : {
            "type" : "string"
          },
          "entityId" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "oldValues" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          },
          "newValues" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          },
          "ipAddress" : {
            "type" : "string"
          },
          "userAgent" : {
            "type" : "string"
          },
          "timestamp" : {
            "type" : "string",
            "format" : "date-time"
          },
          "sessionId" : {
            "type" : "string"
          },
          "cityId" : {
            "type" : "string"
          },
          "vendorId" : {
            "type" : "string"
          },
          "success" : {
            "type" : "boolean"
          },
          "errorMessage" : {
            "type" : "string"
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          }
        }
      },
      "PagedResponseAuditLog" : {
        "type" : "object",
        "properties" : {
          "content" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/AuditLog"
            }
          },
          "currentPage" : {
            "type" : "integer",
            "format" : "int32"
          },
          "pageSize" : {
            "type" : "integer",
            "format" : "int32"
          },
          "totalElements" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalPages" : {
            "type" : "integer",
            "format" : "int32"
          },
          "first" : {
            "type" : "boolean"
          },
          "last" : {
            "type" : "boolean"
          },
          "hasNext" : {
            "type" : "boolean"
          },
          "hasPrevious" : {
            "type" : "boolean"
          },
          "numberOfElements" : {
            "type" : "integer",
            "format" : "int32"
          },
          "sort" : {
            "$ref" : "#/components/schemas/SortInfo"
          }
        }
      },
      "ApiResponseListAuditLog" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/AuditLog"
            }
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ApiResponseListServiceVisitResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ServiceVisitResponse"
            }
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ApiResponseLong" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "integer",
            "format" : "int64"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ApiResponseDouble" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "number",
            "format" : "double"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ApiResponseListString" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ApiResponseListServiceBookingResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ServiceBookingResponse"
            }
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ApiResponseBoolean" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "boolean"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ApiResponseListLocalDateTime" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "date-time"
            }
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ApiResponseListSaleItemResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SaleItemResponse"
            }
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ApiResponseListSaleResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SaleResponse"
            }
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ApiResponseListObject" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "array",
            "items" : {
              "type" : "object"
            }
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ApiResponseSalesAnalyticsResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "$ref" : "#/components/schemas/SalesAnalyticsResponse"
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "SalesAnalyticsResponse" : {
        "type" : "object",
        "properties" : {
          "totalSalesCount" : {
            "type" : "integer",
            "description" : "Total sales count",
            "format" : "int64",
            "example" : 150
          },
          "totalSalesValue" : {
            "type" : "number",
            "description" : "Total sales value",
            "format" : "double",
            "example" : 15000.0
          },
          "averageSaleValue" : {
            "type" : "number",
            "description" : "Average sale value",
            "format" : "double",
            "example" : 100.0
          },
          "totalProfit" : {
            "type" : "number",
            "description" : "Total profit",
            "format" : "double",
            "example" : 6000.0
          },
          "averageProfitMargin" : {
            "type" : "number",
            "description" : "Average profit margin",
            "format" : "double",
            "example" : 40.0
          },
          "totalCommission" : {
            "type" : "number",
            "description" : "Total commission",
            "format" : "double",
            "example" : 750.0
          },
          "unpaidCommission" : {
            "type" : "number",
            "description" : "Unpaid commission",
            "format" : "double",
            "example" : 250.0
          },
          "periodStart" : {
            "type" : "string",
            "description" : "Analysis period start",
            "format" : "date-time"
          },
          "periodEnd" : {
            "type" : "string",
            "description" : "Analysis period end",
            "format" : "date-time"
          },
          "salesByStatus" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "integer",
              "description" : "Sales by status",
              "format" : "int64"
            },
            "description" : "Sales by status"
          },
          "salesByPaymentStatus" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "integer",
              "description" : "Sales by payment status",
              "format" : "int64"
            },
            "description" : "Sales by payment status"
          },
          "salesByCity" : {
            "type" : "array",
            "description" : "Sales by city",
            "items" : {
              "type" : "object",
              "description" : "Sales by city"
            }
          },
          "salesBySalesPerson" : {
            "type" : "array",
            "description" : "Sales by sales person",
            "items" : {
              "type" : "object",
              "description" : "Sales by sales person"
            }
          },
          "salesBySource" : {
            "type" : "array",
            "description" : "Sales by source",
            "items" : {
              "type" : "object",
              "description" : "Sales by source"
            }
          },
          "salesByChannel" : {
            "type" : "array",
            "description" : "Sales by channel",
            "items" : {
              "type" : "object",
              "description" : "Sales by channel"
            }
          },
          "topSellingProducts" : {
            "type" : "array",
            "description" : "Top selling products",
            "items" : {
              "type" : "object",
              "description" : "Top selling products"
            }
          },
          "topSellingServices" : {
            "type" : "array",
            "description" : "Top selling services",
            "items" : {
              "type" : "object",
              "description" : "Top selling services"
            }
          },
          "dailySalesSummary" : {
            "type" : "array",
            "description" : "Daily sales summary",
            "items" : {
              "type" : "object",
              "description" : "Daily sales summary"
            }
          },
          "monthlySalesSummary" : {
            "type" : "array",
            "description" : "Monthly sales summary",
            "items" : {
              "type" : "object",
              "description" : "Monthly sales summary"
            }
          },
          "paymentMethodDistribution" : {
            "type" : "array",
            "description" : "Payment method distribution",
            "items" : {
              "type" : "object",
              "description" : "Payment method distribution"
            }
          },
          "customerSegmentAnalysis" : {
            "type" : "array",
            "description" : "Customer segment analysis",
            "items" : {
              "type" : "object",
              "description" : "Customer segment analysis"
            }
          },
          "commissionSummaryBySalesPerson" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "number",
              "description" : "Commission summary by sales person",
              "format" : "double"
            },
            "description" : "Commission summary by sales person"
          },
          "profitAnalysisByProduct" : {
            "type" : "array",
            "description" : "Profit analysis by product",
            "items" : {
              "type" : "object",
              "description" : "Profit analysis by product"
            }
          },
          "returnAnalysis" : {
            "type" : "array",
            "description" : "Return analysis",
            "items" : {
              "type" : "object",
              "description" : "Return analysis"
            }
          },
          "discountAnalysis" : {
            "type" : "array",
            "description" : "Discount analysis",
            "items" : {
              "type" : "object",
              "description" : "Discount analysis"
            }
          }
        },
        "description" : "Sales analytics response"
      },
      "ApiResponseListRevisitRequestResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/RevisitRequestResponse"
            }
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ApiResponseListOrderItemResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OrderItemResponse"
            }
          },
          "error" : {
            "type" : "string"
          }
        }
      },
      "ApiResponseListOrderResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string"
          },
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OrderResponse"
            }
          },
          "error" : {
            "type" : "string"
          }
        }
      }
    },
    "securitySchemes" : {
      "bearerAuth" : {
        "type" : "http",
        "description" : "JWT token for API authentication. Format: 'Bearer {token}'",
        "scheme" : "bearer",
        "bearerFormat" : "JWT"
      },
      "cityIdHeader" : {
        "type" : "apiKey",
        "description" : "City ID header for location-specific data",
        "name" : "City-ID",
        "in" : "header"
      }
    }
  }
}