basePath: /api/v1 definitions: handlers.CreateOrderRequest: properties: items: items: properties: product_id: type: string required: - product_id type: object minItems: 1 type: array required: - items type: object handlers.CreateProductRequest: properties: description: type: string license_type: type: string price: minimum: 0 type: number product_type: enum: - track - pack - service type: string title: type: string track_id: description: UUID string type: string required: - price - product_type - title type: object marketplace.LicenseType: enum: - basic - premium - exclusive type: string x-enum-varnames: - LicenseBasic - LicensePremium - LicenseExclusive marketplace.Order: properties: buyer_id: type: string created_at: type: string currency: type: string id: type: string items: items: $ref: '#/definitions/marketplace.OrderItem' type: array payment_intent: description: Stripe PaymentIntent ID type: string status: description: pending, paid, failed, refunded type: string total_amount: type: number updated_at: type: string type: object marketplace.OrderItem: properties: id: type: string order_id: type: string price: type: number product_id: type: string type: object marketplace.Product: properties: created_at: type: string currency: type: string description: type: string id: type: string license_type: $ref: '#/definitions/marketplace.LicenseType' price: type: number product_type: description: '"track", "pack", "service"' type: string seller_id: type: string status: $ref: '#/definitions/marketplace.ProductStatus' title: type: string track_id: description: Liaison optionnelle avec un Track (si ProductType == "track") type: string updated_at: type: string type: object marketplace.ProductStatus: enum: - draft - active - archived type: string x-enum-varnames: - ProductStatusDraft - ProductStatusActive - ProductStatusArchived host: localhost:8080 info: contact: email: support@veza.app name: API Support url: http://www.veza.app/support description: Backend API for Veza platform. license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html termsOfService: http://swagger.io/terms/ title: Veza Backend API version: 1.2.0 paths: /api/v1/marketplace/download/{product_id}: get: consumes: - application/json description: Get a secure download URL for a purchased product parameters: - description: Product ID in: path name: product_id required: true type: string produces: - application/json responses: "200": description: OK schema: additionalProperties: type: string type: object "403": description: No license schema: additionalProperties: type: string type: object "404": description: Not Found schema: additionalProperties: type: string type: object security: - BearerAuth: [] summary: Get download URL tags: - Marketplace /api/v1/marketplace/orders: post: consumes: - application/json description: Purchase products parameters: - description: Order items in: body name: order required: true schema: $ref: '#/definitions/handlers.CreateOrderRequest' produces: - application/json responses: "201": description: Created schema: $ref: '#/definitions/marketplace.Order' "400": description: Bad Request schema: additionalProperties: type: string type: object "401": description: Unauthorized schema: additionalProperties: type: string type: object security: - BearerAuth: [] summary: Create a new order tags: - Marketplace /api/v1/marketplace/products: get: consumes: - application/json description: List marketplace products with filters parameters: - description: Product status in: query name: status type: string - description: Seller ID in: query name: seller_id type: string produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/marketplace.Product' type: array summary: List products tags: - Marketplace post: consumes: - application/json description: Create a product (Track, Pack, Service) for sale parameters: - description: Product info in: body name: product required: true schema: $ref: '#/definitions/handlers.CreateProductRequest' produces: - application/json responses: "201": description: Created schema: $ref: '#/definitions/marketplace.Product' "400": description: Bad Request schema: additionalProperties: type: string type: object "401": description: Unauthorized schema: additionalProperties: type: string type: object security: - BearerAuth: [] summary: Create a new product tags: - Marketplace securityDefinitions: BearerAuth: in: header name: Authorization type: apiKey swagger: "2.0"