997 lines
28 KiB
JSON
997 lines
28 KiB
JSON
{
|
|
"openapi": "3.0.1",
|
|
"info": {
|
|
"title": "Merchant",
|
|
"description": "API for e-commerce operations including stores, products, and orders",
|
|
"version": "1.0.0"
|
|
},
|
|
"servers": [{
|
|
"url": "http://localhost:8080",
|
|
"description": "Local development server"
|
|
},{
|
|
"url": "http://localhost:8080/openapi/example",
|
|
"description": "Local example server"
|
|
}],
|
|
"components": {
|
|
"schemas": {
|
|
"Store": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"example": "123e4567-e89b-12d3-a456-426614174000"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"example": "Tech Gadgets Store"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"example": "Premium electronics and gadgets retailer"
|
|
},
|
|
"contact": {
|
|
"type": "string",
|
|
"example": "contact@techgadgets.com"
|
|
},
|
|
"active": {
|
|
"type": "boolean",
|
|
"example": true
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"contact",
|
|
"active"
|
|
]
|
|
},
|
|
"ProductComponentTemplate": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"example": "123e4567-e89b-12d3-a456-426614174001"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"example": "4K Display Panel"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"example": "55-inch 4K UHD Display Panel"
|
|
},
|
|
"specs": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"example": {
|
|
"resolution": "3840x2160",
|
|
"refreshRate": "120Hz",
|
|
"panel_type": "OLED"
|
|
}
|
|
},
|
|
"price": {
|
|
"type": "number",
|
|
"format": "double",
|
|
"example": 599.99
|
|
},
|
|
"currency": {
|
|
"type": "string",
|
|
"pattern": "^[A-Z]{3}$",
|
|
"example": "USD"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"price",
|
|
"currency"
|
|
]
|
|
},
|
|
"ProductTemplate": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"example": "123e4567-e89b-12d3-a456-426614174002"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"example": "Smart TV 55-inch"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"example": "55-inch Smart TV with 4K Display"
|
|
},
|
|
"components": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ProductComponentTemplate"
|
|
},
|
|
"example": [
|
|
{
|
|
"id": "123e4567-e89b-12d3-a456-426614174001",
|
|
"name": "4K Display Panel",
|
|
"description": "55-inch 4K UHD Display Panel",
|
|
"specs": {
|
|
"resolution": "3840x2160",
|
|
"refreshRate": "120Hz"
|
|
},
|
|
"price": 599.99,
|
|
"currency": "USD"
|
|
}
|
|
]
|
|
},
|
|
"store_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"example": "123e4567-e89b-12d3-a456-426614174000"
|
|
},
|
|
"category": {
|
|
"type": "string",
|
|
"example": "Electronics"
|
|
},
|
|
"active": {
|
|
"type": "boolean",
|
|
"example": true
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"components",
|
|
"store_id",
|
|
"active"
|
|
]
|
|
},
|
|
"Product": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"example": "123e4567-e89b-12d3-a456-426614174003"
|
|
},
|
|
"template_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"example": "123e4567-e89b-12d3-a456-426614174002"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"example": "Smart TV 55-inch"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"example": "55-inch Smart TV with 4K Display"
|
|
},
|
|
"price": {
|
|
"type": "number",
|
|
"format": "double",
|
|
"example": 899.99
|
|
},
|
|
"currency": {
|
|
"type": "string",
|
|
"pattern": "^[A-Z]{3}$",
|
|
"example": "USD"
|
|
},
|
|
"store_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"example": "123e4567-e89b-12d3-a456-426614174000"
|
|
},
|
|
"stock_quantity": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"example": 50
|
|
},
|
|
"available": {
|
|
"type": "boolean",
|
|
"example": true
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"template_id",
|
|
"name",
|
|
"price",
|
|
"currency",
|
|
"store_id",
|
|
"stock_quantity",
|
|
"available"
|
|
]
|
|
},
|
|
"OrderItem": {
|
|
"type": "object",
|
|
"properties": {
|
|
"product_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"example": "123e4567-e89b-12d3-a456-426614174003"
|
|
},
|
|
"quantity": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"example": 2
|
|
},
|
|
"price": {
|
|
"type": "number",
|
|
"format": "double",
|
|
"example": 899.99
|
|
},
|
|
"currency": {
|
|
"type": "string",
|
|
"pattern": "^[A-Z]{3}$",
|
|
"example": "USD"
|
|
}
|
|
},
|
|
"required": [
|
|
"product_id",
|
|
"quantity",
|
|
"price",
|
|
"currency"
|
|
]
|
|
},
|
|
"Order": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"example": "123e4567-e89b-12d3-a456-426614174004"
|
|
},
|
|
"customer_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"example": "123e4567-e89b-12d3-a456-426614174005"
|
|
},
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/OrderItem"
|
|
},
|
|
"example": [
|
|
{
|
|
"product_id": "123e4567-e89b-12d3-a456-426614174003",
|
|
"quantity": 2,
|
|
"price": 899.99,
|
|
"currency": "USD"
|
|
}
|
|
]
|
|
},
|
|
"total_amount": {
|
|
"type": "number",
|
|
"format": "double",
|
|
"example": 1799.98
|
|
},
|
|
"currency": {
|
|
"type": "string",
|
|
"pattern": "^[A-Z]{3}$",
|
|
"example": "USD"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"enum": [
|
|
"pending",
|
|
"confirmed",
|
|
"shipped",
|
|
"delivered"
|
|
],
|
|
"example": "pending"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"example": "2024-02-10T10:30:00Z"
|
|
},
|
|
"updated_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"example": "2024-02-10T10:30:00Z"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"customer_id",
|
|
"items",
|
|
"total_amount",
|
|
"currency",
|
|
"status",
|
|
"created_at",
|
|
"updated_at"
|
|
]
|
|
},
|
|
"Error": {
|
|
"type": "object",
|
|
"properties": {
|
|
"code": {
|
|
"type": "integer",
|
|
"example": 404
|
|
},
|
|
"message": {
|
|
"type": "string",
|
|
"example": "Resource not found"
|
|
}
|
|
},
|
|
"required": [
|
|
"code",
|
|
"message"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"paths": {
|
|
"/stores": {
|
|
"post": {
|
|
"summary": "Create a new store",
|
|
"operationId": "createStore",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"example": "Tech Gadgets Store"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"example": "Premium electronics and gadgets retailer"
|
|
},
|
|
"contact": {
|
|
"type": "string",
|
|
"example": "contact@techgadgets.com"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"contact"
|
|
]
|
|
},
|
|
"examples": {
|
|
"newStore": {
|
|
"summary": "Create a new electronics store",
|
|
"value": {
|
|
"name": "Tech Gadgets Store",
|
|
"description": "Premium electronics and gadgets retailer",
|
|
"contact": "contact@techgadgets.com"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Store created successfully",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Store"
|
|
},
|
|
"example": {
|
|
"id": "123e4567-e89b-12d3-a456-426614174000",
|
|
"name": "Tech Gadgets Store",
|
|
"description": "Premium electronics and gadgets retailer",
|
|
"contact": "contact@techgadgets.com",
|
|
"active": true
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Invalid input",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Error"
|
|
},
|
|
"example": {
|
|
"code": 400,
|
|
"message": "Invalid store data provided"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/products/templates/components": {
|
|
"post": {
|
|
"summary": "Create a new product component template",
|
|
"operationId": "createProductComponentTemplate",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"specs": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"price": {
|
|
"type": "number"
|
|
},
|
|
"currency": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"price",
|
|
"currency"
|
|
]
|
|
},
|
|
"examples": {
|
|
"displayPanel": {
|
|
"summary": "Create a display panel component",
|
|
"value": {
|
|
"name": "4K Display Panel",
|
|
"description": "55-inch 4K UHD Display Panel",
|
|
"specs": {
|
|
"resolution": "3840x2160",
|
|
"refreshRate": "120Hz",
|
|
"panel_type": "OLED"
|
|
},
|
|
"price": 599.99,
|
|
"currency": "USD"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Component template created successfully",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProductComponentTemplate"
|
|
},
|
|
"example": {
|
|
"id": "123e4567-e89b-12d3-a456-426614174001",
|
|
"name": "4K Display Panel",
|
|
"description": "55-inch 4K UHD Display Panel",
|
|
"specs": {
|
|
"resolution": "3840x2160",
|
|
"refreshRate": "120Hz",
|
|
"panel_type": "OLED"
|
|
},
|
|
"price": 599.99,
|
|
"currency": "USD"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Invalid input",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Error"
|
|
},
|
|
"example": {
|
|
"code": 400,
|
|
"message": "Invalid component template data"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/products/templates": {
|
|
"post": {
|
|
"summary": "Create a new product template",
|
|
"operationId": "createProductTemplate",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"components": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
"store_id": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"category": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"components",
|
|
"store_id"
|
|
]
|
|
},
|
|
"examples": {
|
|
"smartTV": {
|
|
"summary": "Create a Smart TV template",
|
|
"value": {
|
|
"name": "Smart TV 55-inch",
|
|
"description": "55-inch Smart TV with 4K Display",
|
|
"components": [
|
|
"123e4567-e89b-12d3-a456-426614174001"
|
|
],
|
|
"store_id": "123e4567-e89b-12d3-a456-426614174000",
|
|
"category": "Electronics"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Product template created successfully",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProductTemplate"
|
|
},
|
|
"example": {
|
|
"id": "123e4567-e89b-12d3-a456-426614174002",
|
|
"name": "Smart TV 55-inch",
|
|
"description": "55-inch Smart TV with 4K Display",
|
|
"components": [
|
|
{
|
|
"id": "123e4567-e89b-12d3-a456-426614174001",
|
|
"name": "4K Display Panel",
|
|
"description": "55-inch 4K UHD Display Panel",
|
|
"specs": {
|
|
"resolution": "3840x2160",
|
|
"refreshRate": "120Hz"
|
|
},
|
|
"price": 599.99,
|
|
"currency": "USD"
|
|
}
|
|
],
|
|
"store_id": "123e4567-e89b-12d3-a456-426614174000",
|
|
"category": "Electronics",
|
|
"active": true
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Store not found",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Error"
|
|
},
|
|
"example": {
|
|
"code": 404,
|
|
"message": "Store not found"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/products": {
|
|
"post": {
|
|
"summary": "Create a new product from template",
|
|
"operationId": "createProduct",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"template_id": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"store_id": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"stock_quantity": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
}
|
|
},
|
|
"required": [
|
|
"template_id",
|
|
"store_id",
|
|
"stock_quantity"
|
|
]
|
|
},
|
|
"examples": {
|
|
"newProduct": {
|
|
"summary": "Create a new Smart TV product",
|
|
"value": {
|
|
"template_id": "123e4567-e89b-12d3-a456-426614174002",
|
|
"store_id": "123e4567-e89b-12d3-a456-426614174000",
|
|
"stock_quantity": 50
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Product created successfully",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Product"
|
|
},
|
|
"example": {
|
|
"id": "123e4567-e89b-12d3-a456-426614174003",
|
|
"template_id": "123e4567-e89b-12d3-a456-426614174002",
|
|
"name": "Smart TV 55-inch",
|
|
"description": "55-inch Smart TV with 4K Display",
|
|
"price": 899.99,
|
|
"currency": "USD",
|
|
"store_id": "123e4567-e89b-12d3-a456-426614174000",
|
|
"stock_quantity": 50,
|
|
"available": true
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Template or store not found",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Error"
|
|
},
|
|
"example": {
|
|
"code": 404,
|
|
"message": "Product template not found"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/orders": {
|
|
"post": {
|
|
"summary": "Create a new order",
|
|
"operationId": "createOrder",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"customer_id": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/OrderItem"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"customer_id",
|
|
"items"
|
|
]
|
|
},
|
|
"examples": {
|
|
"newOrder": {
|
|
"summary": "Create an order for two Smart TVs",
|
|
"value": {
|
|
"customer_id": "123e4567-e89b-12d3-a456-426614174005",
|
|
"items": [
|
|
{
|
|
"product_id": "123e4567-e89b-12d3-a456-426614174003",
|
|
"quantity": 2,
|
|
"price": 899.99,
|
|
"currency": "USD"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Order created successfully",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Order"
|
|
},
|
|
"example": {
|
|
"id": "123e4567-e89b-12d3-a456-426614174004",
|
|
"customer_id": "123e4567-e89b-12d3-a456-426614174005",
|
|
"items": [
|
|
{
|
|
"product_id": "123e4567-e89b-12d3-a456-426614174003",
|
|
"quantity": 2,
|
|
"price": 899.99,
|
|
"currency": "USD"
|
|
}
|
|
],
|
|
"total_amount": 1799.98,
|
|
"currency": "USD",
|
|
"status": "pending",
|
|
"created_at": "2024-02-10T10:30:00Z",
|
|
"updated_at": "2024-02-10T10:30:00Z"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Invalid input or insufficient stock",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Error"
|
|
},
|
|
"example": {
|
|
"code": 400,
|
|
"message": "Insufficient stock for product"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/orders/{orderId}/status": {
|
|
"put": {
|
|
"summary": "Update order status",
|
|
"operationId": "updateOrderStatus",
|
|
"parameters": [
|
|
{
|
|
"name": "orderId",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"example": "123e4567-e89b-12d3-a456-426614174004"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"status": {
|
|
"type": "string",
|
|
"enum": [
|
|
"pending",
|
|
"confirmed",
|
|
"shipped",
|
|
"delivered"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"status"
|
|
]
|
|
},
|
|
"examples": {
|
|
"updateStatus": {
|
|
"summary": "Update order to shipped status",
|
|
"value": {
|
|
"status": "shipped"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Order status updated successfully",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Order"
|
|
},
|
|
"example": {
|
|
"id": "123e4567-e89b-12d3-a456-426614174004",
|
|
"customer_id": "123e4567-e89b-12d3-a456-426614174005",
|
|
"items": [
|
|
{
|
|
"product_id": "123e4567-e89b-12d3-a456-426614174003",
|
|
"quantity": 2,
|
|
"price": 899.99,
|
|
"currency": "USD"
|
|
}
|
|
],
|
|
"total_amount": 1799.98,
|
|
"currency": "USD",
|
|
"status": "shipped",
|
|
"created_at": "2024-02-10T10:30:00Z",
|
|
"updated_at": "2024-02-10T10:35:00Z"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Order not found",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Error"
|
|
},
|
|
"example": {
|
|
"code": 404,
|
|
"message": "Order not found"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/stores/{storeId}/products": {
|
|
"get": {
|
|
"summary": "Get all products for a store",
|
|
"operationId": "getStoreProducts",
|
|
"parameters": [
|
|
{
|
|
"name": "storeId",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"example": "123e4567-e89b-12d3-a456-426614174000"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "List of store's products",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Product"
|
|
}
|
|
},
|
|
"example": [
|
|
{
|
|
"id": "123e4567-e89b-12d3-a456-426614174003",
|
|
"template_id": "123e4567-e89b-12d3-a456-426614174002",
|
|
"name": "Smart TV 55-inch",
|
|
"description": "55-inch Smart TV with 4K Display",
|
|
"price": 899.99,
|
|
"currency": "USD",
|
|
"store_id": "123e4567-e89b-12d3-a456-426614174000",
|
|
"stock_quantity": 48,
|
|
"available": true
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Store not found",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Error"
|
|
},
|
|
"example": {
|
|
"code": 404,
|
|
"message": "Store not found"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/stores/{storeId}/orders": {
|
|
"get": {
|
|
"summary": "Get all orders for a store's products",
|
|
"operationId": "getStoreOrders",
|
|
"parameters": [
|
|
{
|
|
"name": "storeId",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"example": "123e4567-e89b-12d3-a456-426614174000"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "List of orders containing store's products",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Order"
|
|
}
|
|
},
|
|
"example": [
|
|
{
|
|
"id": "123e4567-e89b-12d3-a456-426614174004",
|
|
"customer_id": "123e4567-e89b-12d3-a456-426614174005",
|
|
"items": [
|
|
{
|
|
"product_id": "123e4567-e89b-12d3-a456-426614174003",
|
|
"quantity": 2,
|
|
"price": 899.99,
|
|
"currency": "USD"
|
|
}
|
|
],
|
|
"total_amount": 1799.98,
|
|
"currency": "USD",
|
|
"status": "shipped",
|
|
"created_at": "2024-02-10T10:30:00Z",
|
|
"updated_at": "2024-02-10T10:35:00Z"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Store not found",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Error"
|
|
},
|
|
"example": {
|
|
"code": 404,
|
|
"message": "Store not found"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |