Commit Graph

132 Commits

Author SHA1 Message Date
seb
65b4ce5098 u 2026-09-27 18:01:08 +02:00
seb
9f97e3f3c6 u 2026-09-27 16:47:35 +02:00
seb
3e64fff747 u 2026-09-27 16:19:43 +02:00
seb
69f27a2942 u 2026-09-26 23:06:09 +02:00
seb
cbb2fdeb6d u 2026-09-26 14:42:29 +02:00
seb
f0176e0fe0 u 2026-09-26 07:34:35 +02:00
seb
67758d5ec2 u 2026-09-25 12:30:54 +02:00
seb
37828fdef9 u 2026-09-24 23:26:50 +02:00
seb
68aadd483b u 2026-09-23 15:15:45 +02:00
seb
a46e9742f4 sqlite 2026-09-22 07:25:11 +02:00
seb
15664223ee u 2026-09-20 16:33:38 +02:00
seb
dff254e923 errorlog 2026-09-20 13:14:55 +02:00
seb
dbabce2a2d u 2026-09-20 08:03:00 +02:00
seb
043facff48 llm 2026-09-20 07:22:14 +02:00
seb
fb2ab77ab8 u 2026-09-20 06:13:24 +02:00
seb
2130a1e408 abord and log 2026-09-19 08:13:35 +02:00
seb
bc0e277b81 sse abort 2026-09-19 07:01:55 +02:00
seb
37a676bb50 file api 2026-09-19 06:34:11 +02:00
seb
96d35bcf6d u 2026-09-19 05:14:41 +02:00
seb
c2147de284 multipart 2026-09-18 07:19:20 +02:00
seb
8c19388901 file meta 2026-09-18 05:20:03 +02:00
seb
bbd285109d unify parse api 2026-09-18 04:35:42 +02:00
seb
adb529d14f feat(api): add GET and POST /supplier/:id/articles endpoints and openapi docs 2026-09-18 02:54:06 +02:00
seb
fe8fa55fbb feat(api): implement articlesupplier endpoints, sort reordering, and openapi docs 2026-09-17 12:38:16 +02:00
seb
49efd5f8a1 u 2026-09-17 11:46:22 +02:00
seb
ab6d018a1f refactor(api): update manifest line schema docs with name and pu, update deliveryParsePdf model 2026-09-16 17:04:32 +02:00
seb
ed36c534b9 ncu 2026-09-15 09:35:51 +02:00
seb
12f37ac4c0 feat(delivery): add POST /delivery/parsePDF SSE route
- Accepts multipart/form-data PDF, streams LLM extraction via SSE
- Uses libllmorbiter (OpenRouterProvider) with API key from companysetting keys.openrouter
- Extracts manifest basedata, notes, and line items from invoices/delivery notes
- Events: status, llm_call, tool_call, usage, progress, result, error
- Extends generateApiDocs.js: multipart field table + x-sse-events table support
- Docs: docs/api/routes/delivery/parsePDF.md (auto-generated)
2026-09-15 07:45:32 +02:00
seb
367555bb59 u 2026-08-08 17:18:38 +02:00
seb
7514848022 Delivery API: use externalNumber for user reference
Delivery create now accepts externalNumber (user-supplied reference) instead
of number; the manifest number is auto-allocated server-side via
nextNumber('delivery'). Update patches externalNumber (clearable) rather than
number. DeliverySummary schema documents externalNumber and notes number is
auto-generated. Regenerate API docs.
2026-08-08 10:09:32 +02:00
seb
57420ac0db Add company settings and number sequence API routes
- Add CompanySetting routes (list, get, set) backed by company-scoped store
- Add Number routes (list, update) for managing number sequences
- Register new store namespaces for numbers and companysetting
- Add CompanySetting and NumberSequence schemas to OpenAPI
- Regenerate API docs and index for the new routes
2026-08-08 09:01:28 +02:00
seb
e6c24654dd Align store calls with selected-company scoping and add entity numbers.
Drop companyId from company-scoped store wrappers and routes, add GET /entity/next-number plus optional number on entity create/update, and document dashdbschema API.md lookup in sibling-repos.
2026-08-07 06:22:13 +02:00
seb
2767568f5a restart 2026-08-07 03:51:54 +02:00
seb
57fd3b4837 Add customergroup bulk reorder and list editable flag.
Expose PUT /customergroup/order for exact-set sort updates, keep create/update name-only, and mark POS/Lieferanten as non-editable in list responses.
2026-08-07 03:40:40 +02:00
seb
cdae7b6eab Add quote and order HTTP APIs on manifest documents.
Expose store-backed CRUD for quotes and sales orders with shared ManifestLine shapes, entityId customers, and documented date semantics.
2026-08-06 19:58:25 +02:00
seb
74269cd3ef Add customergroup and entity HTTP APIs with address and contact routes.
Expose store-backed CRUD for customer groups, entities, nested addresses, and contacts, matching the documented dashdbschema contracts.
2026-08-06 07:38:05 +02:00
seb
1860f38640 Add delivery and supplier HTTP APIs with expanded response docs.
Wire store-backed CRUD for goods receipts and suppliers, and teach the API doc generator to expand $ref/allOf/array samples so route markdown shows full JSON shapes.
2026-08-06 05:32:48 +02:00
seb
a748bd5f5c u 2026-08-05 20:15:31 +02:00
seb
fc2b136c46 Store Google avatar bytes and slim the session JWT to id only.
Download profile images on login into picturebinary, return them as base64 from /auth/me, and resolve sessions via getById.
2026-08-05 11:12:36 +02:00
seb
c78237a1dd Persist Google picture and sub on login via setProfile.
Store profile fields from the verified ID token and read picture from the DB on authenticated requests.
2026-08-05 11:04:44 +02:00
seb
782c49a680 Add article history by SKU and SSE update signals for live clients.
Expose getHistoryBySku as GET /article/:sku/history, and document mutation-emitted company signals via GET /events.
2026-08-05 09:54:56 +02:00
seb
4a9403bfd1 export 2026-08-04 01:24:19 +02:00
seb
c6cb1bc229 feat: add article search index endpoint and category export.zip
- Add GET /api/articleIndex returning the article search index (listSearchIndex)
- Add GET /api/category/export.zip returning a kategorien.zip with a
  Windows-1252 CSV (depth-first, Ebene N columns) plus one AVIF per category image
  (content-addressed, deduplicated) using jszip
