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.
- 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
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.
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.
Wires up the existing category.move store method (validates source and
target in the same company, rejects self/descendant cycles, assigns the
next sibling sort) behind an authenticated HTTP route, plus @openapi
docs and regenerated API docs.
Wires up existing category.order store method (validates categoryIds are
exactly the current children of parentId, sets each child sort to its
index in one transaction) behind an authenticated HTTP route, plus
@openapi docs and regenerated API docs.