file meta

This commit is contained in:
seb
2026-09-18 05:20:03 +02:00
parent bbd285109d
commit 8c19388901
6 changed files with 334 additions and 12 deletions

View File

@@ -4477,6 +4477,13 @@
"items": {
"$ref": "#/components/schemas/DeliveryLineInput"
}
},
"files": {
"type": "array",
"description": "Attached documents (pdf or txt) stored with the delivery\nand returned in `files` on every delivery response.\n",
"items": {
"$ref": "#/components/schemas/DeliveryFileInput"
}
}
},
"example": {
@@ -4492,6 +4499,13 @@
"net": 99.5,
"taxrate": 19
}
],
"files": [
{
"mimetype": "application/pdf",
"name": "delivery-note.pdf",
"content": "<base64 encoded content>"
}
]
}
}
@@ -4515,7 +4529,7 @@
}
},
"400": {
"description": "Invalid delivery, invalid lines, or no company selected",
"description": "Invalid delivery, invalid lines or files, or no company selected",
"content": {
"application/json": {
"schema": {
@@ -4545,7 +4559,7 @@
}
},
"404": {
"description": "Company, supplier, or article not found",
"description": "Company or supplier not found",
"content": {
"application/json": {
"schema": {
@@ -4685,6 +4699,13 @@
"items": {
"$ref": "#/components/schemas/DeliveryLineInput"
}
},
"files": {
"type": "array",
"description": "Appends attachments (pdf or txt) to the delivery.\nOmit to leave existing files unchanged.\n",
"items": {
"$ref": "#/components/schemas/DeliveryFileInput"
}
}
},
"example": {
@@ -4742,7 +4763,7 @@
}
},
"404": {
"description": "Delivery, supplier, article, or company not found",
"description": "Delivery, supplier, or company not found",
"content": {
"application/json": {
"schema": {
@@ -10003,7 +10024,8 @@
{
"type": "object",
"required": [
"lines"
"lines",
"files"
],
"properties": {
"lines": {
@@ -10011,11 +10033,143 @@
"items": {
"$ref": "#/components/schemas/DeliveryLine"
}
},
"files": {
"type": "array",
"description": "Attached documents (pdf/txt) for the delivery",
"items": {
"$ref": "#/components/schemas/DeliveryFile"
}
}
}
}
]
},
"DeliveryFile": {
"type": "object",
"description": "Attachment metadata (binary content is served via the attachment content endpoints)",
"required": [
"id",
"manifestId",
"fileId",
"sort",
"hash",
"mimetype",
"name",
"size"
],
"properties": {
"id": {
"type": "integer",
"description": "manifestattachment id"
},
"manifestId": {
"type": "integer"
},
"fileId": {
"type": "integer"
},
"sort": {
"type": "integer"
},
"hash": {
"type": "string",
"description": "SHA-256 of the file content"
},
"mimetype": {
"type": "string",
"description": "application/pdf or text/plain"
},
"name": {
"type": "string"
},
"size": {
"type": "integer"
},
"created": {
"type": "string",
"format": "date-time"
},
"modified": {
"type": "string",
"format": "date-time"
},
"thumbavif": {
"type": "string",
"format": "byte",
"nullable": true
},
"thumbx": {
"type": "integer",
"nullable": true
},
"thumby": {
"type": "integer",
"nullable": true
},
"meta": {
"type": "object",
"nullable": true,
"description": "String key/value metadata from the file row",
"additionalProperties": {
"type": "string"
}
}
}
},
"DeliveryFileInput": {
"type": "object",
"required": [
"mimetype",
"name",
"content"
],
"description": "Attachment input. Only application/pdf and text/plain are accepted.",
"properties": {
"mimetype": {
"type": "string",
"enum": [
"application/pdf",
"text/plain"
]
},
"name": {
"type": "string"
},
"content": {
"type": "string",
"format": "byte",
"description": "File content (base64-encoded in JSON)"
},
"sort": {
"type": "integer",
"description": "Optional sort order (defaults to appending after existing files)"
},
"size": {
"type": "integer",
"description": "Optional size in bytes (defaults to content length)"
},
"hash": {
"type": "string",
"description": "Optional SHA-256 (auto-computed if omitted)"
},
"created": {
"type": "string",
"format": "date-time"
},
"modified": {
"type": "string",
"format": "date-time"
},
"meta": {
"type": "object",
"description": "Optional string key/value metadata stored with the file",
"additionalProperties": {
"type": "string"
}
}
}
},
"ManifestLine": {
"type": "object",
"required": [