This commit is contained in:
seb
2026-10-04 11:25:17 +02:00
parent e5ff4ef307
commit 43fa8ea105
24 changed files with 1016 additions and 214 deletions

View File

@@ -3030,6 +3030,66 @@
"responses": {
"200": {
"description": "Deleted successfully"
},
"400": {
"description": "Bad request or no company selected",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Property name not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"409": {
"description": "Property name in use",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"500": {
"description": "Server error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
@@ -9435,6 +9495,194 @@
}
}
},
"/company/history": {
"get": {
"tags": [
"Company"
],
"summary": "Get company history",
"description": "Returns `companyhistory` rows for the selected company, newest first (`date` DESC, `id` DESC).\n",
"security": [
{
"cookieAuth": []
}
],
"x-markdown": "company/history.md",
"parameters": [
{
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"description": "Maximum number of entries to return (newest first). Omit for all entries."
}
],
"responses": {
"200": {
"description": "Company history (newest first)",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"history",
"truncated"
],
"properties": {
"history": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CompanyHistoryEntry"
}
},
"truncated": {
"type": "boolean",
"description": "True when a limit was applied and the result set was exactly that size (more entries may exist)."
}
}
}
}
}
},
"400": {
"description": "Invalid limit or no company selected",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"500": {
"description": "Server error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
},
"post": {
"tags": [
"Company"
],
"summary": "Add company history entry",
"description": "Appends an entry to `companyhistory` for the selected company.\n",
"security": [
{
"cookieAuth": []
}
],
"x-markdown": "company/addHistory.md",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"description": "History entry text or note"
}
}
}
}
}
},
"responses": {
"201": {
"description": "History entry created",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"history"
],
"properties": {
"history": {
"$ref": "#/components/schemas/CompanyHistoryEntry"
}
}
}
}
}
},
"400": {
"description": "Text required or no company selected",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"500": {
"description": "Server error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/company/{id}": {
"put": {
"tags": [
@@ -9837,40 +10085,14 @@
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"attributevalues"
],
"properties": {
"attributevalues": {
"type": "array",
"description": "Array of attribute value IDs (numbers) or objects with id or attributeValueId",
"items": {
"oneOf": [
{
"type": "integer",
"description": "Attribute value ID"
},
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "Attribute value ID"
},
"attributeValueId": {
"type": "integer",
"description": "Attribute value ID"
},
"sort": {
"type": "integer"
}
}
}
]
}
}
}
"type": "array",
"description": "Array of attribute value IDs. Array order defines sort.",
"items": {
"type": "integer"
},
"example": [
166
]
}
}
}
@@ -11305,6 +11527,66 @@
"responses": {
"200": {
"description": "Deleted successfully"
},
"400": {
"description": "Bad request or no company selected",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Attribute value not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"409": {
"description": "Attribute value in use",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"500": {
"description": "Server error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
@@ -11521,6 +11803,66 @@
"responses": {
"200": {
"description": "Deleted successfully"
},
"400": {
"description": "Bad request or no company selected",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Attribute name not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"409": {
"description": "Attribute name in use",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"500": {
"description": "Server error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
@@ -12339,40 +12681,14 @@
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"attributevalues"
],
"properties": {
"attributevalues": {
"type": "array",
"description": "Array of attribute value IDs (numbers) or objects with id or attributeValueId",
"items": {
"oneOf": [
{
"type": "integer",
"description": "Attribute value ID"
},
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "Attribute value ID"
},
"attributeValueId": {
"type": "integer",
"description": "Attribute value ID"
},
"sort": {
"type": "integer"
}
}
}
]
}
}
}
"type": "array",
"description": "Array of attribute value IDs. Array order defines sort.",
"items": {
"type": "integer"
},
"example": [
166
]
}
}
}
@@ -15711,6 +16027,30 @@
}
}
},
"CompanyHistoryEntry": {
"type": "object",
"required": [
"id",
"date",
"text"
],
"properties": {
"id": {
"type": "integer"
},
"companyuserId": {
"type": "integer",
"nullable": true
},
"date": {
"type": "string",
"format": "date-time"
},
"text": {
"type": "string"
}
}
},
"ArticleSupplierPrice": {
"type": "object",
"required": [