{
  "openapi": "3.0.0",
  "info": {
    "title": "EventZR Marketplace Service API",
    "description": "Multi-lane marketplace service for EventZR platform. Supports 9 marketplace lanes: Spotlight (artist booking), Synapse (technical freelancers), Squad (temporary staff), Meridian (event planners & agencies), Portico (venue + accommodation + transport), Vendora (suppliers), Poper (exhibition/stall/stand/popup/booth), Nexus (sponsorship & partnerships), and Cortex (AI/LLM marketplace). Provides full lifecycle management for listings, quotes, orders, disputes, analytics, collaborations, exhibitor slots, service tiers, sponsorship packages, and AI asset management.",
    "version": "2.1.0",
    "contact": {
      "name": "EventZR Platform Team",
      "url": "https://eventzr.com"
    },
    "license": {
      "name": "Proprietary"
    }
  },
  "servers": [
    {
      "url": "https://535ubezkse.execute-api.us-east-1.amazonaws.com/marketplace/v1",
      "description": "Staging (AWS API Gateway)"
    }
  ],
  "security": [{ "BearerAuth": [] }, { "TenantId": [] }],
  "tags": [
    {
      "name": "Listings",
      "description": "Marketplace listing CRUD and lifecycle management"
    },
    {
      "name": "Listings - Quotes",
      "description": "Quotes nested under listings (seller view)"
    },
    {
      "name": "Quotes",
      "description": "Quote submission, negotiation, acceptance and rejection"
    },
    {
      "name": "Orders",
      "description": "Order creation from accepted quotes, delivery and completion"
    },
    {
      "name": "Disputes",
      "description": "Dispute creation, evidence submission, resolution and escalation"
    },
    {
      "name": "Analytics",
      "description": "Marketplace analytics for listings, lanes, sellers and top performers"
    },
    {
      "name": "Collaboration Requests",
      "description": "Seller-to-seller collaboration requests"
    },
    {
      "name": "Cortex AI Assets",
      "description": "AI/LLM asset management for the Cortex lane"
    },
    {
      "name": "RFP Matching",
      "description": "Request-for-Proposal broadcasting and seller matching"
    },
    {
      "name": "Exhibitor Slots",
      "description": "Exhibition booth/slot management (Poper lane)"
    },
    {
      "name": "Seller Preferences",
      "description": "Seller preference and matching configuration"
    },
    {
      "name": "Service Tiers",
      "description": "Tiered pricing/service packages per listing"
    },
    {
      "name": "Sponsorship Packages",
      "description": "Sponsorship package management (Nexus lane)"
    },
    {
      "name": "Marketplace Media",
      "description": "Product image, vendor logo, and banner upload/delete"
    },
    { "name": "Health", "description": "Liveness and readiness probes" }
  ],
  "paths": {
    "/listings": {
      "post": {
        "tags": ["Listings"],
        "operationId": "createListing",
        "summary": "Create a new listing",
        "requestBody": { "$ref": "#/components/requestBodies/CreateListing" },
        "responses": {
          "201": {
            "description": "Listing created successfully",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/ListingResponse" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" }
        }
      },
      "get": {
        "tags": ["Listings"],
        "operationId": "listListings",
        "summary": "List all listings with pagination",
        "parameters": [
          { "$ref": "#/components/parameters/CursorParam" },
          { "$ref": "#/components/parameters/LimitParam" },
          {
            "name": "category",
            "in": "query",
            "schema": { "$ref": "#/components/schemas/MarketplaceLane" },
            "description": "Filter by marketplace lane"
          },
          {
            "name": "status",
            "in": "query",
            "schema": { "type": "string" },
            "description": "Filter by listing status"
          },
          {
            "name": "sellerId",
            "in": "query",
            "schema": { "type": "string", "format": "uuid" },
            "description": "Filter by seller ID"
          },
          {
            "name": "priceMin",
            "in": "query",
            "schema": { "type": "number", "minimum": 0 },
            "description": "Minimum price filter"
          },
          {
            "name": "priceMax",
            "in": "query",
            "schema": { "type": "number", "minimum": 0 },
            "description": "Maximum price filter"
          },
          {
            "name": "geoRegion",
            "in": "query",
            "schema": { "type": "string" },
            "description": "Filter by geographic region"
          },
          {
            "name": "search",
            "in": "query",
            "schema": { "type": "string" },
            "description": "Full-text search query"
          },
          {
            "name": "sortBy",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "createdAt",
                "priceMin",
                "priceMax",
                "totalViews",
                "totalBookings",
                "averageRating",
                "title"
              ],
              "default": "createdAt"
            }
          },
          {
            "name": "sortOrder",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": ["ASC", "DESC"],
              "default": "DESC"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Listings retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedListingResponse"
                }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" }
        }
      }
    },
    "/listings/search": {
      "get": {
        "tags": ["Listings"],
        "operationId": "searchListings",
        "summary": "Search listings by query string",
        "parameters": [
          { "$ref": "#/components/parameters/CursorParam" },
          { "$ref": "#/components/parameters/LimitParam" },
          {
            "name": "category",
            "in": "query",
            "schema": { "$ref": "#/components/schemas/MarketplaceLane" }
          },
          { "name": "status", "in": "query", "schema": { "type": "string" } },
          {
            "name": "sellerId",
            "in": "query",
            "schema": { "type": "string", "format": "uuid" }
          },
          {
            "name": "priceMin",
            "in": "query",
            "schema": { "type": "number", "minimum": 0 }
          },
          {
            "name": "priceMax",
            "in": "query",
            "schema": { "type": "number", "minimum": 0 }
          },
          {
            "name": "geoRegion",
            "in": "query",
            "schema": { "type": "string" }
          },
          { "name": "search", "in": "query", "schema": { "type": "string" } },
          {
            "name": "sortBy",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "createdAt",
                "priceMin",
                "priceMax",
                "totalViews",
                "totalBookings",
                "averageRating",
                "title"
              ],
              "default": "createdAt"
            }
          },
          {
            "name": "sortOrder",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": ["ASC", "DESC"],
              "default": "DESC"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Search results retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedListingResponse"
                }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" }
        }
      }
    },
    "/listings/lane/{category}": {
      "get": {
        "tags": ["Listings"],
        "operationId": "listListingsByLane",
        "summary": "Get listings by category lane",
        "parameters": [
          {
            "name": "category",
            "in": "path",
            "required": true,
            "schema": { "$ref": "#/components/schemas/MarketplaceLane" },
            "description": "Marketplace lane"
          },
          { "$ref": "#/components/parameters/CursorParam" },
          { "$ref": "#/components/parameters/LimitParam" },
          { "name": "status", "in": "query", "schema": { "type": "string" } },
          {
            "name": "sortBy",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "createdAt",
                "priceMin",
                "priceMax",
                "totalViews",
                "totalBookings",
                "averageRating",
                "title"
              ],
              "default": "createdAt"
            }
          },
          {
            "name": "sortOrder",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": ["ASC", "DESC"],
              "default": "DESC"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Category listings retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedListingResponse"
                }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" }
        }
      }
    },
    "/listings/{id}": {
      "get": {
        "tags": ["Listings"],
        "operationId": "getListingById",
        "summary": "Get listing by ID",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "200": {
            "description": "Listing retrieved successfully",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/ListingResponse" }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      },
      "patch": {
        "tags": ["Listings"],
        "operationId": "updateListing",
        "summary": "Update listing",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "requestBody": { "$ref": "#/components/requestBodies/UpdateListing" },
        "responses": {
          "200": {
            "description": "Listing updated successfully",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/ListingResponse" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      },
      "delete": {
        "tags": ["Listings"],
        "operationId": "deleteListing",
        "summary": "Soft delete a listing",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "204": { "description": "Listing deleted successfully" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/listings/{id}/stats": {
      "get": {
        "tags": ["Listings"],
        "operationId": "getListingStats",
        "summary": "Get listing statistics",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "200": {
            "description": "Listing stats retrieved successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/listings/{id}/publish": {
      "post": {
        "tags": ["Listings"],
        "operationId": "publishListing",
        "summary": "Publish a draft listing",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "200": {
            "description": "Listing published successfully",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/ListingResponse" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/listings/{id}/pause": {
      "post": {
        "tags": ["Listings"],
        "operationId": "pauseListing",
        "summary": "Pause an active listing",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "200": {
            "description": "Listing paused successfully",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/ListingResponse" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/listings/{id}/unpause": {
      "post": {
        "tags": ["Listings"],
        "operationId": "unpauseListing",
        "summary": "Unpause a paused listing",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "200": {
            "description": "Listing unpaused successfully",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/ListingResponse" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/listings/{id}/close": {
      "post": {
        "tags": ["Listings"],
        "operationId": "closeListing",
        "summary": "Close a listing",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "200": {
            "description": "Listing closed successfully",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/ListingResponse" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/listings/{id}/view": {
      "post": {
        "tags": ["Listings"],
        "operationId": "incrementListingView",
        "summary": "Increment listing view count",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "204": { "description": "View count incremented successfully" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/listings/{listingId}/quotes": {
      "get": {
        "tags": ["Listings - Quotes"],
        "operationId": "getQuotesForListing",
        "summary": "Get all quotes for a listing (seller view)",
        "parameters": [
          {
            "name": "listingId",
            "in": "path",
            "required": true,
            "schema": { "type": "string", "format": "uuid" },
            "description": "Listing UUID"
          },
          { "$ref": "#/components/parameters/CursorParam" },
          { "$ref": "#/components/parameters/LimitParam" },
          { "name": "status", "in": "query", "schema": { "type": "string" } },
          {
            "name": "sortBy",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": ["createdAt", "amount", "status", "validUntil"],
              "default": "createdAt"
            }
          },
          {
            "name": "sortOrder",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": ["ASC", "DESC"],
              "default": "DESC"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Quotes retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedQuoteResponse"
                }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "403": { "$ref": "#/components/responses/Forbidden" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/quotes": {
      "post": {
        "tags": ["Quotes"],
        "operationId": "createQuote",
        "summary": "Submit a quote for a listing",
        "requestBody": { "$ref": "#/components/requestBodies/CreateQuote" },
        "responses": {
          "201": {
            "description": "Quote submitted successfully",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/QuoteResponse" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" }
        }
      },
      "get": {
        "tags": ["Quotes"],
        "operationId": "listMyQuotes",
        "summary": "Get my quotes (as responder)",
        "parameters": [
          { "$ref": "#/components/parameters/CursorParam" },
          { "$ref": "#/components/parameters/LimitParam" },
          { "name": "status", "in": "query", "schema": { "type": "string" } },
          {
            "name": "listingId",
            "in": "query",
            "schema": { "type": "string", "format": "uuid" }
          },
          {
            "name": "sortBy",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": ["createdAt", "amount", "status", "validUntil"],
              "default": "createdAt"
            }
          },
          {
            "name": "sortOrder",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": ["ASC", "DESC"],
              "default": "DESC"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Quotes retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedQuoteResponse"
                }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" }
        }
      }
    },
    "/quotes/{id}": {
      "get": {
        "tags": ["Quotes"],
        "operationId": "getQuoteById",
        "summary": "Get quote by ID",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "200": {
            "description": "Quote retrieved successfully",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/QuoteResponse" }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      },
      "patch": {
        "tags": ["Quotes"],
        "operationId": "updateQuote",
        "summary": "Update quote",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "requestBody": { "$ref": "#/components/requestBodies/UpdateQuote" },
        "responses": {
          "200": {
            "description": "Quote updated successfully",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/QuoteResponse" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/quotes/{id}/withdraw": {
      "post": {
        "tags": ["Quotes"],
        "operationId": "withdrawQuote",
        "summary": "Withdraw quote (responder)",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "200": {
            "description": "Quote withdrawn successfully",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/QuoteResponse" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/quotes/{id}/accept": {
      "post": {
        "tags": ["Quotes"],
        "operationId": "acceptQuote",
        "summary": "Accept quote (seller)",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "200": {
            "description": "Quote accepted successfully",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/QuoteResponse" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/quotes/{id}/reject": {
      "post": {
        "tags": ["Quotes"],
        "operationId": "rejectQuote",
        "summary": "Reject quote (seller)",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": { "$ref": "#/components/schemas/ReasonDto" }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Quote rejected successfully",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/QuoteResponse" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/quotes/{id}/negotiate": {
      "post": {
        "tags": ["Quotes"],
        "operationId": "negotiateQuote",
        "summary": "Counter-offer on quote",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": { "$ref": "#/components/schemas/NegotiateQuoteDto" }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Counter-offer submitted successfully",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/QuoteResponse" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/orders": {
      "post": {
        "tags": ["Orders"],
        "operationId": "createOrder",
        "summary": "Create order from accepted quote",
        "requestBody": { "$ref": "#/components/requestBodies/CreateOrder" },
        "responses": {
          "201": {
            "description": "Order created successfully",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/OrderResponse" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      },
      "get": {
        "tags": ["Orders"],
        "operationId": "listMyOrders",
        "summary": "List my orders as buyer",
        "parameters": [
          { "$ref": "#/components/parameters/CursorParam" },
          { "$ref": "#/components/parameters/LimitParam" },
          { "name": "status", "in": "query", "schema": { "type": "string" } },
          {
            "name": "category",
            "in": "query",
            "schema": { "$ref": "#/components/schemas/MarketplaceLane" }
          },
          {
            "name": "sortBy",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": ["createdAt", "totalAmount", "status"],
              "default": "createdAt"
            }
          },
          {
            "name": "sortOrder",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": ["ASC", "DESC"],
              "default": "DESC"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Orders retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedOrderResponse"
                }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" }
        }
      }
    },
    "/orders/seller": {
      "get": {
        "tags": ["Orders"],
        "operationId": "listSellerOrders",
        "summary": "List my orders as seller",
        "parameters": [
          { "$ref": "#/components/parameters/CursorParam" },
          { "$ref": "#/components/parameters/LimitParam" },
          { "name": "status", "in": "query", "schema": { "type": "string" } },
          {
            "name": "category",
            "in": "query",
            "schema": { "$ref": "#/components/schemas/MarketplaceLane" }
          },
          {
            "name": "sortBy",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": ["createdAt", "totalAmount", "status"],
              "default": "createdAt"
            }
          },
          {
            "name": "sortOrder",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": ["ASC", "DESC"],
              "default": "DESC"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Seller orders retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedOrderResponse"
                }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" }
        }
      }
    },
    "/orders/{id}": {
      "get": {
        "tags": ["Orders"],
        "operationId": "getOrderById",
        "summary": "Get order by ID",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "200": {
            "description": "Order retrieved successfully",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/OrderResponse" }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/orders/{id}/deliver": {
      "post": {
        "tags": ["Orders"],
        "operationId": "deliverOrder",
        "summary": "Mark order as delivered (seller only)",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": { "$ref": "#/components/schemas/DeliverOrderDto" }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Order marked as delivered",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/OrderResponse" }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "403": { "$ref": "#/components/responses/Forbidden" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/orders/{id}/complete": {
      "post": {
        "tags": ["Orders"],
        "operationId": "completeOrder",
        "summary": "Confirm order completion (buyer only)",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "200": {
            "description": "Order marked as completed",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/OrderResponse" }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "403": { "$ref": "#/components/responses/Forbidden" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/orders/{id}/cancel": {
      "post": {
        "tags": ["Orders"],
        "operationId": "cancelOrder",
        "summary": "Cancel order",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": { "$ref": "#/components/schemas/ReasonDto" }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Order cancelled successfully",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/OrderResponse" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/orders/{id}/status": {
      "post": {
        "tags": ["Orders"],
        "operationId": "updateOrderStatus",
        "summary": "Update order status",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["status"],
                "properties": {
                  "status": { "type": "string", "maxLength": 50 }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Order status updated",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/OrderResponse" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/disputes": {
      "post": {
        "tags": ["Disputes"],
        "operationId": "createDispute",
        "summary": "Open a dispute for an order",
        "requestBody": { "$ref": "#/components/requestBodies/CreateDispute" },
        "responses": {
          "201": {
            "description": "Dispute created successfully",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/DisputeResponse" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      },
      "get": {
        "tags": ["Disputes"],
        "operationId": "listDisputes",
        "summary": "List all disputes (admin only)",
        "description": "Requires admin role.",
        "parameters": [
          { "$ref": "#/components/parameters/CursorParam" },
          { "$ref": "#/components/parameters/LimitParam" },
          { "name": "status", "in": "query", "schema": { "type": "string" } },
          {
            "name": "orderId",
            "in": "query",
            "schema": { "type": "string", "format": "uuid" }
          },
          {
            "name": "sortBy",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": ["createdAt", "status", "resolvedAt"],
              "default": "createdAt"
            }
          },
          {
            "name": "sortOrder",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": ["ASC", "DESC"],
              "default": "DESC"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Disputes retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedDisputeResponse"
                }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "403": { "$ref": "#/components/responses/Forbidden" }
        }
      }
    },
    "/disputes/{id}": {
      "get": {
        "tags": ["Disputes"],
        "operationId": "getDisputeById",
        "summary": "Get dispute by ID",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "200": {
            "description": "Dispute retrieved successfully",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/DisputeResponse" }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "403": { "$ref": "#/components/responses/Forbidden" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/disputes/{id}/evidence": {
      "post": {
        "tags": ["Disputes"],
        "operationId": "addDisputeEvidence",
        "summary": "Add evidence to dispute",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": { "$ref": "#/components/schemas/SubmitEvidenceDto" }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Evidence added successfully",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/DisputeResponse" }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "403": { "$ref": "#/components/responses/Forbidden" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/disputes/{id}/resolve": {
      "post": {
        "tags": ["Disputes"],
        "operationId": "resolveDispute",
        "summary": "Resolve dispute (admin only)",
        "description": "Requires admin role.",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": { "$ref": "#/components/schemas/ResolveDisputeDto" }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Dispute resolved successfully",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/DisputeResponse" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "403": { "$ref": "#/components/responses/Forbidden" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/disputes/{id}/escalate": {
      "post": {
        "tags": ["Disputes"],
        "operationId": "escalateDispute",
        "summary": "Escalate dispute to higher support tier",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "200": {
            "description": "Dispute escalated successfully",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/DisputeResponse" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "403": { "$ref": "#/components/responses/Forbidden" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/analytics/listing/{listingId}": {
      "get": {
        "tags": ["Analytics"],
        "operationId": "getListingAnalytics",
        "summary": "Get analytics for a listing",
        "parameters": [
          {
            "name": "listingId",
            "in": "path",
            "required": true,
            "schema": { "type": "string", "format": "uuid" },
            "description": "Listing UUID"
          },
          {
            "name": "startDate",
            "in": "query",
            "schema": { "type": "string", "format": "date-time" },
            "description": "Start date (ISO 8601)"
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": { "type": "string", "format": "date-time" },
            "description": "End date (ISO 8601)"
          }
        ],
        "responses": {
          "200": {
            "description": "Analytics retrieved successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/analytics/lane/{category}": {
      "get": {
        "tags": ["Analytics"],
        "operationId": "getLaneAnalytics",
        "summary": "Get analytics for a marketplace lane",
        "description": "Requires admin role.",
        "parameters": [
          {
            "name": "category",
            "in": "path",
            "required": true,
            "schema": { "$ref": "#/components/schemas/MarketplaceLane" },
            "description": "Marketplace lane"
          },
          {
            "name": "startDate",
            "in": "query",
            "schema": { "type": "string", "format": "date-time" }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": { "type": "string", "format": "date-time" }
          }
        ],
        "responses": {
          "200": {
            "description": "Lane analytics retrieved successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "403": { "$ref": "#/components/responses/Forbidden" }
        }
      }
    },
    "/analytics/seller/{sellerId}": {
      "get": {
        "tags": ["Analytics"],
        "operationId": "getSellerAnalytics",
        "summary": "Get analytics for a seller",
        "parameters": [
          {
            "name": "sellerId",
            "in": "path",
            "required": true,
            "schema": { "type": "string", "format": "uuid" },
            "description": "Seller UUID"
          },
          {
            "name": "startDate",
            "in": "query",
            "schema": { "type": "string", "format": "date-time" }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": { "type": "string", "format": "date-time" }
          }
        ],
        "responses": {
          "200": {
            "description": "Seller analytics retrieved successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/analytics/top": {
      "get": {
        "tags": ["Analytics"],
        "operationId": "getTopListings",
        "summary": "Get top listings by metric",
        "description": "Requires admin role.",
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "schema": { "$ref": "#/components/schemas/MarketplaceLane" },
            "description": "Filter by lane (default: spotlight)"
          },
          {
            "name": "metric",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": ["views", "bookings", "rating", "revenue"],
              "default": "views"
            },
            "description": "Metric to rank by"
          },
          {
            "name": "limit",
            "in": "query",
            "schema": { "type": "integer", "minimum": 1, "default": 10 },
            "description": "Number of results"
          }
        ],
        "responses": {
          "200": {
            "description": "Top listings retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": { "type": "object", "additionalProperties": true }
                }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "403": { "$ref": "#/components/responses/Forbidden" }
        }
      }
    },
    "/collaborations": {
      "post": {
        "tags": ["Collaboration Requests"],
        "operationId": "createCollaboration",
        "summary": "Create a collaboration request",
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateCollaboration"
        },
        "responses": {
          "201": {
            "description": "Collaboration request created successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" }
        }
      },
      "get": {
        "tags": ["Collaboration Requests"],
        "operationId": "listMyCollaborations",
        "summary": "Get my collaboration requests",
        "parameters": [
          { "$ref": "#/components/parameters/CursorParam" },
          { "$ref": "#/components/parameters/LimitParam" }
        ],
        "responses": {
          "200": {
            "description": "Collaboration requests retrieved successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" }
        }
      }
    },
    "/collaborations/{id}": {
      "get": {
        "tags": ["Collaboration Requests"],
        "operationId": "getCollaborationById",
        "summary": "Get collaboration request by ID",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "200": {
            "description": "Collaboration request retrieved successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/collaborations/{id}/accept": {
      "post": {
        "tags": ["Collaboration Requests"],
        "operationId": "acceptCollaboration",
        "summary": "Accept collaboration request",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "200": {
            "description": "Collaboration request accepted successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/collaborations/{id}/reject": {
      "post": {
        "tags": ["Collaboration Requests"],
        "operationId": "rejectCollaboration",
        "summary": "Reject collaboration request",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": { "$ref": "#/components/schemas/ReasonDto" }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Collaboration request rejected successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/cortex/assets": {
      "post": {
        "tags": ["Cortex AI Assets"],
        "operationId": "createCortexAsset",
        "summary": "Create a Cortex AI asset",
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateCortexAsset"
        },
        "responses": {
          "201": {
            "description": "Asset created successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" }
        }
      },
      "get": {
        "tags": ["Cortex AI Assets"],
        "operationId": "listCortexAssets",
        "summary": "List Cortex AI assets",
        "parameters": [
          { "$ref": "#/components/parameters/CursorParam" },
          { "$ref": "#/components/parameters/LimitParam" },
          {
            "name": "listingId",
            "in": "query",
            "schema": { "type": "string", "format": "uuid" },
            "description": "Filter by listing"
          },
          {
            "name": "assetType",
            "in": "query",
            "schema": { "type": "string" },
            "description": "Filter by asset type (e.g., llm, embedding)"
          }
        ],
        "responses": {
          "200": {
            "description": "Assets retrieved successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" }
        }
      }
    },
    "/cortex/assets/{id}": {
      "get": {
        "tags": ["Cortex AI Assets"],
        "operationId": "getCortexAssetById",
        "summary": "Get Cortex AI asset by ID",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "200": {
            "description": "Asset retrieved successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      },
      "patch": {
        "tags": ["Cortex AI Assets"],
        "operationId": "updateCortexAsset",
        "summary": "Update Cortex AI asset",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": { "$ref": "#/components/schemas/UpdateCortexAssetDto" }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Asset updated successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      },
      "delete": {
        "tags": ["Cortex AI Assets"],
        "operationId": "deleteCortexAsset",
        "summary": "Delete Cortex AI asset",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "204": { "description": "Asset deleted successfully" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/cortex/assets/{id}/usage": {
      "post": {
        "tags": ["Cortex AI Assets"],
        "operationId": "recordCortexUsage",
        "summary": "Record asset usage",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": { "$ref": "#/components/schemas/RecordUsageDto" }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Usage recorded successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      },
      "get": {
        "tags": ["Cortex AI Assets"],
        "operationId": "getCortexUsageHistory",
        "summary": "Get asset usage history",
        "parameters": [
          { "$ref": "#/components/parameters/UUIDPathParam" },
          { "$ref": "#/components/parameters/CursorParam" },
          { "$ref": "#/components/parameters/LimitParam" }
        ],
        "responses": {
          "200": {
            "description": "Usage history retrieved successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/rfp/broadcast/{listingId}": {
      "post": {
        "tags": ["RFP Matching"],
        "operationId": "broadcastRfp",
        "summary": "Broadcast RFP to matching sellers",
        "parameters": [
          {
            "name": "listingId",
            "in": "path",
            "required": true,
            "schema": { "type": "string", "format": "uuid" },
            "description": "Listing UUID"
          }
        ],
        "responses": {
          "201": {
            "description": "RFP broadcasted successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/rfp/matches/{listingId}": {
      "get": {
        "tags": ["RFP Matching"],
        "operationId": "getRfpMatches",
        "summary": "Get RFP matches for a listing",
        "parameters": [
          {
            "name": "listingId",
            "in": "path",
            "required": true,
            "schema": { "type": "string", "format": "uuid" },
            "description": "Listing UUID"
          },
          { "$ref": "#/components/parameters/CursorParam" },
          { "$ref": "#/components/parameters/LimitParam" }
        ],
        "responses": {
          "200": {
            "description": "Matches retrieved successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/rfp/{id}": {
      "get": {
        "tags": ["RFP Matching"],
        "operationId": "getRfpMatchById",
        "summary": "Get RFP match by ID",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "200": {
            "description": "Match retrieved successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/exhibitor-slots": {
      "post": {
        "tags": ["Exhibitor Slots"],
        "operationId": "createExhibitorSlot",
        "summary": "Create an exhibitor slot",
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateExhibitorSlot"
        },
        "responses": {
          "201": {
            "description": "Exhibitor slot created successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" }
        }
      }
    },
    "/exhibitor-slots/listing/{listingId}": {
      "get": {
        "tags": ["Exhibitor Slots"],
        "operationId": "getExhibitorSlotsByListing",
        "summary": "Get exhibitor slots for a listing",
        "parameters": [
          {
            "name": "listingId",
            "in": "path",
            "required": true,
            "schema": { "type": "string", "format": "uuid" },
            "description": "Listing UUID"
          }
        ],
        "responses": {
          "200": {
            "description": "Exhibitor slots retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": { "type": "object", "additionalProperties": true }
                }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/exhibitor-slots/event/{eventId}": {
      "get": {
        "tags": ["Exhibitor Slots"],
        "operationId": "getExhibitorSlotsByEvent",
        "summary": "Get exhibitor slots for an event",
        "parameters": [
          {
            "name": "eventId",
            "in": "path",
            "required": true,
            "schema": { "type": "string", "format": "uuid" },
            "description": "Event UUID"
          }
        ],
        "responses": {
          "200": {
            "description": "Exhibitor slots retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": { "type": "object", "additionalProperties": true }
                }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/exhibitor-slots/{id}": {
      "get": {
        "tags": ["Exhibitor Slots"],
        "operationId": "getExhibitorSlotById",
        "summary": "Get exhibitor slot by ID",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "200": {
            "description": "Exhibitor slot retrieved successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      },
      "patch": {
        "tags": ["Exhibitor Slots"],
        "operationId": "updateExhibitorSlot",
        "summary": "Update exhibitor slot",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExhibitorSlotDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Exhibitor slot updated successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      },
      "delete": {
        "tags": ["Exhibitor Slots"],
        "operationId": "deleteExhibitorSlot",
        "summary": "Delete exhibitor slot",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "204": { "description": "Exhibitor slot deleted successfully" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/exhibitor-slots/{id}/availability": {
      "get": {
        "tags": ["Exhibitor Slots"],
        "operationId": "checkExhibitorSlotAvailability",
        "summary": "Check exhibitor slot availability",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "200": {
            "description": "Availability checked successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "available": { "type": "boolean" },
                    "slot": { "type": "object", "additionalProperties": true }
                  }
                }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/seller-preferences": {
      "get": {
        "tags": ["Seller Preferences"],
        "operationId": "getMySellerPreferences",
        "summary": "Get my seller preferences",
        "responses": {
          "200": {
            "description": "Preferences retrieved successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" }
        }
      },
      "patch": {
        "tags": ["Seller Preferences"],
        "operationId": "updateMySellerPreferences",
        "summary": "Update my seller preferences",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSellerPreferenceDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Preferences updated successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" }
        }
      }
    },
    "/seller-preferences/matching": {
      "get": {
        "tags": ["Seller Preferences"],
        "operationId": "findMatchingSellers",
        "summary": "Find matching sellers based on criteria",
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "schema": { "type": "string" },
            "description": "Filter by category"
          },
          {
            "name": "regions",
            "in": "query",
            "schema": { "type": "string" },
            "description": "Comma-separated regions"
          },
          {
            "name": "skills",
            "in": "query",
            "schema": { "type": "string" },
            "description": "Comma-separated skills"
          },
          {
            "name": "budgetMin",
            "in": "query",
            "schema": { "type": "number", "minimum": 0 },
            "description": "Minimum budget"
          },
          {
            "name": "budgetMax",
            "in": "query",
            "schema": { "type": "number", "minimum": 0 },
            "description": "Maximum budget"
          }
        ],
        "responses": {
          "200": {
            "description": "Matching sellers retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": { "type": "object", "additionalProperties": true }
                }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" }
        }
      }
    },
    "/service-tiers": {
      "post": {
        "tags": ["Service Tiers"],
        "operationId": "createServiceTier",
        "summary": "Create a service tier",
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateServiceTier"
        },
        "responses": {
          "201": {
            "description": "Service tier created successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" }
        }
      }
    },
    "/service-tiers/listing/{listingId}": {
      "get": {
        "tags": ["Service Tiers"],
        "operationId": "getServiceTiersByListing",
        "summary": "Get all service tiers for a listing",
        "parameters": [
          {
            "name": "listingId",
            "in": "path",
            "required": true,
            "schema": { "type": "string", "format": "uuid" },
            "description": "Listing UUID"
          }
        ],
        "responses": {
          "200": {
            "description": "Service tiers retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": { "type": "object", "additionalProperties": true }
                }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/service-tiers/{id}": {
      "get": {
        "tags": ["Service Tiers"],
        "operationId": "getServiceTierById",
        "summary": "Get service tier by ID",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "200": {
            "description": "Service tier retrieved successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      },
      "patch": {
        "tags": ["Service Tiers"],
        "operationId": "updateServiceTier",
        "summary": "Update service tier",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": { "$ref": "#/components/schemas/UpdateServiceTierDto" }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Service tier updated successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      },
      "delete": {
        "tags": ["Service Tiers"],
        "operationId": "deleteServiceTier",
        "summary": "Delete service tier",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "204": { "description": "Service tier deleted successfully" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/sponsorships": {
      "post": {
        "tags": ["Sponsorship Packages"],
        "operationId": "createSponsorshipPackage",
        "summary": "Create a sponsorship package",
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateSponsorshipPackage"
        },
        "responses": {
          "201": {
            "description": "Sponsorship package created successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" }
        }
      },
      "get": {
        "tags": ["Sponsorship Packages"],
        "operationId": "listSponsorshipPackages",
        "summary": "List sponsorship packages",
        "parameters": [
          { "$ref": "#/components/parameters/CursorParam" },
          { "$ref": "#/components/parameters/LimitParam" }
        ],
        "responses": {
          "200": {
            "description": "Sponsorship packages retrieved successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" }
        }
      }
    },
    "/sponsorships/{id}": {
      "get": {
        "tags": ["Sponsorship Packages"],
        "operationId": "getSponsorshipPackageById",
        "summary": "Get sponsorship package by ID",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "200": {
            "description": "Sponsorship package retrieved successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      },
      "patch": {
        "tags": ["Sponsorship Packages"],
        "operationId": "updateSponsorshipPackage",
        "summary": "Update sponsorship package",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSponsorshipPackageDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Sponsorship package updated successfully",
            "content": {
              "application/json": {
                "schema": { "type": "object", "additionalProperties": true }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      },
      "delete": {
        "tags": ["Sponsorship Packages"],
        "operationId": "deleteSponsorshipPackage",
        "summary": "Delete sponsorship package",
        "parameters": [{ "$ref": "#/components/parameters/UUIDPathParam" }],
        "responses": {
          "204": { "description": "Sponsorship package deleted successfully" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/products/{productId}/media/product-image": {
      "post": {
        "tags": ["Marketplace Media"],
        "operationId": "uploadProductImage",
        "summary": "Upload product image",
        "description": "Upload an image for a marketplace product. Supports JPEG, PNG, WebP, GIF. Max size: 10MB. Automatically generates 4 thumbnail sizes and CDN URL. Requires STUDENT+ subscription tier.",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": { "type": "string", "format": "uuid" },
            "description": "Product UUID"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "required": ["file"],
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary",
                    "description": "Image file (JPEG, PNG, WebP, GIF)"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Product image uploaded successfully",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/MediaAsset" }
              }
            }
          },
          "400": { "description": "Invalid file format or size" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "403": { "description": "Requires STUDENT+ subscription tier" }
        }
      }
    },
    "/products/{productId}/media/vendor-logo": {
      "post": {
        "tags": ["Marketplace Media"],
        "operationId": "uploadVendorLogo",
        "summary": "Upload vendor logo",
        "description": "Upload a logo for a marketplace vendor. Supports JPEG, PNG, WebP, GIF. Max size: 10MB. Requires STUDENT+ subscription tier.",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": { "type": "string", "format": "uuid" },
            "description": "Product UUID (vendor context)"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "required": ["file"],
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary",
                    "description": "Image file (JPEG, PNG, WebP, GIF)"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Vendor logo uploaded successfully",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/MediaAsset" }
              }
            }
          },
          "400": { "description": "Invalid file format or size" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "403": { "description": "Requires STUDENT+ subscription tier" }
        }
      }
    },
    "/products/{productId}/media/banner": {
      "post": {
        "tags": ["Marketplace Media"],
        "operationId": "uploadBanner",
        "summary": "Upload marketplace banner",
        "description": "Upload a promotional banner for the marketplace. Supports JPEG, PNG, WebP, GIF. Max size: 10MB. Requires PRO+ subscription tier.",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": { "type": "string", "format": "uuid" },
            "description": "Product UUID (marketplace context)"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "required": ["file"],
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary",
                    "description": "Image file (JPEG, PNG, WebP, GIF)"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Banner uploaded successfully",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/MediaAsset" }
              }
            }
          },
          "400": { "description": "Invalid file format or size" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "403": { "description": "Requires PRO+ subscription tier" }
        }
      }
    },
    "/products/{productId}/media/{assetId}": {
      "delete": {
        "tags": ["Marketplace Media"],
        "operationId": "deleteMedia",
        "summary": "Delete marketplace media asset",
        "description": "Delete a media asset (image or banner) from S3 and CDN.",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": { "type": "string", "format": "uuid" },
            "description": "Product UUID"
          },
          {
            "name": "assetId",
            "in": "path",
            "required": true,
            "schema": { "type": "string", "format": "uuid" },
            "description": "Media asset ID"
          }
        ],
        "responses": {
          "204": { "description": "Media asset deleted successfully" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/_internal/healthz": {
      "get": {
        "tags": ["Health"],
        "operationId": "healthz",
        "summary": "Liveness probe",
        "security": [],
        "responses": {
          "200": {
            "description": "Service is alive",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": { "type": "string", "example": "ok" },
                    "service": {
                      "type": "string",
                      "example": "marketplace-svc"
                    },
                    "timestamp": { "type": "string", "format": "date-time" }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/_internal/readyz": {
      "get": {
        "tags": ["Health"],
        "operationId": "readyz",
        "summary": "Readiness probe",
        "security": [],
        "responses": {
          "200": {
            "description": "Service is ready",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": { "type": "string", "example": "ok" },
                    "service": {
                      "type": "string",
                      "example": "marketplace-svc"
                    },
                    "timestamp": { "type": "string", "format": "date-time" },
                    "checks": {
                      "type": "object",
                      "properties": {
                        "database": {
                          "type": "object",
                          "properties": {
                            "status": { "type": "string" },
                            "available": { "type": "boolean" }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "503": { "description": "Service not ready (database unavailable)" }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "JWT token from auth-svc. Include as: Authorization: Bearer <token>"
      },
      "TenantId": {
        "type": "apiKey",
        "in": "header",
        "name": "x-tenant-id",
        "description": "Tenant UUID for multi-tenant isolation. Required on all authenticated endpoints."
      }
    },
    "parameters": {
      "UUIDPathParam": {
        "name": "id",
        "in": "path",
        "required": true,
        "schema": { "type": "string", "format": "uuid" },
        "description": "Resource UUID"
      },
      "CursorParam": {
        "name": "cursor",
        "in": "query",
        "required": false,
        "schema": { "type": "string" },
        "description": "Opaque pagination cursor from a previous response"
      },
      "LimitParam": {
        "name": "limit",
        "in": "query",
        "required": false,
        "schema": {
          "type": "integer",
          "minimum": 1,
          "maximum": 200,
          "default": 20
        },
        "description": "Number of items per page (1-200, default 20)"
      }
    },
    "requestBodies": {
      "CreateListing": {
        "required": true,
        "content": {
          "application/json": {
            "schema": { "$ref": "#/components/schemas/CreateListingDto" }
          }
        }
      },
      "UpdateListing": {
        "required": true,
        "content": {
          "application/json": {
            "schema": { "$ref": "#/components/schemas/UpdateListingDto" }
          }
        }
      },
      "CreateQuote": {
        "required": true,
        "content": {
          "application/json": {
            "schema": { "$ref": "#/components/schemas/CreateQuoteDto" }
          }
        }
      },
      "UpdateQuote": {
        "required": true,
        "content": {
          "application/json": {
            "schema": { "$ref": "#/components/schemas/UpdateQuoteDto" }
          }
        }
      },
      "CreateOrder": {
        "required": true,
        "content": {
          "application/json": {
            "schema": { "$ref": "#/components/schemas/CreateOrderDto" }
          }
        }
      },
      "CreateDispute": {
        "required": true,
        "content": {
          "application/json": {
            "schema": { "$ref": "#/components/schemas/CreateDisputeDto" }
          }
        }
      },
      "CreateCollaboration": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreateCollaborationRequestDto"
            }
          }
        }
      },
      "CreateCortexAsset": {
        "required": true,
        "content": {
          "application/json": {
            "schema": { "$ref": "#/components/schemas/CreateCortexAssetDto" }
          }
        }
      },
      "CreateExhibitorSlot": {
        "required": true,
        "content": {
          "application/json": {
            "schema": { "$ref": "#/components/schemas/CreateExhibitorSlotDto" }
          }
        }
      },
      "CreateServiceTier": {
        "required": true,
        "content": {
          "application/json": {
            "schema": { "$ref": "#/components/schemas/CreateServiceTierDto" }
          }
        }
      },
      "CreateSponsorshipPackage": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreateSponsorshipPackageDto"
            }
          }
        }
      }
    },
    "responses": {
      "BadRequest": {
        "description": "Invalid input data",
        "content": {
          "application/json": {
            "schema": { "$ref": "#/components/schemas/ErrorResponse" }
          }
        }
      },
      "Unauthorized": {
        "description": "Missing or invalid authentication token",
        "content": {
          "application/json": {
            "schema": { "$ref": "#/components/schemas/ErrorResponse" }
          }
        }
      },
      "Forbidden": {
        "description": "Insufficient permissions or subscription tier",
        "content": {
          "application/json": {
            "schema": { "$ref": "#/components/schemas/ErrorResponse" }
          }
        }
      },
      "NotFound": {
        "description": "Resource not found",
        "content": {
          "application/json": {
            "schema": { "$ref": "#/components/schemas/ErrorResponse" }
          }
        }
      }
    },
    "schemas": {
      "MarketplaceLane": {
        "type": "string",
        "enum": [
          "spotlight",
          "synapse",
          "squad",
          "meridian",
          "portico",
          "vendora",
          "poper",
          "nexus",
          "cortex"
        ],
        "description": "The 9 marketplace lanes"
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "example": "ERR_MARKETPLACE_NOT_FOUND"
              },
              "message": { "type": "string", "example": "Listing not found" },
              "http": { "type": "integer", "example": 404 }
            },
            "required": ["code", "message", "http"]
          }
        },
        "required": ["error"]
      },
      "CreateListingDto": {
        "type": "object",
        "required": ["category", "title"],
        "properties": {
          "category": { "$ref": "#/components/schemas/MarketplaceLane" },
          "title": {
            "type": "string",
            "minLength": 3,
            "maxLength": 255,
            "example": "Professional DJ for Corporate Events"
          },
          "description": { "type": "string", "maxLength": 10000 },
          "priceMin": { "type": "number", "minimum": 0, "example": 500 },
          "priceMax": { "type": "number", "minimum": 0, "example": 5000 },
          "pricingUnit": {
            "type": "string",
            "maxLength": 20,
            "example": "hourly"
          },
          "currency": { "type": "string", "maxLength": 3, "example": "USD" },
          "geoRegions": { "type": "array", "items": { "type": "string" } },
          "latitude": { "type": "number" },
          "longitude": { "type": "number" },
          "availabilitySchedule": {
            "type": "object",
            "additionalProperties": true
          },
          "tags": { "type": "array", "items": { "type": "string" } },
          "metadata": { "type": "object", "additionalProperties": true },
          "mediaAssetIds": { "type": "array", "items": { "type": "string" } }
        }
      },
      "UpdateListingDto": {
        "type": "object",
        "description": "All fields from CreateListingDto, all optional.",
        "properties": {
          "category": { "$ref": "#/components/schemas/MarketplaceLane" },
          "title": { "type": "string", "minLength": 3, "maxLength": 255 },
          "description": { "type": "string", "maxLength": 10000 },
          "priceMin": { "type": "number", "minimum": 0 },
          "priceMax": { "type": "number", "minimum": 0 },
          "pricingUnit": { "type": "string", "maxLength": 20 },
          "currency": { "type": "string", "maxLength": 3 },
          "geoRegions": { "type": "array", "items": { "type": "string" } },
          "latitude": { "type": "number" },
          "longitude": { "type": "number" },
          "availabilitySchedule": {
            "type": "object",
            "additionalProperties": true
          },
          "tags": { "type": "array", "items": { "type": "string" } },
          "metadata": { "type": "object", "additionalProperties": true },
          "mediaAssetIds": { "type": "array", "items": { "type": "string" } }
        }
      },
      "ListingResponse": {
        "type": "object",
        "properties": {
          "id": { "type": "string", "format": "uuid" },
          "tenantId": { "type": "string", "format": "uuid" },
          "category": { "$ref": "#/components/schemas/MarketplaceLane" },
          "sellerId": { "type": "string", "format": "uuid" },
          "sellerType": { "type": "string" },
          "title": { "type": "string" },
          "description": { "type": "string" },
          "status": { "type": "string" },
          "priceMin": { "type": "number" },
          "priceMax": { "type": "number" },
          "pricingUnit": { "type": "string" },
          "currency": { "type": "string" },
          "geoRegions": { "type": "array", "items": { "type": "string" } },
          "latitude": { "type": "number" },
          "longitude": { "type": "number" },
          "tags": { "type": "array", "items": { "type": "string" } },
          "mediaAssetIds": { "type": "array", "items": { "type": "string" } },
          "qualityScore": { "type": "number" },
          "averageRating": { "type": "number" },
          "totalReviews": { "type": "integer" },
          "totalBookings": { "type": "integer" },
          "totalViews": { "type": "integer" },
          "featuredUntil": { "type": "string", "format": "date-time" },
          "createdAt": { "type": "string", "format": "date-time" },
          "updatedAt": { "type": "string", "format": "date-time" }
        }
      },
      "PaginatedListingResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": { "$ref": "#/components/schemas/ListingResponse" }
          },
          "cursor": { "type": "string", "nullable": true },
          "hasMore": { "type": "boolean" }
        }
      },
      "CreateQuoteDto": {
        "type": "object",
        "required": ["listingId", "amount"],
        "properties": {
          "listingId": { "type": "string", "format": "uuid" },
          "rfpMatchId": { "type": "string", "format": "uuid" },
          "amount": { "type": "number", "minimum": 0, "example": 2500 },
          "currency": { "type": "string", "maxLength": 3, "example": "USD" },
          "proposalText": { "type": "string", "maxLength": 10000 },
          "proposalDetails": { "type": "object", "additionalProperties": true },
          "validUntil": { "type": "string", "format": "date-time" },
          "estimatedDeliveryDays": { "type": "integer", "minimum": 1 }
        }
      },
      "UpdateQuoteDto": {
        "type": "object",
        "description": "All fields from CreateQuoteDto, all optional.",
        "properties": {
          "listingId": { "type": "string", "format": "uuid" },
          "rfpMatchId": { "type": "string", "format": "uuid" },
          "amount": { "type": "number", "minimum": 0 },
          "currency": { "type": "string", "maxLength": 3 },
          "proposalText": { "type": "string", "maxLength": 10000 },
          "proposalDetails": { "type": "object", "additionalProperties": true },
          "validUntil": { "type": "string", "format": "date-time" },
          "estimatedDeliveryDays": { "type": "integer", "minimum": 1 }
        }
      },
      "QuoteResponse": {
        "type": "object",
        "properties": {
          "id": { "type": "string", "format": "uuid" },
          "tenantId": { "type": "string", "format": "uuid" },
          "listingId": { "type": "string", "format": "uuid" },
          "rfpMatchId": { "type": "string", "format": "uuid" },
          "responderId": { "type": "string", "format": "uuid" },
          "responderType": { "type": "string" },
          "status": { "type": "string" },
          "amount": { "type": "number" },
          "currency": { "type": "string" },
          "proposalText": { "type": "string" },
          "proposalDetails": { "type": "object", "additionalProperties": true },
          "negotiationHistory": {
            "type": "array",
            "items": { "type": "object", "additionalProperties": true }
          },
          "validUntil": { "type": "string", "format": "date-time" },
          "estimatedDeliveryDays": { "type": "integer" },
          "createdAt": { "type": "string", "format": "date-time" },
          "updatedAt": { "type": "string", "format": "date-time" }
        }
      },
      "PaginatedQuoteResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": { "$ref": "#/components/schemas/QuoteResponse" }
          },
          "cursor": { "type": "string", "nullable": true },
          "hasMore": { "type": "boolean" }
        }
      },
      "NegotiateQuoteDto": {
        "type": "object",
        "required": ["counterAmount"],
        "properties": {
          "counterAmount": { "type": "number", "minimum": 0, "example": 2000 },
          "message": { "type": "string", "maxLength": 5000 }
        }
      },
      "CreateOrderDto": {
        "type": "object",
        "required": ["quoteId"],
        "properties": {
          "quoteId": {
            "type": "string",
            "format": "uuid",
            "description": "Quote ID to create order from"
          },
          "metadata": { "type": "object", "additionalProperties": true }
        }
      },
      "OrderResponse": {
        "type": "object",
        "properties": {
          "id": { "type": "string", "format": "uuid" },
          "tenantId": { "type": "string", "format": "uuid" },
          "listingId": { "type": "string", "format": "uuid" },
          "quoteId": { "type": "string", "format": "uuid" },
          "buyerId": { "type": "string", "format": "uuid" },
          "sellerId": { "type": "string", "format": "uuid" },
          "category": { "$ref": "#/components/schemas/MarketplaceLane" },
          "status": { "type": "string" },
          "totalAmount": { "type": "number" },
          "platformFee": { "type": "number" },
          "sellerPayout": { "type": "number" },
          "currency": { "type": "string" },
          "escrowTransactionId": { "type": "string" },
          "deliverables": { "type": "object", "additionalProperties": true },
          "metadata": { "type": "object", "additionalProperties": true },
          "completedAt": { "type": "string", "format": "date-time" },
          "createdAt": { "type": "string", "format": "date-time" },
          "updatedAt": { "type": "string", "format": "date-time" }
        }
      },
      "PaginatedOrderResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": { "$ref": "#/components/schemas/OrderResponse" }
          },
          "cursor": { "type": "string", "nullable": true },
          "hasMore": { "type": "boolean" }
        }
      },
      "DeliverOrderDto": {
        "type": "object",
        "properties": {
          "deliverables": { "type": "object", "additionalProperties": true },
          "notes": { "type": "string", "maxLength": 2000 }
        }
      },
      "ReasonDto": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string",
            "description": "Optional reason for the action"
          }
        }
      },
      "CreateDisputeDto": {
        "type": "object",
        "required": ["orderId", "initiatedBy", "reason", "description"],
        "properties": {
          "orderId": { "type": "string", "format": "uuid" },
          "initiatedBy": {
            "type": "string",
            "enum": ["buyer", "seller"],
            "example": "buyer"
          },
          "reason": {
            "type": "string",
            "maxLength": 50,
            "example": "quality_issue"
          },
          "description": { "type": "string", "maxLength": 5000 },
          "evidence": {
            "type": "array",
            "items": { "type": "object", "additionalProperties": true }
          }
        }
      },
      "DisputeResponse": {
        "type": "object",
        "properties": {
          "id": { "type": "string", "format": "uuid" },
          "tenantId": { "type": "string", "format": "uuid" },
          "orderId": { "type": "string", "format": "uuid" },
          "initiatedBy": { "type": "string" },
          "reason": { "type": "string" },
          "description": { "type": "string" },
          "evidence": {
            "type": "array",
            "items": { "type": "object", "additionalProperties": true }
          },
          "resolution": { "type": "object", "additionalProperties": true },
          "status": { "type": "string" },
          "resolvedAt": { "type": "string", "format": "date-time" },
          "createdAt": { "type": "string", "format": "date-time" },
          "updatedAt": { "type": "string", "format": "date-time" }
        }
      },
      "PaginatedDisputeResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": { "$ref": "#/components/schemas/DisputeResponse" }
          },
          "cursor": { "type": "string", "nullable": true },
          "hasMore": { "type": "boolean" }
        }
      },
      "SubmitEvidenceDto": {
        "type": "object",
        "required": ["evidence"],
        "properties": {
          "evidence": { "type": "object", "additionalProperties": true }
        }
      },
      "ResolveDisputeDto": {
        "type": "object",
        "required": ["outcome"],
        "properties": {
          "outcome": { "type": "string", "example": "resolved_buyer" },
          "notes": { "type": "string", "maxLength": 5000 },
          "refundAmount": { "type": "number" }
        }
      },
      "CreateCollaborationRequestDto": {
        "type": "object",
        "required": ["targetSellerId", "collaborationType", "title"],
        "properties": {
          "targetSellerId": { "type": "string", "format": "uuid" },
          "listingId": { "type": "string", "format": "uuid" },
          "collaborationType": {
            "type": "string",
            "maxLength": 50,
            "example": "co_listing"
          },
          "title": {
            "type": "string",
            "maxLength": 255,
            "example": "Joint DJ + Light Show Package"
          },
          "description": { "type": "string", "maxLength": 5000 },
          "terms": { "type": "object", "additionalProperties": true },
          "expiresAt": { "type": "string", "format": "date-time" }
        }
      },
      "CreateCortexAssetDto": {
        "type": "object",
        "required": ["listingId", "assetType", "modelName"],
        "properties": {
          "listingId": { "type": "string", "format": "uuid" },
          "assetType": { "type": "string", "maxLength": 50, "example": "llm" },
          "modelName": {
            "type": "string",
            "maxLength": 255,
            "example": "GPT-4 Fine-tuned for Events"
          },
          "modelVersion": { "type": "string", "maxLength": 50 },
          "description": { "type": "string", "maxLength": 5000 },
          "endpointUrl": { "type": "string", "maxLength": 255 },
          "capabilities": { "type": "array", "items": { "type": "string" } },
          "benchmarks": { "type": "object", "additionalProperties": true },
          "costPerToken": { "type": "number", "minimum": 0 },
          "costPerRequest": { "type": "number", "minimum": 0 }
        }
      },
      "UpdateCortexAssetDto": {
        "type": "object",
        "description": "All fields from CreateCortexAssetDto, all optional.",
        "properties": {
          "listingId": { "type": "string", "format": "uuid" },
          "assetType": { "type": "string", "maxLength": 50 },
          "modelName": { "type": "string", "maxLength": 255 },
          "modelVersion": { "type": "string", "maxLength": 50 },
          "description": { "type": "string", "maxLength": 5000 },
          "endpointUrl": { "type": "string", "maxLength": 255 },
          "capabilities": { "type": "array", "items": { "type": "string" } },
          "benchmarks": { "type": "object", "additionalProperties": true },
          "costPerToken": { "type": "number", "minimum": 0 },
          "costPerRequest": { "type": "number", "minimum": 0 }
        }
      },
      "RecordUsageDto": {
        "type": "object",
        "required": ["tokensUsed", "costCredits"],
        "properties": {
          "tokensUsed": {
            "type": "number",
            "minimum": 0,
            "description": "Number of AI tokens consumed"
          },
          "costCredits": {
            "type": "number",
            "minimum": 0,
            "description": "Credit cost of the usage"
          }
        }
      },
      "CreateExhibitorSlotDto": {
        "type": "object",
        "required": ["listingId", "slotName", "slotType", "price"],
        "properties": {
          "listingId": { "type": "string", "format": "uuid" },
          "eventId": { "type": "string", "format": "uuid" },
          "slotName": {
            "type": "string",
            "maxLength": 100,
            "example": "Booth A1"
          },
          "slotType": {
            "type": "string",
            "maxLength": 50,
            "example": "standard"
          },
          "description": { "type": "string", "maxLength": 2000 },
          "areaSquareMeters": { "type": "number", "minimum": 0 },
          "location": { "type": "string", "maxLength": 100 },
          "price": { "type": "number", "minimum": 0, "example": 2500 },
          "currency": { "type": "string", "maxLength": 3, "example": "USD" },
          "amenities": { "type": "array", "items": { "type": "string" } },
          "floorplanCoordinates": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "UpdateExhibitorSlotDto": {
        "type": "object",
        "description": "All fields from CreateExhibitorSlotDto, all optional.",
        "properties": {
          "listingId": { "type": "string", "format": "uuid" },
          "eventId": { "type": "string", "format": "uuid" },
          "slotName": { "type": "string", "maxLength": 100 },
          "slotType": { "type": "string", "maxLength": 50 },
          "description": { "type": "string", "maxLength": 2000 },
          "areaSquareMeters": { "type": "number", "minimum": 0 },
          "location": { "type": "string", "maxLength": 100 },
          "price": { "type": "number", "minimum": 0 },
          "currency": { "type": "string", "maxLength": 3 },
          "amenities": { "type": "array", "items": { "type": "string" } },
          "floorplanCoordinates": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "UpdateSellerPreferenceDto": {
        "type": "object",
        "properties": {
          "preferredLanes": { "type": "array", "items": { "type": "string" } },
          "preferredRegions": {
            "type": "array",
            "items": { "type": "string" }
          },
          "skills": { "type": "array", "items": { "type": "string" } },
          "certifications": { "type": "array", "items": { "type": "string" } },
          "autoAcceptRfp": { "type": "boolean" },
          "minimumBudget": { "type": "number", "minimum": 0 },
          "maximumBudget": { "type": "number", "minimum": 0 },
          "preferredCurrency": {
            "type": "string",
            "maxLength": 3,
            "example": "USD"
          },
          "availabilitySchedule": {
            "type": "object",
            "additionalProperties": true
          },
          "notificationsEnabled": { "type": "boolean" },
          "notificationChannels": {
            "type": "array",
            "items": { "type": "string" }
          }
        }
      },
      "CreateServiceTierDto": {
        "type": "object",
        "required": ["listingId", "name", "price"],
        "properties": {
          "listingId": { "type": "string", "format": "uuid" },
          "name": {
            "type": "string",
            "maxLength": 100,
            "example": "Premium Package"
          },
          "description": { "type": "string", "maxLength": 2000 },
          "price": { "type": "number", "minimum": 0, "example": 1500 },
          "currency": { "type": "string", "maxLength": 3, "example": "USD" },
          "deliveryDays": { "type": "integer", "minimum": 1 },
          "features": { "type": "array", "items": { "type": "string" } },
          "sortOrder": { "type": "integer", "minimum": 0 },
          "isActive": { "type": "boolean", "default": true }
        }
      },
      "UpdateServiceTierDto": {
        "type": "object",
        "description": "All fields from CreateServiceTierDto, all optional.",
        "properties": {
          "listingId": { "type": "string", "format": "uuid" },
          "name": { "type": "string", "maxLength": 100 },
          "description": { "type": "string", "maxLength": 2000 },
          "price": { "type": "number", "minimum": 0 },
          "currency": { "type": "string", "maxLength": 3 },
          "deliveryDays": { "type": "integer", "minimum": 1 },
          "features": { "type": "array", "items": { "type": "string" } },
          "sortOrder": { "type": "integer", "minimum": 0 },
          "isActive": { "type": "boolean" }
        }
      },
      "CreateSponsorshipPackageDto": {
        "type": "object",
        "required": ["listingId", "name", "price"],
        "properties": {
          "listingId": { "type": "string", "format": "uuid" },
          "name": {
            "type": "string",
            "maxLength": 100,
            "example": "Gold Sponsor"
          },
          "description": { "type": "string", "maxLength": 2000 },
          "tier": { "type": "string", "maxLength": 30, "example": "gold" },
          "price": { "type": "number", "minimum": 0, "example": 10000 },
          "currency": { "type": "string", "maxLength": 3, "example": "USD" },
          "benefits": { "type": "array", "items": { "type": "string" } },
          "deliverables": { "type": "object", "additionalProperties": true },
          "maxSponsors": { "type": "integer", "minimum": 0 }
        }
      },
      "UpdateSponsorshipPackageDto": {
        "type": "object",
        "description": "All fields from CreateSponsorshipPackageDto, all optional.",
        "properties": {
          "listingId": { "type": "string", "format": "uuid" },
          "name": { "type": "string", "maxLength": 100 },
          "description": { "type": "string", "maxLength": 2000 },
          "tier": { "type": "string", "maxLength": 30 },
          "price": { "type": "number", "minimum": 0 },
          "currency": { "type": "string", "maxLength": 3 },
          "benefits": { "type": "array", "items": { "type": "string" } },
          "deliverables": { "type": "object", "additionalProperties": true },
          "maxSponsors": { "type": "integer", "minimum": 0 }
        }
      },
      "MediaAsset": {
        "type": "object",
        "properties": {
          "id": { "type": "string", "format": "uuid" },
          "url": { "type": "string", "format": "uri" },
          "cdnUrl": { "type": "string", "format": "uri" },
          "thumbnails": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "url": { "type": "string", "format": "uri" },
                "width": { "type": "integer" },
                "height": { "type": "integer" }
              }
            }
          },
          "tenantId": { "type": "string", "format": "uuid" },
          "uploadedBy": { "type": "string", "format": "uuid" },
          "metadata": { "type": "object", "additionalProperties": true },
          "createdAt": { "type": "string", "format": "date-time" }
        }
      }
    }
  }
}
