{
	"openapi": "3.0.3",
	"info": {
		"title": "MyTown — sw_e_ecommerce",
		"version": "1.0.0",
		"description": "Negozio online: catalogo, ricerca, carrello e ordini.\n\nDocumentazione generata automaticamente dal codice sorgente da `platform/tools/openapi-gen`.\nNon modificare a mano: le modifiche vanno fatte nei controller e la specifica va rigenerata.\n\nAutenticazione: token JWT nell’header `Authorization: Bearer <token>`, ottenuto da\n`POST /ws_spring_portal_login/api/login`. Gli endpoint marcati come pubblici non richiedono il token.",
		"license": {
			"name": "AGPL-3.0-or-later",
			"url": "https://www.gnu.org/licenses/agpl-3.0.html"
		}
	},
	"servers": [
		{
			"url": "/app.ecommerce/api",
			"description": "Stesso host, servizi esposti alla radice (Tomcat diretto)"
		},
		{
			"url": "/api/app.ecommerce/api",
			"description": "Stesso host, servizi dietro reverse proxy montato su /api (vedi platform/INSTALL.md)"
		},
		{
			"url": "{host}/app.ecommerce/api",
			"description": "Host esplicito",
			"variables": {
				"host": {
					"default": "http://localhost:8080",
					"description": "Schema e host del server applicativo"
				}
			}
		}
	],
	"tags": [
		{
			"name": "Cart",
			"description": "Endpoint di CartController (src/main/java/com/kondorcs/app/ecommerce/controller/CartController.java)"
		},
		{
			"name": "DeliveryAddress",
			"description": "Endpoint di DeliveryAddressController (src/main/java/com/kondorcs/app/ecommerce/controller/DeliveryAddressController.java)"
		},
		{
			"name": "FiltriSearch",
			"description": "Endpoint di FiltriSearchController (src/main/java/com/kondorcs/app/ecommerce/controller/FiltriSearchController.java)"
		},
		{
			"name": "Orders",
			"description": "Endpoint di OrdersController (src/main/java/com/kondorcs/app/ecommerce/controller/OrdersController.java)"
		},
		{
			"name": "Product",
			"description": "Endpoint di ProductController (src/main/java/com/kondorcs/app/ecommerce/controller/ProductController.java)"
		},
		{
			"name": "ProductImages",
			"description": "Endpoint di ProductImagesController (src/main/java/com/kondorcs/app/ecommerce/controller/ProductImagesController.java)"
		},
		{
			"name": "Translation",
			"description": "Endpoint di TranslationController (src/main/java/com/kondorcs/app/ecommerce/controller/TranslationController.java)"
		}
	],
	"paths": {
		"/api/cart/cart_commission_action": {
			"post": {
				"tags": [
					"Cart"
				],
				"summary": "cart commission action",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/CartController.java:85` — `CartController.cart_commission_action()`.",
				"operationId": "CartController.cart_commission_action",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/CartController.java:85",
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/CommissionCalc"
							}
						}
					}
				},
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "integer",
									"format": "int32"
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/cart/cart_commission_get/{cmp_id}": {
			"get": {
				"tags": [
					"Cart"
				],
				"summary": "cart commission get",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/CartController.java:74` — `CartController.cart_commission_get()`.",
				"operationId": "CartController.cart_commission_get",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/CartController.java:74",
				"parameters": [
					{
						"name": "cmp_id",
						"in": "path",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int32"
						}
					}
				],
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "array",
									"items": {
										"$ref": "#/components/schemas/CommissionCalc"
									}
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/cart/cart_get/{cmp_id}/{lang}/{use_price_point}": {
			"get": {
				"tags": [
					"Cart"
				],
				"summary": "cart get",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/CartController.java:96` — `CartController.cart_get()`.",
				"operationId": "CartController.cart_get",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/CartController.java:96",
				"parameters": [
					{
						"name": "cmp_id",
						"in": "path",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int32"
						}
					},
					{
						"name": "lang",
						"in": "path",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"name": "use_price_point",
						"in": "path",
						"required": true,
						"schema": {
							"type": "boolean"
						}
					}
				],
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/Cart"
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/cart/check_products/{cmp_id}": {
			"get": {
				"tags": [
					"Cart"
				],
				"summary": "check products",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/CartController.java:160` — `CartController.check_products()`.",
				"operationId": "CartController.check_products",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/CartController.java:160",
				"parameters": [
					{
						"name": "cmp_id",
						"in": "path",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int32"
						}
					}
				],
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "array",
									"items": {
										"$ref": "#/components/schemas/Product"
									}
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/cart/first_purchase_check_product/{cmp_id}": {
			"get": {
				"tags": [
					"Cart"
				],
				"summary": "first purchase check product",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/CartController.java:173` — `CartController.first_purchase_check_product()`.",
				"operationId": "CartController.first_purchase_check_product",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/CartController.java:173",
				"parameters": [
					{
						"name": "cmp_id",
						"in": "path",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int32"
						}
					}
				],
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "integer",
									"format": "int32"
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/cart/getConfigPayment/{cmp_id}": {
			"post": {
				"tags": [
					"Cart"
				],
				"summary": "get Config Payment",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/CartController.java:133` — `CartController.getConfigPayment()`.\n\nTipo di risposta non risolto dal generatore (`Object`).",
				"operationId": "CartController.getConfigPayment",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/CartController.java:133",
				"parameters": [
					{
						"name": "cmp_id",
						"in": "path",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int32"
						}
					}
				],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/Payment"
							}
						}
					}
				},
				"responses": {
					"200": {
						"description": "OK"
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/cart/operator_delivery_get/{cmp_id}": {
			"get": {
				"tags": [
					"Cart"
				],
				"summary": "operator delivery get",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/CartController.java:111` — `CartController.operator_delivery_get()`.",
				"operationId": "CartController.operator_delivery_get",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/CartController.java:111",
				"parameters": [
					{
						"name": "cmp_id",
						"in": "path",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int32"
						}
					}
				],
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "array",
									"items": {
										"$ref": "#/components/schemas/OperatorDelivery"
									}
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/cart/product_add": {
			"put": {
				"tags": [
					"Cart"
				],
				"summary": "product add",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/CartController.java:62` — `CartController.product_add()`.",
				"operationId": "CartController.product_add",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/CartController.java:62",
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/Product"
							}
						}
					}
				},
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "integer",
									"format": "int32"
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/cart/savePayment/{cmp_id}": {
			"post": {
				"tags": [
					"Cart"
				],
				"summary": "save Payment",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/CartController.java:146` — `CartController.savePayment()`.",
				"operationId": "CartController.savePayment",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/CartController.java:146",
				"parameters": [
					{
						"name": "cmp_id",
						"in": "path",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int32"
						}
					}
				],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/Payment"
							}
						}
					}
				},
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "integer",
									"format": "int64"
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/cart/type_payment_get/{cmp_id}": {
			"get": {
				"tags": [
					"Cart"
				],
				"summary": "type payment get",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/CartController.java:122` — `CartController.type_payment_get()`.",
				"operationId": "CartController.type_payment_get",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/CartController.java:122",
				"parameters": [
					{
						"name": "cmp_id",
						"in": "path",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int32"
						}
					}
				],
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "array",
									"items": {
										"$ref": "#/components/schemas/TypePayment"
									}
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/deliveryAddress/delivery_address_add": {
			"post": {
				"tags": [
					"DeliveryAddress"
				],
				"summary": "delivery address add",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/DeliveryAddressController.java:78` — `DeliveryAddressController.delivery_address_add()`.",
				"operationId": "DeliveryAddressController.delivery_address_add",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/DeliveryAddressController.java:78",
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/DeliveryAddress"
							}
						}
					}
				},
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "integer",
									"format": "int32"
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/deliveryAddress/delivery_address_del/{uda_id}": {
			"delete": {
				"tags": [
					"DeliveryAddress"
				],
				"summary": "delivery address del",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/DeliveryAddressController.java:102` — `DeliveryAddressController.delivery_address_del()`.",
				"operationId": "DeliveryAddressController.delivery_address_del",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/DeliveryAddressController.java:102",
				"parameters": [
					{
						"name": "uda_id",
						"in": "path",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int32"
						}
					}
				],
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "integer",
									"format": "int32"
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/deliveryAddress/delivery_address_get/{cmp_id}": {
			"post": {
				"tags": [
					"DeliveryAddress"
				],
				"summary": "delivery address get",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/DeliveryAddressController.java:47` — `DeliveryAddressController.delivery_address_get()`.",
				"operationId": "DeliveryAddressController.delivery_address_get",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/DeliveryAddressController.java:47",
				"parameters": [
					{
						"name": "cmp_id",
						"in": "path",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int32"
						}
					}
				],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/ObjectSearchDB"
							}
						}
					}
				},
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "array",
									"items": {
										"$ref": "#/components/schemas/DeliveryAddress"
									}
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/deliveryAddress/delivery_address_id/{uda_id}": {
			"get": {
				"tags": [
					"DeliveryAddress"
				],
				"summary": "delivery address id",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/DeliveryAddressController.java:61` — `DeliveryAddressController.delivery_address_id()`.",
				"operationId": "DeliveryAddressController.delivery_address_id",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/DeliveryAddressController.java:61",
				"parameters": [
					{
						"name": "uda_id",
						"in": "path",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int32"
						}
					}
				],
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/DeliveryAddress"
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/deliveryAddress/delivery_address_upd": {
			"post": {
				"tags": [
					"DeliveryAddress"
				],
				"summary": "delivery address upd",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/DeliveryAddressController.java:90` — `DeliveryAddressController.delivery_address_upd()`.",
				"operationId": "DeliveryAddressController.delivery_address_upd",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/DeliveryAddressController.java:90",
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/DeliveryAddress"
							}
						}
					}
				},
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "integer",
									"format": "int32"
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/orders/order_del/{ord_id}": {
			"delete": {
				"tags": [
					"Orders"
				],
				"summary": "order del",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/OrdersController.java:113` — `OrdersController.order_del()`.",
				"operationId": "OrdersController.order_del",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/OrdersController.java:113",
				"parameters": [
					{
						"name": "ord_id",
						"in": "path",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int32"
						}
					}
				],
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "integer",
									"format": "int32"
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/orders/orders_dett/{ord_id}/{section}": {
			"get": {
				"tags": [
					"Orders"
				],
				"summary": "orders dett",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/OrdersController.java:73` — `OrdersController.orders_dett()`.",
				"operationId": "OrdersController.orders_dett",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/OrdersController.java:73",
				"parameters": [
					{
						"name": "ord_id",
						"in": "path",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int64"
						}
					},
					{
						"name": "section",
						"in": "path",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/Order"
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/orders/orders_list": {
			"post": {
				"tags": [
					"Orders"
				],
				"summary": "orders list",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/OrdersController.java:60` — `OrdersController.orders_list()`.",
				"operationId": "OrdersController.orders_list",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/OrdersController.java:60",
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/OrderFilter"
							}
						}
					}
				},
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "array",
									"items": {
										"$ref": "#/components/schemas/Order"
									}
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/orders/orderstampa/{cmp_id}/{lang}/{ord_id}/{section}": {
			"get": {
				"tags": [
					"Orders"
				],
				"summary": "orderstampa",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/OrdersController.java:125` — `OrdersController.orderstampa()`.",
				"operationId": "OrdersController.orderstampa",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/OrdersController.java:125",
				"parameters": [
					{
						"name": "cmp_id",
						"in": "path",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int32"
						}
					},
					{
						"name": "lang",
						"in": "path",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"name": "ord_id",
						"in": "path",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int64"
						}
					},
					{
						"name": "section",
						"in": "path",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/StringObject"
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/orders/orderstate/{section}": {
			"get": {
				"tags": [
					"Orders"
				],
				"summary": "orderstate",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/OrdersController.java:89` — `OrdersController.orderstate()`.",
				"operationId": "OrdersController.orderstate",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/OrdersController.java:89",
				"parameters": [
					{
						"name": "section",
						"in": "path",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "array",
									"items": {
										"type": "integer",
										"format": "int32"
									}
								}
							}
						}
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/orders/upd_state_order/{ord_id}/{type_payment}": {
			"post": {
				"tags": [
					"Orders"
				],
				"summary": "upd state order",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/OrdersController.java:100` — `OrdersController.upd_state_order()`.",
				"operationId": "OrdersController.upd_state_order",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/OrdersController.java:100",
				"parameters": [
					{
						"name": "ord_id",
						"in": "path",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int64"
						}
					},
					{
						"name": "type_payment",
						"in": "path",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"type": "integer",
								"format": "int32"
							}
						}
					}
				},
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "integer",
									"format": "int32"
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/product/addPrdWishlist/{cmp_id}/{prd_id}": {
			"post": {
				"tags": [
					"Product"
				],
				"summary": "add Prd Wishlist",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/ProductController.java:114` — `ProductController.addPrdWishlist()`.",
				"operationId": "ProductController.addPrdWishlist",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/ProductController.java:114",
				"parameters": [
					{
						"name": "cmp_id",
						"in": "path",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int32"
						}
					},
					{
						"name": "prd_id",
						"in": "path",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int32"
						}
					}
				],
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "integer",
									"format": "int32"
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/product/deleteProduct/{prd_id}": {
			"post": {
				"tags": [
					"Product"
				],
				"summary": "delete Product",
				"description": "DELETE PRODUCT BY ID\n\nSorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/ProductController.java:90` — `ProductController.deleteProduct()`.",
				"operationId": "ProductController.deleteProduct",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/ProductController.java:90",
				"parameters": [
					{
						"name": "prd_id",
						"in": "path",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int32"
						}
					}
				],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"type": "array",
								"items": {
									"type": "integer",
									"format": "int32"
								}
							}
						}
					}
				},
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "integer",
									"format": "int32"
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/product/getProductById/{cmp_id}/{lang}/{prd_id}": {
			"get": {
				"tags": [
					"Product"
				],
				"summary": "get Product By Id",
				"description": "GET PRODUCT BY ID\n\nSorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/ProductController.java:57` — `ProductController.getProductById()`.",
				"operationId": "ProductController.getProductById",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/ProductController.java:57",
				"parameters": [
					{
						"name": "cmp_id",
						"in": "path",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int32"
						}
					},
					{
						"name": "lang",
						"in": "path",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"name": "prd_id",
						"in": "path",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int32"
						}
					}
				],
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/Product"
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/product/images/get/{prd_id}": {
			"get": {
				"tags": [
					"ProductImages"
				],
				"summary": "get Post Media",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/ProductImagesController.java:75` — `ProductImagesController.getPostMedia()`.",
				"operationId": "ProductImagesController.getPostMedia",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/ProductImagesController.java:75",
				"parameters": [
					{
						"name": "prd_id",
						"in": "path",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int32"
						}
					}
				],
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "array",
									"items": {
										"$ref": "#/components/schemas/ProductPhoto"
									}
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/product/images/remove/{prd_id}": {
			"post": {
				"tags": [
					"ProductImages"
				],
				"summary": "remove Post Media",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/ProductImagesController.java:87` — `ProductImagesController.removePostMedia()`.",
				"operationId": "ProductImagesController.removePostMedia",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/ProductImagesController.java:87",
				"parameters": [
					{
						"name": "prd_id",
						"in": "path",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int32"
						}
					}
				],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"type": "array",
								"items": {
									"type": "integer",
									"format": "int32"
								}
							}
						}
					}
				},
				"responses": {
					"200": {
						"description": "OK"
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/product/images/upload": {
			"post": {
				"tags": [
					"ProductImages"
				],
				"summary": "add Post Media Temp",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/ProductImagesController.java:45` — `ProductImagesController.addPostMediaTemp()`.",
				"operationId": "ProductImagesController.addPostMediaTemp",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/ProductImagesController.java:45",
				"parameters": [
					{
						"name": "chunkNumber",
						"in": "query",
						"required": false,
						"schema": {
							"type": "integer",
							"format": "int32",
							"default": "0"
						}
					},
					{
						"name": "totalChunks",
						"in": "query",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int32"
						}
					},
					{
						"name": "session",
						"in": "query",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"name": "file_type",
						"in": "query",
						"required": false,
						"schema": {
							"type": "string"
						}
					},
					{
						"name": "mode",
						"in": "query",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"required": true,
					"content": {
						"multipart/form-data": {
							"schema": {
								"type": "object",
								"properties": {
									"file": {
										"type": "string",
										"format": "binary"
									}
								}
							}
						}
					}
				},
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "string"
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/product/insertProduct": {
			"post": {
				"tags": [
					"Product"
				],
				"summary": "insert Product",
				"description": "NUOVO PRODOTTO\n\nSorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/ProductController.java:103` — `ProductController.insertProduct()`.",
				"operationId": "ProductController.insertProduct",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/ProductController.java:103",
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/Product"
							}
						}
					}
				},
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "integer",
									"format": "int32"
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/product/removePrdWishlist/{prd_id}": {
			"delete": {
				"tags": [
					"Product"
				],
				"summary": "remove Prd Wishlist",
				"description": "REMOVE FROM WISHLIST\n\nSorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/ProductController.java:127` — `ProductController.removePrdWishlist()`.",
				"operationId": "ProductController.removePrdWishlist",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/ProductController.java:127",
				"parameters": [
					{
						"name": "prd_id",
						"in": "path",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int32"
						}
					}
				],
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "integer",
									"format": "int32"
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/product/updateProduct/{lang}": {
			"post": {
				"tags": [
					"Product"
				],
				"summary": "update Product",
				"description": "UPDATE PRODUCT BY ID\n\nSorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/ProductController.java:75` — `ProductController.updateProduct()`.",
				"operationId": "ProductController.updateProduct",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/ProductController.java:75",
				"parameters": [
					{
						"name": "lang",
						"in": "path",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/Product"
							}
						}
					}
				},
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "integer",
									"format": "int32"
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/search/filtri/addTypePrd": {
			"post": {
				"tags": [
					"FiltriSearch"
				],
				"summary": "add Type",
				"description": "NUOVA TIPOLOGIA\n\nSorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/FiltriSearchController.java:70` — `FiltriSearchController.addType()`.",
				"operationId": "FiltriSearchController.addType",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/FiltriSearchController.java:70",
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/TypeWine"
							}
						}
					}
				},
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "integer",
									"format": "int32"
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/search/filtri/deleteTypePrd/{tpw_id}": {
			"delete": {
				"tags": [
					"FiltriSearch"
				],
				"summary": "delete Type Prd",
				"description": "DELETE TIPOLOGIA BY ID\n\nSorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/FiltriSearchController.java:82` — `FiltriSearchController.deleteTypePrd()`.",
				"operationId": "FiltriSearchController.deleteTypePrd",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/FiltriSearchController.java:82",
				"parameters": [
					{
						"name": "tpw_id",
						"in": "path",
						"required": true,
						"schema": {
							"type": "integer",
							"format": "int32"
						}
					}
				],
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "integer",
									"format": "int32"
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/search/filtri/get_typewine": {
			"post": {
				"tags": [
					"FiltriSearch"
				],
				"summary": "get Typewine",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/FiltriSearchController.java:54` — `FiltriSearchController.getTypewine()`.",
				"operationId": "FiltriSearchController.getTypewine",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/FiltriSearchController.java:54",
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/FiltriSearch"
							}
						}
					}
				},
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "array",
									"items": {
										"$ref": "#/components/schemas/FiltriSearch"
									}
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/search/filtri/getProducts": {
			"post": {
				"tags": [
					"FiltriSearch"
				],
				"summary": "get Products",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/FiltriSearchController.java:108` — `FiltriSearchController.getProducts()`.",
				"operationId": "FiltriSearchController.getProducts",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/FiltriSearchController.java:108",
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/ProductFilter"
							}
						}
					}
				},
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "array",
									"items": {
										"$ref": "#/components/schemas/Product"
									}
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/search/filtri/getProducts_min_max": {
			"post": {
				"tags": [
					"FiltriSearch"
				],
				"summary": "products min max",
				"description": "Sorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/FiltriSearchController.java:121` — `FiltriSearchController.products_min_max()`.",
				"operationId": "FiltriSearchController.products_min_max",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/FiltriSearchController.java:121",
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/ProductFilter"
							}
						}
					}
				},
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/MinMaxPrd"
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/search/filtri/updateTypePrd": {
			"post": {
				"tags": [
					"FiltriSearch"
				],
				"summary": "update Type Prd",
				"description": "UPDATE TIPOLOGIA BY ID\n\nSorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/FiltriSearchController.java:95` — `FiltriSearchController.updateTypePrd()`.",
				"operationId": "FiltriSearchController.updateTypePrd",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/FiltriSearchController.java:95",
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/TypeWine"
							}
						}
					}
				},
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "integer",
									"format": "int32"
								}
							}
						}
					},
					"400": {
						"description": "Richiesta non valida"
					},
					"401": {
						"description": "Non autenticato: token JWT assente, scaduto o non valido"
					},
					"500": {
						"description": "Errore interno del servizio",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ErrorResponse"
								}
							}
						}
					}
				}
			}
		},
		"/api/translate/{lang}": {
			"get": {
				"tags": [
					"Translation"
				],
				"summary": "translate",
				"description": "**Endpoint pubblico**: la catena di sicurezza dichiara `security=\"none\"` per `/api/translate/**`, quindi non richiede autenticazione.\n\nSorgente: `src/main/java/com/kondorcs/app/ecommerce/controller/TranslationController.java:33` — `TranslationController.translate()`.",
				"operationId": "TranslationController.translate",
				"x-source": "src/main/java/com/kondorcs/app/ecommerce/controller/TranslationController.java:33",
				"parameters": [
					{
						"name": "lang",
						"in": "path",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"type": "string"
								}
							}
						}
					},
					"500": {
						"description": "Errore interno del servizio"
					}
				},
				"security": []
			}
		}
	},
	"components": {
		"securitySchemes": {
			"bearerAuth": {
				"type": "http",
				"scheme": "bearer",
				"bearerFormat": "JWT",
				"description": "Token JWT emesso dal servizio di login del portale."
			}
		},
		"schemas": {
			"ErrorResponse": {
				"type": "object",
				"description": "Corpo di errore del gestore centralizzato delle eccezioni (kondorcs-utils, GlobalExceptionHandler). Le proprietà oltre a `requestId` sono presenti solo se il chiamante ha ruolo ADMIN.",
				"properties": {
					"timestamp": {
						"type": "string",
						"format": "date-time"
					},
					"status": {
						"type": "integer",
						"format": "int32"
					},
					"error": {
						"type": "string"
					},
					"message": {
						"type": "string"
					},
					"requestId": {
						"type": "string",
						"description": "Solo nella variante generica (utenti non ADMIN)."
					},
					"rootCause": {
						"type": "string",
						"description": "Solo per ADMIN."
					},
					"formattedRootCause": {
						"type": "string",
						"description": "Solo per ADMIN."
					},
					"location": {
						"type": "string",
						"description": "Solo per ADMIN: classe, metodo e riga."
					},
					"requestUri": {
						"type": "string",
						"description": "Solo per ADMIN."
					},
					"httpMethod": {
						"type": "string",
						"description": "Solo per ADMIN."
					},
					"user": {
						"type": "string",
						"description": "Solo per ADMIN."
					},
					"parameters": {
						"type": "object",
						"additionalProperties": {
							"type": "string"
						},
						"description": "Solo per ADMIN."
					},
					"contentType": {
						"type": "string",
						"description": "Solo per ADMIN."
					},
					"requestHeaders": {
						"type": "object",
						"additionalProperties": {
							"type": "string"
						},
						"description": "Solo per ADMIN."
					},
					"requestBody": {
						"type": "string",
						"description": "Solo per ADMIN, se la richiesta aveva un corpo."
					},
					"stackTrace": {
						"type": "string",
						"description": "Solo per ADMIN e solo se `log.db.write.stacktrace` è attivo."
					}
				}
			},
			"CommissionCalc": {
				"type": "object",
				"properties": {
					"id": {
						"type": "integer",
						"format": "int64"
					},
					"datains": {
						"type": "string",
						"format": "date-time"
					},
					"dataexpire": {
						"type": "string",
						"format": "date-time"
					},
					"datastart": {
						"type": "string",
						"format": "date-time"
					},
					"dataend": {
						"type": "string",
						"format": "date-time"
					},
					"price_condivino": {
						"type": "number",
						"format": "double"
					},
					"price_order_min": {
						"type": "number",
						"format": "double"
					},
					"price_point": {
						"type": "number",
						"format": "double"
					},
					"action": {
						"type": "string"
					},
					"fpr_id": {
						"type": "integer",
						"format": "int32"
					}
				}
			},
			"Cart": {
				"type": "object",
				"properties": {
					"id": {
						"type": "integer",
						"format": "int64"
					},
					"dtins": {
						"type": "string",
						"format": "date-time"
					},
					"dtexpire": {
						"type": "string",
						"format": "date-time"
					},
					"detail": {
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/CartDetail"
						}
					},
					"num_products": {
						"type": "integer",
						"format": "int32"
					},
					"cmp_id": {
						"type": "integer",
						"format": "int32"
					},
					"price_order": {
						"type": "number",
						"format": "double"
					},
					"price_payment": {
						"type": "number",
						"format": "double"
					},
					"price_point": {
						"type": "number",
						"format": "double"
					},
					"price_transport": {
						"type": "number",
						"format": "double"
					},
					"price_coupon": {
						"type": "number",
						"format": "double"
					},
					"price_condivino": {
						"type": "number",
						"format": "double"
					},
					"comm_calc": {
						"$ref": "#/components/schemas/CommissionCalc"
					},
					"use_price_point": {
						"type": "boolean"
					}
				}
			},
			"CartDetail": {
				"type": "object",
				"properties": {
					"id": {
						"type": "integer",
						"format": "int64"
					},
					"crt_id": {
						"type": "integer",
						"format": "int64"
					},
					"product": {
						"$ref": "#/components/schemas/Product"
					},
					"dtins": {
						"type": "string",
						"format": "date-time"
					}
				}
			},
			"Product": {
				"type": "object",
				"properties": {
					"orddet_number": {
						"type": "integer",
						"format": "int32"
					},
					"prd_quantity_sold": {
						"type": "integer",
						"format": "int32"
					},
					"orddet_ub_id": {
						"type": "integer",
						"format": "int32"
					},
					"totprice": {
						"type": "number",
						"format": "double"
					},
					"cmp_id": {
						"type": "integer",
						"format": "int32"
					},
					"min_stock": {
						"type": "integer",
						"format": "int32"
					},
					"qnt": {
						"type": "integer",
						"format": "int32"
					},
					"codicefiscale": {
						"type": "string"
					},
					"id": {
						"type": "integer",
						"format": "int32"
					},
					"tpbx_id": {
						"type": "integer",
						"format": "int32"
					},
					"vote_network": {
						"type": "integer",
						"format": "int32"
					},
					"vote_friends": {
						"type": "integer",
						"format": "int32"
					},
					"my_vote": {
						"type": "integer",
						"format": "int32"
					},
					"amount": {
						"type": "integer",
						"format": "int32"
					},
					"productionyear": {
						"type": "integer",
						"format": "int32"
					},
					"tpw_id": {
						"type": "integer",
						"format": "int32"
					},
					"isFavorite": {
						"type": "integer",
						"format": "int32"
					},
					"id_regione": {
						"type": "integer",
						"format": "int32"
					},
					"title": {
						"type": "string"
					},
					"shortdescription": {
						"type": "string"
					},
					"description": {
						"type": "string"
					},
					"comune": {
						"type": "string"
					},
					"regione": {
						"type": "string"
					},
					"tpw_color": {
						"type": "string"
					},
					"cost": {
						"type": "number",
						"format": "double"
					},
					"price": {
						"type": "number",
						"format": "double"
					},
					"tot_bottiglia": {
						"type": "number",
						"format": "double"
					},
					"tot_bottiglia_condivino": {
						"type": "number",
						"format": "double"
					},
					"margine_bottiglia": {
						"type": "number",
						"format": "double"
					},
					"alcohol_content": {
						"type": "number",
						"format": "double"
					},
					"photo": {
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/ProductPhoto"
						}
					},
					"vote_enabled": {
						"type": "boolean"
					},
					"isavailable": {
						"type": "boolean"
					},
					"isfirstpurchase": {
						"type": "boolean"
					},
					"single_purchase": {
						"type": "boolean"
					},
					"fav": {
						"type": "boolean"
					},
					"pos_del": {
						"type": "boolean"
					}
				}
			},
			"ProductPhoto": {
				"type": "object",
				"properties": {
					"prph_id": {
						"type": "integer",
						"format": "int32"
					},
					"prph_prd_id": {
						"type": "integer",
						"format": "int32"
					},
					"prph_tpph_id": {
						"type": "integer",
						"format": "int32"
					},
					"prph_path_photo_or": {
						"type": "string"
					},
					"prph_path_photo_md": {
						"type": "string"
					},
					"prph_path_photo_lg": {
						"type": "string"
					},
					"prph_path_photo_sm": {
						"type": "string"
					},
					"prph_title": {
						"type": "string"
					},
					"prph_description": {
						"type": "string"
					},
					"prph_shortdescription": {
						"type": "string"
					}
				}
			},
			"Payment": {
				"type": "object",
				"properties": {
					"cart": {
						"$ref": "#/components/schemas/Cart"
					},
					"operator_delivery_id": {
						"type": "integer",
						"format": "int32"
					},
					"type_payment_id": {
						"type": "integer",
						"format": "int32"
					},
					"state": {
						"type": "integer",
						"format": "int32"
					},
					"delivery_address": {
						"$ref": "#/components/schemas/DeliveryAddress"
					},
					"responsePaymentDetail": {
						"type": "string"
					},
					"idTransaction": {
						"type": "string"
					},
					"info": {
						"type": "string"
					},
					"evt_id": {
						"type": "integer",
						"format": "int32"
					}
				}
			},
			"DeliveryAddress": {
				"type": "object",
				"properties": {
					"uda_id": {
						"type": "integer",
						"format": "int32"
					},
					"usr_id": {
						"type": "integer",
						"format": "int32"
					},
					"cmp_id": {
						"type": "integer",
						"format": "int32"
					},
					"address": {
						"type": "string"
					},
					"number": {
						"type": "string"
					},
					"postal_code": {
						"type": "string"
					},
					"city_code": {
						"type": "string"
					},
					"firstname": {
						"type": "string"
					},
					"lastname": {
						"type": "string"
					},
					"city": {
						"type": "string"
					},
					"prov": {
						"type": "string"
					},
					"note": {
						"type": "string"
					},
					"isactive": {
						"type": "boolean"
					}
				}
			},
			"OperatorDelivery": {
				"type": "object",
				"properties": {
					"opc_id": {
						"type": "integer",
						"format": "int32"
					},
					"opc_desc": {
						"type": "string"
					}
				}
			},
			"TypePayment": {
				"type": "object",
				"properties": {
					"tpepay_id": {
						"type": "integer",
						"format": "int32"
					},
					"tpepay_desc": {
						"type": "string"
					},
					"tpepay_icon": {
						"type": "string"
					},
					"tpepay_active": {
						"type": "boolean"
					}
				}
			},
			"ObjectSearchDB": {
				"type": "object",
				"properties": {
					"desc": {
						"type": "string"
					},
					"where": {
						"type": "string"
					},
					"orderBy": {
						"type": "string"
					},
					"pagina": {
						"type": "integer",
						"format": "int32"
					},
					"righePagina": {
						"type": "integer",
						"format": "int32"
					},
					"where2": {
						"type": "string"
					},
					"TOTRIGHE": {
						"type": "integer",
						"format": "int64"
					},
					"dataInizio": {
						"type": "string"
					},
					"dataFine": {
						"type": "string"
					}
				}
			},
			"Order": {
				"type": "object",
				"properties": {
					"usr_id": {
						"type": "integer",
						"format": "int32"
					},
					"ord_cmp_id": {
						"type": "integer",
						"format": "int32"
					},
					"ord_id": {
						"type": "integer",
						"format": "int64"
					},
					"usr_displayname": {
						"type": "string"
					},
					"usr_lastname": {
						"type": "string"
					},
					"usr_firstname": {
						"type": "string"
					},
					"usr_username": {
						"type": "string"
					},
					"address": {
						"$ref": "#/components/schemas/DeliveryAddress"
					},
					"typePayment": {
						"$ref": "#/components/schemas/TypePayment"
					},
					"operatorDelivery": {
						"$ref": "#/components/schemas/OperatorDelivery"
					},
					"prod": {
						"$ref": "#/components/schemas/Product"
					},
					"ord_date": {
						"type": "string",
						"format": "date-time"
					},
					"ord_state": {
						"type": "integer",
						"format": "int32"
					},
					"ord_lbl_state": {
						"type": "string"
					},
					"ord_price": {
						"type": "number",
						"format": "double"
					},
					"ord_tpepay_detail": {
						"type": "string"
					},
					"ord_price_point": {
						"type": "number",
						"format": "double"
					},
					"ord_price_payment": {
						"type": "number",
						"format": "double"
					},
					"ord_price_transport": {
						"type": "number",
						"format": "double"
					},
					"ord_price_coupon": {
						"type": "number",
						"format": "double"
					},
					"ord_price_condivino": {
						"type": "number",
						"format": "double"
					},
					"detail": {
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/Product"
						}
					},
					"crtcom_id": {
						"type": "integer",
						"format": "int64"
					},
					"totalrows": {
						"type": "integer",
						"format": "int64"
					},
					"tot_qta": {
						"type": "integer",
						"format": "int64"
					},
					"tot_incasso": {
						"type": "number",
						"format": "double"
					},
					"view_detail": {
						"type": "boolean"
					},
					"ord_info": {
						"type": "string"
					},
					"ord_prog_ricevuta": {
						"type": "integer",
						"format": "int32"
					},
					"ord_payment_status": {
						"type": "string"
					},
					"translate_name": {
						"type": "string"
					},
					"translate_value": {
						"type": "string"
					}
				}
			},
			"OrderFilter": {
				"allOf": [
					{
						"$ref": "#/components/schemas/ObjectSearchDB"
					},
					{
						"type": "object",
						"properties": {
							"cmp_id": {
								"type": "integer",
								"format": "int32"
							},
							"mnf_id": {
								"type": "integer",
								"format": "int32"
							},
							"stato": {
								"type": "integer",
								"format": "int32"
							},
							"usr_id": {
								"type": "integer",
								"format": "int32"
							},
							"amount": {
								"type": "integer",
								"format": "int32"
							},
							"ord_date_da": {
								"type": "string",
								"format": "date-time"
							},
							"ord_date_a": {
								"type": "string",
								"format": "date-time"
							},
							"section": {
								"type": "string"
							},
							"nonassegnati": {
								"type": "boolean"
							}
						}
					}
				]
			},
			"StringObject": {
				"type": "object",
				"properties": {
					"res": {
						"type": "string"
					}
				}
			},
			"TypeWine": {
				"type": "object",
				"properties": {
					"tpw_id": {
						"type": "integer",
						"format": "int32"
					},
					"tpw_cmp_id": {
						"type": "integer",
						"format": "int32"
					},
					"tpw_name": {
						"type": "string"
					},
					"tpw_img_path_sm": {
						"type": "string"
					},
					"tpw_img_path_md": {
						"type": "string"
					},
					"tpw_img_path_lg": {
						"type": "string"
					},
					"tpw_color": {
						"type": "string"
					}
				}
			},
			"FiltriSearch": {
				"allOf": [
					{
						"$ref": "#/components/schemas/ObjectSearchDB"
					},
					{
						"type": "object",
						"properties": {
							"tpw_id": {
								"type": "integer",
								"format": "int32"
							},
							"tpw_cmp_id": {
								"type": "integer",
								"format": "int32"
							},
							"tpw_name": {
								"type": "string"
							},
							"tpw_description": {
								"type": "string"
							},
							"tpw_img_path_sm": {
								"type": "string"
							},
							"tpw_img_path_md": {
								"type": "string"
							},
							"tpw_img_path_lg": {
								"type": "string"
							},
							"tpw_qnt_product": {
								"type": "integer",
								"format": "int64"
							}
						}
					}
				]
			},
			"ProductFilter": {
				"allOf": [
					{
						"$ref": "#/components/schemas/ObjectSearchDB"
					},
					{
						"type": "object",
						"properties": {
							"type_wine": {
								"type": "integer",
								"format": "int32"
							},
							"type_native_wine": {
								"type": "integer",
								"format": "int32"
							},
							"regione": {
								"type": "integer",
								"format": "int32"
							},
							"cmp_id": {
								"type": "integer",
								"format": "int32"
							},
							"price_from": {
								"type": "number",
								"format": "double"
							},
							"price_to": {
								"type": "number",
								"format": "double"
							},
							"sezione": {
								"type": "string"
							},
							"description": {
								"type": "string"
							},
							"fav": {
								"type": "boolean"
							}
						}
					}
				]
			},
			"MinMaxPrd": {
				"type": "object",
				"properties": {
					"min": {
						"type": "number",
						"format": "float"
					},
					"max": {
						"type": "number",
						"format": "float"
					}
				}
			}
		}
	},
	"security": [
		{
			"bearerAuth": []
		}
	]
}