2026-08-04 00:30:32 +02:00
seb
bfcb073e32 fix: unwrap double-nested article response in GET /api/article/:sku 2026-08-03 08:38:26 +02:00
seb
a3f8ff0e93 feat: add category image upload/delete endpoints
- POST /category/:id/image - upload AVIF image for a category
- DELETE /category/:id/image - remove category image
- Returns { category: { id, fullHash, thumbW, thumbH, thumbHash } }
- Full image stored as-is when AVIF ≤1000x1000, otherwise scaled
- Thumb always scaled to max 200x200
2026-08-03 07:38:38 +02:00
seb
c8f8dd3d54 typo 2026-08-03 06:45:00 +02:00
seb
a4b78ad6d5 feat: add posterminal API endpoints
- Add posterminal to STORE_NAMESPACES for timing wrappers
- Create db/posterminal.js wrapper for store methods
- Create routes/posterminal.js with all endpoints:
  - GET /api/posterminal - list terminals
  - PUT /api/posterminal - create terminal (name only, pin randomized)
  - DELETE /api/posterminal/:id - delete terminal
  - PUT/DELETE /api/posterminal/:id/category/:categoryId - toggle category
  - PUT/DELETE /api/posterminal/:id/categories - toggle all categories

Closes #<issue-number>
2026-08-03 06:32:39 +02:00
seb
b132f0c17c u 2026-08-03 03:57:20 +02:00
seb
f2b6715961 Remove dedicated POST /category/:id/move route.
Dropping the standalone move endpoint; category relocation is now covered
by PATCH /category/:id via parentId (merged with name rename). Removes the
move route docs and regenerates API docs.
2026-08-03 03:07:50 +02:00
seb
c8f6936aa6 Extend PATCH /category/:id to also move (parentId) alongside rename.
PATCH now accepts name (rename, re-slugify) and/or parentId (move under a
new parent, cycle/self guarded), merging both results. Renames the PATCH
docs file to category/update.md and regenerates API docs.
2026-08-03 03:05:45 +02:00