1627 lines
46 KiB
JavaScript
1627 lines
46 KiB
JavaScript
/**
|
||
* Shared OpenAPI components scanned by `scripts/generateApiDocs.js`.
|
||
* Route-specific paths live as `@openapi` blocks next to each handler.
|
||
*
|
||
* @openapi
|
||
* components:
|
||
* securitySchemes:
|
||
* cookieAuth:
|
||
* type: apiKey
|
||
* in: cookie
|
||
* name: token
|
||
* description: HTTP-only session cookie set by POST /auth/login
|
||
* bearerAuth:
|
||
* type: http
|
||
* scheme: bearer
|
||
* bearerFormat: JWT
|
||
* description: JWT token in Authorization header (Bearer <token>)
|
||
* schemas:
|
||
* Error:
|
||
* type: object
|
||
* required: [error]
|
||
* properties:
|
||
* error:
|
||
* type: string
|
||
* User:
|
||
* type: object
|
||
* required: [id, email, selectedCompanyId]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* email:
|
||
* type: string
|
||
* format: email
|
||
* selectedCompanyId:
|
||
* type: integer
|
||
* nullable: true
|
||
* picture:
|
||
* type: string
|
||
* description: Profile image as base64 (from stored picturebinary); omitted when unset
|
||
* Company:
|
||
* type: object
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* iso639:
|
||
* type: string
|
||
* name:
|
||
* type: string
|
||
* taxrate:
|
||
* type: number
|
||
* reducedtaxrate:
|
||
* type: number
|
||
* SuccessResponse:
|
||
* type: object
|
||
* required: [ok]
|
||
* properties:
|
||
* ok:
|
||
* type: boolean
|
||
* example: true
|
||
* CompanySetting:
|
||
* type: object
|
||
* required: [key, value]
|
||
* properties:
|
||
* key:
|
||
* type: string
|
||
* value:
|
||
* type: string
|
||
* nullable: true
|
||
* Category:
|
||
* type: object
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* parentId:
|
||
* type: integer
|
||
* nullable: true
|
||
* sort:
|
||
* type: integer
|
||
* name:
|
||
* type: string
|
||
* Unit:
|
||
* type: object
|
||
* description: Measurement unit with conversion factor to base SI unit (e.g. g -> kg, ml -> l)
|
||
* required: [si, basesi, basesifactor]
|
||
* properties:
|
||
* si:
|
||
* type: string
|
||
* description: Unit code identifier (e.g. "g", "kg", "ml", "l", "stk")
|
||
* basesi:
|
||
* type: string
|
||
* description: Base SI reference unit (e.g. "kg" for mass, "l" or "m3" for volume, "stk" for counts)
|
||
* basesifactor:
|
||
* type: number
|
||
* description: Conversion factor to base SI (1 si = basesifactor * basesi; e.g. 0.001 for g -> kg)
|
||
* symbol:
|
||
* type: string
|
||
* nullable: true
|
||
* name:
|
||
* type: string
|
||
* nullable: true
|
||
* ArticleSummary:
|
||
* type: object
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* categoryId:
|
||
* type: integer
|
||
* name:
|
||
* type: string
|
||
* sku:
|
||
* type: string
|
||
* track_stock:
|
||
* type: boolean
|
||
* Article:
|
||
* type: object
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* categoryId:
|
||
* type: integer
|
||
* name:
|
||
* type: string
|
||
* sku:
|
||
* type: string
|
||
* track_stock:
|
||
* type: boolean
|
||
* ArticleDetail:
|
||
* type: object
|
||
* description: Full article payload (unit, brand, categoryIds, photos, eans, prices, track_stock, …)
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* sku:
|
||
* type: string
|
||
* name:
|
||
* type: string
|
||
* slug:
|
||
* type: string
|
||
* desc:
|
||
* type: string
|
||
* nullable: true
|
||
* seo:
|
||
* type: string
|
||
* nullable: true
|
||
* track_stock:
|
||
* type: boolean
|
||
* unitamount:
|
||
* type: number
|
||
* nullable: true
|
||
* description: Net package content quantity measured in article unit (e.g. 500 for 500g, 0.75 for 0.75l)
|
||
* weight:
|
||
* type: number
|
||
* nullable: true
|
||
* description: Shipping weight in kg (must be >= 0)
|
||
* unit:
|
||
* $ref: '#/components/schemas/Unit'
|
||
* brand:
|
||
* $ref: '#/components/schemas/ArticleBrand'
|
||
* nullable: true
|
||
* categoryIds:
|
||
* type: array
|
||
* items:
|
||
* type: integer
|
||
* photos:
|
||
* type: array
|
||
* description: Attached article photos
|
||
* items:
|
||
* $ref: '#/components/schemas/ArticlePhoto'
|
||
* eans:
|
||
* type: array
|
||
* items:
|
||
* type: string
|
||
* prices:
|
||
* type: array
|
||
* description: Selling prices by customer group and quantity tier (field is net, not price)
|
||
* items:
|
||
* $ref: '#/components/schemas/ArticlePriceEntry'
|
||
* suppliers:
|
||
* type: array
|
||
* items:
|
||
* $ref: '#/components/schemas/ArticleSupplier'
|
||
* ArticlePhoto:
|
||
* type: object
|
||
* description: Article photo metadata
|
||
* required: [sort, fullHash, fullW, fullH, fullSize, thumbW, thumbH, thumbHash]
|
||
* properties:
|
||
* sort:
|
||
* type: integer
|
||
* description: Display sort order
|
||
* fullHash:
|
||
* type: string
|
||
* description: SHA-256 hex hash of the full AVIF image
|
||
* fullW:
|
||
* type: integer
|
||
* description: Width in pixels of the full image
|
||
* fullH:
|
||
* type: integer
|
||
* description: Height in pixels of the full image
|
||
* fullSize:
|
||
* type: integer
|
||
* description: Byte length of full AVIF
|
||
* thumbW:
|
||
* type: integer
|
||
* description: Width in pixels of the thumbnail image
|
||
* thumbH:
|
||
* type: integer
|
||
* description: Height in pixels of the thumbnail image
|
||
* thumbHash:
|
||
* type: string
|
||
* description: Base64 thumbhash preview
|
||
* ArticlePriceEntry:
|
||
* type: object
|
||
* description: Article selling price tier for a customer group (note price field is net, not price)
|
||
* required: [minmultiplier, net, taxRate, customergroupId]
|
||
* properties:
|
||
* minmultiplier:
|
||
* type: number
|
||
* description: Quantity threshold for volume pricing (defaults to 1)
|
||
* net:
|
||
* type: number
|
||
* description: Net selling price
|
||
* taxRate:
|
||
* type: number
|
||
* description: Tax rate in percent (e.g. 19 or 8.1)
|
||
* customergroupId:
|
||
* type: integer
|
||
* description: Customer group ID (e.g. company POS customer group)
|
||
* ArticleHistoryEntry:
|
||
* type: object
|
||
* required: [id, date, text]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* date:
|
||
* type: string
|
||
* format: date-time
|
||
* text:
|
||
* type: string
|
||
* 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: [net, taxId]
|
||
* properties:
|
||
* net:
|
||
* type: number
|
||
* description: Net purchase price
|
||
* taxId:
|
||
* type: integer
|
||
* description: Tax ID
|
||
* taxRate:
|
||
* type: number
|
||
* nullable: true
|
||
* description: Tax rate in percent
|
||
* ArticleSupplier:
|
||
* type: object
|
||
* required: [id, articleId, entityId, pu, sort]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* articleId:
|
||
* type: integer
|
||
* entityId:
|
||
* type: integer
|
||
* supplierName:
|
||
* type: string
|
||
* nullable: true
|
||
* sku:
|
||
* type: string
|
||
* nullable: true
|
||
* description: Supplier-specific SKU (Lieferanten-Art.-Nr.)
|
||
* pu:
|
||
* type: number
|
||
* description: Packaging unit (Verpackungseinheit / VPE)
|
||
* stock:
|
||
* type: number
|
||
* nullable: true
|
||
* description: Supplier stock
|
||
* sort:
|
||
* type: integer
|
||
* description: Display sort order
|
||
* priceId:
|
||
* type: integer
|
||
* nullable: true
|
||
* price:
|
||
* $ref: '#/components/schemas/ArticleSupplierPrice'
|
||
* nullable: true
|
||
* SupplierArticlePhoto:
|
||
* type: object
|
||
* required: [sort, fullHash, thumbW, thumbH, thumbHash]
|
||
* properties:
|
||
* sort:
|
||
* type: integer
|
||
* fullHash:
|
||
* type: string
|
||
* thumbW:
|
||
* type: integer
|
||
* thumbH:
|
||
* type: integer
|
||
* thumbHash:
|
||
* type: string
|
||
* SupplierArticleInfo:
|
||
* type: object
|
||
* required: [id, sku]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* sku:
|
||
* type: string
|
||
* name:
|
||
* type: string
|
||
* nullable: true
|
||
* slug:
|
||
* type: string
|
||
* nullable: true
|
||
* photos:
|
||
* type: array
|
||
* items:
|
||
* $ref: '#/components/schemas/SupplierArticlePhoto'
|
||
* eans:
|
||
* type: array
|
||
* items:
|
||
* type: string
|
||
* SupplierArticle:
|
||
* allOf:
|
||
* - $ref: '#/components/schemas/ArticleSupplier'
|
||
* - type: object
|
||
* required: [article]
|
||
* properties:
|
||
* article:
|
||
* $ref: '#/components/schemas/SupplierArticleInfo'
|
||
* BrandPic:
|
||
* type: object
|
||
* required: [id, sort, fullHash, thumbW, thumbH, thumbHash]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* sort:
|
||
* type: integer
|
||
* fullHash:
|
||
* type: string
|
||
* thumbW:
|
||
* type: integer
|
||
* thumbH:
|
||
* type: integer
|
||
* thumbHash:
|
||
* type: string
|
||
* Brand:
|
||
* type: object
|
||
* required: [id, name, pics]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* name:
|
||
* type: string
|
||
* gsprpinfo:
|
||
* type: string
|
||
* nullable: true
|
||
* pics:
|
||
* type: array
|
||
* description: Brand pictures sorted by sort
|
||
* items:
|
||
* $ref: '#/components/schemas/BrandPic'
|
||
* ArticleBrand:
|
||
* type: object
|
||
* required: [name]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* nullable: true
|
||
* name:
|
||
* type: string
|
||
* fullHash:
|
||
* type: string
|
||
* nullable: true
|
||
* thumbW:
|
||
* type: integer
|
||
* nullable: true
|
||
* thumbH:
|
||
* type: integer
|
||
* nullable: true
|
||
* thumbHash:
|
||
* type: string
|
||
* nullable: true
|
||
* StuecklisteItem:
|
||
* type: object
|
||
* required: [id, articleId, sku, name, count, sort]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* articleId:
|
||
* type: integer
|
||
* sku:
|
||
* type: string
|
||
* name:
|
||
* type: string
|
||
* count:
|
||
* type: integer
|
||
* sort:
|
||
* type: integer
|
||
* ArticleChild:
|
||
* type: object
|
||
* required: [id, sku, name, parentsort, attributeValueId, attributeValue]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* sku:
|
||
* type: string
|
||
* name:
|
||
* type: string
|
||
* parentsort:
|
||
* type: integer
|
||
* attributeValueId:
|
||
* type: integer
|
||
* attributeValue:
|
||
* type: string
|
||
* ArticleOptionItem:
|
||
* type: object
|
||
* required: [id, articleId, sku, name, count, sort, mandated]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* articleId:
|
||
* type: integer
|
||
* sku:
|
||
* type: string
|
||
* name:
|
||
* type: string
|
||
* count:
|
||
* type: integer
|
||
* sort:
|
||
* type: integer
|
||
* mandated:
|
||
* type: boolean
|
||
* CategoryTreeNode:
|
||
* type: object
|
||
* required: [id, sort, posterminalIds]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* parentId:
|
||
* type: integer
|
||
* nullable: true
|
||
* sort:
|
||
* type: integer
|
||
* name:
|
||
* type: string
|
||
* nullable: true
|
||
* slug:
|
||
* type: string
|
||
* nullable: true
|
||
* fullHash:
|
||
* type: string
|
||
* nullable: true
|
||
* thumbW:
|
||
* type: integer
|
||
* nullable: true
|
||
* thumbH:
|
||
* type: integer
|
||
* nullable: true
|
||
* thumbHash:
|
||
* type: string
|
||
* nullable: true
|
||
* posterminalIds:
|
||
* type: array
|
||
* items:
|
||
* type: integer
|
||
* CategoryArticle:
|
||
* type: object
|
||
* required: [id, sku, name, slug, track_stock, optionsCount, articleListCount, childCount]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* sku:
|
||
* type: string
|
||
* name:
|
||
* type: string
|
||
* slug:
|
||
* type: string
|
||
* net:
|
||
* type: number
|
||
* nullable: true
|
||
* taxRate:
|
||
* type: number
|
||
* nullable: true
|
||
* track_stock:
|
||
* type: boolean
|
||
* optionsCount:
|
||
* type: integer
|
||
* articleListCount:
|
||
* type: integer
|
||
* childCount:
|
||
* type: integer
|
||
* parentArticleId:
|
||
* type: integer
|
||
* nullable: true
|
||
* parentSku:
|
||
* type: string
|
||
* nullable: true
|
||
* fullHash:
|
||
* type: string
|
||
* nullable: true
|
||
* thumbW:
|
||
* type: integer
|
||
* nullable: true
|
||
* thumbH:
|
||
* type: integer
|
||
* nullable: true
|
||
* thumbHash:
|
||
* type: string
|
||
* nullable: true
|
||
* brand:
|
||
* $ref: '#/components/schemas/ArticleBrand'
|
||
* nullable: true
|
||
* NumberSequence:
|
||
* type: object
|
||
* required: [id, type, prefix, padding, next]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* type:
|
||
* type: string
|
||
* description: Sequence type (e.g. entity, article, delivery)
|
||
* prefix:
|
||
* type: string
|
||
* padding:
|
||
* type: integer
|
||
* description: Zero-padding length for the numeric part
|
||
* next:
|
||
* type: integer
|
||
* description: Next value to allocate
|
||
* Supplier:
|
||
* type: object
|
||
* required: [id, name, createdAt, updatedAt]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* name:
|
||
* type: string
|
||
* createdAt:
|
||
* type: string
|
||
* format: date-time
|
||
* updatedAt:
|
||
* type: string
|
||
* format: date-time
|
||
* Customergroup:
|
||
* type: object
|
||
* required: [id, name, sort]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* name:
|
||
* type: string
|
||
* sort:
|
||
* type: integer
|
||
* CustomergroupListItem:
|
||
* allOf:
|
||
* - $ref: '#/components/schemas/Customergroup'
|
||
* - type: object
|
||
* required: [editable]
|
||
* properties:
|
||
* editable:
|
||
* type: boolean
|
||
* description: |
|
||
* `false` for implicit groups `POS` and `Lieferanten` (name locked).
|
||
* `true` for user-created groups. Reorder all groups via
|
||
* `PUT /customergroup/order`.
|
||
* Entity:
|
||
* type: object
|
||
* required: [id, customergroupId, firstName, name, number, createdAt, updatedAt]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* customergroupId:
|
||
* type: integer
|
||
* firstName:
|
||
* type: string
|
||
* nullable: true
|
||
* name:
|
||
* type: string
|
||
* number:
|
||
* type: string
|
||
* nullable: true
|
||
* description: Customer number (null for suppliers)
|
||
* createdAt:
|
||
* type: string
|
||
* format: date-time
|
||
* updatedAt:
|
||
* type: string
|
||
* format: date-time
|
||
* EntityAddress:
|
||
* type: object
|
||
* required: [id, entityId, addressType]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* entityId:
|
||
* type: integer
|
||
* firstName:
|
||
* type: string
|
||
* nullable: true
|
||
* name:
|
||
* type: string
|
||
* nullable: true
|
||
* street:
|
||
* type: string
|
||
* nullable: true
|
||
* streetNumber:
|
||
* type: string
|
||
* nullable: true
|
||
* zip:
|
||
* type: string
|
||
* nullable: true
|
||
* city:
|
||
* type: string
|
||
* nullable: true
|
||
* county:
|
||
* type: string
|
||
* nullable: true
|
||
* addressType:
|
||
* type: string
|
||
* EntityContact:
|
||
* type: object
|
||
* required: [id, entityId, contactType, contact]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* entityId:
|
||
* type: integer
|
||
* contactType:
|
||
* type: string
|
||
* description: e.g. email, phone
|
||
* contact:
|
||
* type: string
|
||
* DeliverySummary:
|
||
* type: object
|
||
* required: [id, number, type, supplierId, date]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* number:
|
||
* type: string
|
||
* description: Auto-allocated via nextNumber('delivery')
|
||
* type:
|
||
* type: string
|
||
* enum: [delivery]
|
||
* supplierId:
|
||
* type: integer
|
||
* nullable: true
|
||
* description: manifest.entity_id
|
||
* externalNumber:
|
||
* type: string
|
||
* nullable: true
|
||
* description: User-supplied reference number
|
||
* date:
|
||
* type: string
|
||
* format: date-time
|
||
* createdAt:
|
||
* type: string
|
||
* format: date-time
|
||
* ledger:
|
||
* type: object
|
||
* description: Ledger booking summary for this delivery
|
||
* properties:
|
||
* totalPositions:
|
||
* type: integer
|
||
* description: Total number of position lines on this manifest
|
||
* completelyOnLedgerPositions:
|
||
* type: integer
|
||
* description: Number of positions whose quantity is fully transacted in the ledger
|
||
* DeliveryLine:
|
||
* type: object
|
||
* required: [id, sku, name, pu, amount, net, rebate, taxrate, comment]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* sku:
|
||
* type: string
|
||
* nullable: true
|
||
* name:
|
||
* type: string
|
||
* nullable: true
|
||
* description: Line item name or custom description
|
||
* pu:
|
||
* type: number
|
||
* description: Packaging unit (defaults to 1)
|
||
* amount:
|
||
* type: number
|
||
* net:
|
||
* type: number
|
||
* rebate:
|
||
* type: number
|
||
* taxrate:
|
||
* type: number
|
||
* description: Tax rate in percent (e.g. 19)
|
||
* comment:
|
||
* type: string
|
||
* nullable: true
|
||
* DeliveryLineInput:
|
||
* type: object
|
||
* required: [amount, net, taxrate]
|
||
* description: Line item input. Requires `sku` or `name`.
|
||
* properties:
|
||
* sku:
|
||
* type: string
|
||
* nullable: true
|
||
* description: SKU reference (sku or name is required)
|
||
* name:
|
||
* type: string
|
||
* nullable: true
|
||
* description: Line item name (sku or name is required)
|
||
* pu:
|
||
* type: number
|
||
* description: Packaging unit (defaults to 1)
|
||
* amount:
|
||
* type: number
|
||
* net:
|
||
* type: number
|
||
* taxrate:
|
||
* type: number
|
||
* description: Tax rate in percent (resolved via tax.ensure)
|
||
* rebate:
|
||
* type: number
|
||
* description: Defaults to 0
|
||
* comment:
|
||
* type: string
|
||
* nullable: true
|
||
* Delivery:
|
||
* allOf:
|
||
* - $ref: '#/components/schemas/DeliverySummary'
|
||
* - type: object
|
||
* required: [lines, files]
|
||
* properties:
|
||
* lines:
|
||
* type: array
|
||
* 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 (full binary content is served via `GET /delivery/{id}/file/{fileId}`). Thumbnails (AVIF) are generated server-side.
|
||
* 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
|
||
* description: Base64-encoded AVIF thumbnail generated server-side (null for text files)
|
||
* 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. Thumbnails are generated server-side and must not be supplied by the client.
|
||
* 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: [id, sku, name, pu, amount, net, rebate, taxrate, comment]
|
||
* description: Line shape for quote and order
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* sku:
|
||
* type: string
|
||
* nullable: true
|
||
* name:
|
||
* type: string
|
||
* nullable: true
|
||
* description: Line item name or custom description
|
||
* pu:
|
||
* type: number
|
||
* description: Packaging unit (defaults to 1)
|
||
* amount:
|
||
* type: number
|
||
* net:
|
||
* type: number
|
||
* rebate:
|
||
* type: number
|
||
* taxrate:
|
||
* type: number
|
||
* description: Tax rate in percent (e.g. 19)
|
||
* comment:
|
||
* type: string
|
||
* nullable: true
|
||
* ManifestLineInput:
|
||
* type: object
|
||
* required: [amount, net, taxrate]
|
||
* description: Line item input. Requires `sku` or `name`.
|
||
* properties:
|
||
* sku:
|
||
* type: string
|
||
* nullable: true
|
||
* description: SKU reference (sku or name is required)
|
||
* name:
|
||
* type: string
|
||
* nullable: true
|
||
* description: Line item name (sku or name is required)
|
||
* pu:
|
||
* type: number
|
||
* description: Packaging unit (defaults to 1)
|
||
* amount:
|
||
* type: number
|
||
* net:
|
||
* type: number
|
||
* taxrate:
|
||
* type: number
|
||
* description: Tax rate in percent (resolved via tax.ensure)
|
||
* rebate:
|
||
* type: number
|
||
* description: Defaults to 0
|
||
* comment:
|
||
* type: string
|
||
* nullable: true
|
||
* QuoteSummary:
|
||
* type: object
|
||
* required: [id, number, type, entityId, date]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* number:
|
||
* type: string
|
||
* type:
|
||
* type: string
|
||
* enum: [quote]
|
||
* entityId:
|
||
* type: integer
|
||
* nullable: true
|
||
* description: Customer (manifest.entity_id)
|
||
* date:
|
||
* type: string
|
||
* format: date-time
|
||
* description: Document date / valid-until
|
||
* createdAt:
|
||
* type: string
|
||
* format: date-time
|
||
* Quote:
|
||
* allOf:
|
||
* - $ref: '#/components/schemas/QuoteSummary'
|
||
* - type: object
|
||
* required: [lines]
|
||
* properties:
|
||
* lines:
|
||
* type: array
|
||
* items:
|
||
* $ref: '#/components/schemas/ManifestLine'
|
||
* OrderSummary:
|
||
* type: object
|
||
* required: [id, number, type, entityId, date]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* number:
|
||
* type: string
|
||
* type:
|
||
* type: string
|
||
* enum: [order]
|
||
* entityId:
|
||
* type: integer
|
||
* nullable: true
|
||
* description: Customer (manifest.entity_id)
|
||
* date:
|
||
* type: string
|
||
* format: date-time
|
||
* description: Document date / expected delivery
|
||
* createdAt:
|
||
* type: string
|
||
* format: date-time
|
||
* Order:
|
||
* allOf:
|
||
* - $ref: '#/components/schemas/OrderSummary'
|
||
* - type: object
|
||
* required: [lines]
|
||
* properties:
|
||
* lines:
|
||
* type: array
|
||
* items:
|
||
* $ref: '#/components/schemas/ManifestLine'
|
||
* ArticleImage:
|
||
* type: object
|
||
* required: [picId, sort, full, thumb, hash, thumbHash]
|
||
* properties:
|
||
* picId:
|
||
* type: integer
|
||
* sort:
|
||
* type: integer
|
||
* full:
|
||
* type: object
|
||
* required: [w, h, size]
|
||
* properties:
|
||
* w:
|
||
* type: integer
|
||
* h:
|
||
* type: integer
|
||
* size:
|
||
* type: integer
|
||
* description: Byte length of full AVIF (as-is when already AVIF ≤1000×1000)
|
||
* thumb:
|
||
* type: object
|
||
* required: [w, h]
|
||
* properties:
|
||
* w:
|
||
* type: integer
|
||
* h:
|
||
* type: integer
|
||
* hash:
|
||
* type: string
|
||
* description: SHA-256 hex of full image bytes
|
||
* thumbHash:
|
||
* type: string
|
||
* description: Base64 thumbhash of thumb preview
|
||
* LedgerEntry:
|
||
* type: object
|
||
* required: [id, manifestarticle_id, transaction_type, amount, transaction_text, hash_version]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* manifestarticle_id:
|
||
* type: integer
|
||
* description: References manifestarticle.id
|
||
* transaction_type:
|
||
* type: string
|
||
* description: Transaction identifier / type
|
||
* amount:
|
||
* type: number
|
||
* description: Movement amount
|
||
* transaction_text:
|
||
* type: string
|
||
* description: Transaction memo / details
|
||
* hash_version:
|
||
* type: integer
|
||
* description: Algorithm version (1)
|
||
* prev_hash:
|
||
* type: string
|
||
* description: Previous entry SHA-512 hex or initial seed hash
|
||
* sku:
|
||
* type: string
|
||
* nullable: true
|
||
* description: SKU from referenced manifestarticle (present in query views)
|
||
* created_at:
|
||
* type: string
|
||
* format: date-time
|
||
* description: Timestamp when the row was created
|
||
* LedgerEntryInput:
|
||
* type: object
|
||
* required: [manifestarticle_id, transaction_type, amount, transaction_text]
|
||
* properties:
|
||
* manifestarticle_id:
|
||
* type: integer
|
||
* description: References manifestarticle.id
|
||
* transaction_type:
|
||
* type: string
|
||
* description: Transaction identifier / type (max 100 chars)
|
||
* amount:
|
||
* type: number
|
||
* description: Movement amount
|
||
* transaction_text:
|
||
* type: string
|
||
* description: Transaction memo / details
|
||
* ModelConversation:
|
||
* type: object
|
||
* required: [id, companyuser_id, provider, model, created_at, updated_at, state]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* companyuser_id:
|
||
* type: integer
|
||
* provider:
|
||
* type: string
|
||
* model:
|
||
* type: string
|
||
* created_at:
|
||
* type: string
|
||
* updated_at:
|
||
* type: string
|
||
* state:
|
||
* type: string
|
||
* enum: [idle, busy]
|
||
* description: Messages can only be posted while `idle`
|
||
* ModelConversationCreateInput:
|
||
* type: object
|
||
* required: [provider, model]
|
||
* properties:
|
||
* provider:
|
||
* type: string
|
||
* model:
|
||
* type: string
|
||
* ModelMessage:
|
||
* type: object
|
||
* required: [id, conversation_id, created_at, role, message]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* conversation_id:
|
||
* type: integer
|
||
* created_at:
|
||
* type: string
|
||
* role:
|
||
* type: string
|
||
* enum: [system, user, assistant, tool, reasoning, usage]
|
||
* message:
|
||
* type: string
|
||
* ModelMessageCreateInput:
|
||
* type: object
|
||
* properties:
|
||
* message:
|
||
* type: string
|
||
* description: User message text or fallback content
|
||
* role:
|
||
* type: string
|
||
* enum: [user, tool]
|
||
* description: Message role ('user' or 'tool')
|
||
* tool_call_id:
|
||
* type: string
|
||
* description: Target tool call ID when responding to a tool like ask_user
|
||
* content:
|
||
* description: Tool response content payload
|
||
* answer:
|
||
* description: Shorthand answer for ask_user response
|
||
* Account:
|
||
* type: object
|
||
* required: [id, companyId, type, name]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* companyId:
|
||
* type: integer
|
||
* type:
|
||
* type: string
|
||
* name:
|
||
* type: string
|
||
* Payment:
|
||
* type: object
|
||
* required: [id, accountId, manifestId, type, amount]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* accountId:
|
||
* type: integer
|
||
* manifestId:
|
||
* type: integer
|
||
* type:
|
||
* type: string
|
||
* amount:
|
||
* type: number
|
||
* Shipping:
|
||
* type: object
|
||
* required: [id, manifestId, number, type, state]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* manifestId:
|
||
* type: integer
|
||
* number:
|
||
* type: string
|
||
* description: Shipping number from the `shipping` number sequence
|
||
* type:
|
||
* type: string
|
||
* state:
|
||
* type: string
|
||
* Package:
|
||
* type: object
|
||
* required: [id, shippingId, entityaddressId, number, type, state]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* shippingId:
|
||
* type: integer
|
||
* entityaddressId:
|
||
* type: integer
|
||
* number:
|
||
* type: string
|
||
* description: Package number from the `package` number sequence
|
||
* type:
|
||
* type: string
|
||
* state:
|
||
* type: string
|
||
* details:
|
||
* type: string
|
||
* nullable: true
|
||
* Printer:
|
||
* type: object
|
||
* required: [id, company_id, address, type, sort]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* company_id:
|
||
* type: integer
|
||
* address:
|
||
* type: string
|
||
* description: Printer network address or hostname
|
||
* type:
|
||
* type: string
|
||
* enum: [esc/pos, zpl, ipp]
|
||
* description: Printer type ("esc/pos" for lines, "zpl" for pages, or "ipp")
|
||
* model:
|
||
* type: string
|
||
* nullable: true
|
||
* description: Printer model name
|
||
* serial:
|
||
* type: string
|
||
* nullable: true
|
||
* description: Printer serial number
|
||
* sort:
|
||
* type: integer
|
||
* description: Sort order
|
||
* desc:
|
||
* type: string
|
||
* nullable: true
|
||
* description: Printer description
|
||
* PrinterCreateInput:
|
||
* type: object
|
||
* required: [address, type]
|
||
* properties:
|
||
* address:
|
||
* type: string
|
||
* description: Printer network address or hostname
|
||
* type:
|
||
* type: string
|
||
* enum: [esc/pos, zpl, ipp]
|
||
* description: Printer type ("esc/pos" for lines, "zpl" for pages, or "ipp")
|
||
* model:
|
||
* type: string
|
||
* nullable: true
|
||
* serial:
|
||
* type: string
|
||
* nullable: true
|
||
* sort:
|
||
* type: integer
|
||
* desc:
|
||
* type: string
|
||
* nullable: true
|
||
* PrinterUpdateInput:
|
||
* type: object
|
||
* properties:
|
||
* address:
|
||
* type: string
|
||
* type:
|
||
* type: string
|
||
* enum: [esc/pos, zpl, ipp]
|
||
* model:
|
||
* type: string
|
||
* nullable: true
|
||
* serial:
|
||
* type: string
|
||
* nullable: true
|
||
* sort:
|
||
* type: integer
|
||
* desc:
|
||
* type: string
|
||
* nullable: true
|
||
* Posterminal:
|
||
* type: object
|
||
* required: [id, name]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* name:
|
||
* type: string
|
||
* pairingpin:
|
||
* type: string
|
||
* nullable: true
|
||
* token:
|
||
* type: string
|
||
* nullable: true
|
||
* pairedAt:
|
||
* type: string
|
||
* nullable: true
|
||
* clientserial:
|
||
* type: string
|
||
* nullable: true
|
||
* rootCategoryId:
|
||
* type: integer
|
||
* nullable: true
|
||
* syncRootArticles:
|
||
* type: boolean
|
||
* lastseenAt:
|
||
* type: string
|
||
* nullable: true
|
||
* updatedAt:
|
||
* type: string
|
||
* nullable: true
|
||
* categoryIds:
|
||
* type: array
|
||
* items:
|
||
* type: integer
|
||
* LabelObject:
|
||
* type: object
|
||
* required: [id, type, x, y]
|
||
* properties:
|
||
* id:
|
||
* type: string
|
||
* type:
|
||
* type: string
|
||
* enum: [textbox, barcode, png]
|
||
* x:
|
||
* type: number
|
||
* y:
|
||
* type: number
|
||
* w:
|
||
* type: number
|
||
* h:
|
||
* type: number
|
||
* text:
|
||
* type: string
|
||
* font:
|
||
* type: string
|
||
* fontSize:
|
||
* type: number
|
||
* barcodeFormat:
|
||
* type: string
|
||
* enum: [EAN8, EAN13, CODE128, QR]
|
||
* LabelContent:
|
||
* type: object
|
||
* required: [objects]
|
||
* properties:
|
||
* objects:
|
||
* type: array
|
||
* description: Canvas label editor items
|
||
* items:
|
||
* $ref: '#/components/schemas/LabelObject'
|
||
* LabelTemplateSummary:
|
||
* type: object
|
||
* required: [id, name, width, height, dpi, type]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* name:
|
||
* type: string
|
||
* width:
|
||
* type: number
|
||
* height:
|
||
* type: number
|
||
* dpi:
|
||
* type: integer
|
||
* type:
|
||
* type: string
|
||
* thumb:
|
||
* type: string
|
||
* nullable: true
|
||
* LabelTemplate:
|
||
* type: object
|
||
* required: [id, name, width, height, dpi, type, content]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* name:
|
||
* type: string
|
||
* width:
|
||
* type: number
|
||
* height:
|
||
* type: number
|
||
* dpi:
|
||
* type: integer
|
||
* type:
|
||
* type: string
|
||
* content:
|
||
* $ref: '#/components/schemas/LabelContent'
|
||
* thumb:
|
||
* type: string
|
||
* nullable: true
|
||
* LabelTemplateCreateInput:
|
||
* type: object
|
||
* required: [name, width, height, dpi, type, content]
|
||
* properties:
|
||
* name:
|
||
* type: string
|
||
* width:
|
||
* type: number
|
||
* height:
|
||
* type: number
|
||
* dpi:
|
||
* type: integer
|
||
* type:
|
||
* type: string
|
||
* content:
|
||
* $ref: '#/components/schemas/LabelContent'
|
||
* LabelTemplateUpdateInput:
|
||
* type: object
|
||
* properties:
|
||
* name:
|
||
* type: string
|
||
* width:
|
||
* type: number
|
||
* height:
|
||
* type: number
|
||
* dpi:
|
||
* type: integer
|
||
* type:
|
||
* type: string
|
||
* content:
|
||
* $ref: '#/components/schemas/LabelContent'
|
||
* Warehouse:
|
||
* type: object
|
||
* required: [id, name, sort]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* name:
|
||
* type: string
|
||
* sort:
|
||
* type: integer
|
||
* description: Sort order
|
||
* WarehouseCreateInput:
|
||
* type: object
|
||
* required: [name]
|
||
* properties:
|
||
* name:
|
||
* type: string
|
||
* sort:
|
||
* type: integer
|
||
* description: Optional sort order (defaults to auto-increment)
|
||
* WarehouseUpdateInput:
|
||
* type: object
|
||
* properties:
|
||
* name:
|
||
* type: string
|
||
* sort:
|
||
* type: integer
|
||
* description: Sort order
|
||
* StockAdjustmentInput:
|
||
* type: object
|
||
* description: Stock adjustment input. Provide `sku` and `amount` for single-item adjustments, or `lines` for batch adjustments. Note that `sku` must be a string (e.g. "25"), not a number.
|
||
* properties:
|
||
* sku:
|
||
* type: string
|
||
* description: Article SKU string (e.g. "25", not a number; for single-item adjustment)
|
||
* warehouseId:
|
||
* type: integer
|
||
* description: Target warehouse ID
|
||
* amount:
|
||
* type: number
|
||
* description: Signed adjustment quantity (+ to add, - to remove)
|
||
* text:
|
||
* type: string
|
||
* nullable: true
|
||
* description: Reason or memo
|
||
* lines:
|
||
* type: array
|
||
* description: Batch adjustment lines
|
||
* items:
|
||
* type: object
|
||
* required: [sku, amount]
|
||
* properties:
|
||
* sku:
|
||
* type: string
|
||
* description: Article SKU string (e.g. "25", not a number)
|
||
* warehouseId:
|
||
* type: integer
|
||
* description: Target warehouse ID
|
||
* amount:
|
||
* type: number
|
||
* description: Signed adjustment quantity (+ to add, - to remove)
|
||
* text:
|
||
* type: string
|
||
* description: Reason or memo
|
||
* StockAdjustmentResult:
|
||
* type: object
|
||
* properties:
|
||
* manifest:
|
||
* type: object
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* number:
|
||
* type: string
|
||
* type:
|
||
* type: string
|
||
* example: adjustment
|
||
* date:
|
||
* type: string
|
||
* format: date-time
|
||
* createdAt:
|
||
* type: string
|
||
* format: date-time
|
||
* lines:
|
||
* type: array
|
||
* items:
|
||
* type: object
|
||
* required: [manifestarticle_id, sku, name, warehouse_id, amount, text]
|
||
* properties:
|
||
* manifestarticle_id:
|
||
* type: integer
|
||
* sku:
|
||
* type: string
|
||
* name:
|
||
* type: string
|
||
* warehouse_id:
|
||
* type: integer
|
||
* amount:
|
||
* type: number
|
||
* text:
|
||
* type: string
|
||
* ledger:
|
||
* type: array
|
||
* items:
|
||
* $ref: '#/components/schemas/LedgerEntry'
|
||
* Propertyname:
|
||
* type: object
|
||
* required: [id, name, sort, exclusive]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* name:
|
||
* type: string
|
||
* sort:
|
||
* type: integer
|
||
* exclusive:
|
||
* type: boolean
|
||
* ArticleProperty:
|
||
* type: object
|
||
* required: [id, propertyId, name, exclusive, value, sort]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* articleId:
|
||
* type: integer
|
||
* propertyId:
|
||
* type: integer
|
||
* name:
|
||
* type: string
|
||
* exclusive:
|
||
* type: boolean
|
||
* value:
|
||
* type: string
|
||
* sort:
|
||
* type: integer
|
||
* AttributeValue:
|
||
* type: object
|
||
* required: [id, attributeId, value, sort]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* attributeId:
|
||
* type: integer
|
||
* value:
|
||
* type: string
|
||
* sort:
|
||
* type: integer
|
||
* Attributename:
|
||
* type: object
|
||
* required: [id, name, sort, exclusive, values]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* name:
|
||
* type: string
|
||
* sort:
|
||
* type: integer
|
||
* exclusive:
|
||
* type: boolean
|
||
* values:
|
||
* type: array
|
||
* items:
|
||
* $ref: '#/components/schemas/AttributeValue'
|
||
* ArticleAttributeValue:
|
||
* type: object
|
||
* required: [id, attributeId, attributeName, attributeValueId, value, sort]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* articleId:
|
||
* type: integer
|
||
* attributeId:
|
||
* type: integer
|
||
* attributeName:
|
||
* type: string
|
||
* exclusive:
|
||
* type: boolean
|
||
* attributeValueId:
|
||
* type: integer
|
||
* value:
|
||
* type: string
|
||
* sort:
|
||
* type: integer
|
||
* CategoryProperty:
|
||
* type: object
|
||
* required: [id, propertyId, name, exclusive, value, sort]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* categoryId:
|
||
* type: integer
|
||
* propertyId:
|
||
* type: integer
|
||
* name:
|
||
* type: string
|
||
* exclusive:
|
||
* type: boolean
|
||
* value:
|
||
* type: string
|
||
* sort:
|
||
* type: integer
|
||
* CategoryAttributeValue:
|
||
* type: object
|
||
* required: [id, attributeId, attributeName, attributeValueId, value, sort]
|
||
* properties:
|
||
* id:
|
||
* type: integer
|
||
* categoryId:
|
||
* type: integer
|
||
* attributeId:
|
||
* type: integer
|
||
* attributeName:
|
||
* type: string
|
||
* exclusive:
|
||
* type: boolean
|
||
* attributeValueId:
|
||
* type: integer
|
||
* value:
|
||
* type: string
|
||
* sort:
|
||
* type: integer
|
||
* VfsFile:
|
||
* type: object
|
||
* required: [name, size, mime, updated_at, created_at, isText, isImage, isPdf]
|
||
* properties:
|
||
* name:
|
||
* type: string
|
||
* description: Relative file path within the virtual filesystem
|
||
* size:
|
||
* type: integer
|
||
* description: File size in bytes
|
||
* mime:
|
||
* type: string
|
||
* description: Detected or declared MIME type
|
||
* updated_at:
|
||
* type: string
|
||
* format: date-time
|
||
* description: ISO timestamp of last modification
|
||
* created_at:
|
||
* type: string
|
||
* format: date-time
|
||
* description: ISO timestamp of creation
|
||
* isText:
|
||
* type: boolean
|
||
* description: True if file is text, code, JSON, Markdown, or tabular data
|
||
* isImage:
|
||
* type: boolean
|
||
* description: True if file is a supported raster image eligible for preview thumbnailing
|
||
* isPdf:
|
||
* type: boolean
|
||
* description: True if file is a PDF document
|
||
*/
|
||
|
||
export {};
|
||
|