mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-11-15 14:45:37 -05:00
feat(server): report a nest's sheet sizes and part counts
GET /api/nests/{id}/sheets reads the stored archive's nest.json and returns
the sheet sizes it needs (grouped, width the shorter side, quantities summed)
and each drawing's required and nested counts, skipping the trailing empty
plate as plateCount does. MaterialLedger builds material holds from it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
07e7d7edcd
commit
39f28c7fa9
5 files changed
+305
-15
No files matched your search
@@ -102,6 +102,7 @@ entry, never programs or geometry, and takes the archive-derived fields below fr
|
||||
| GET | `/api/nests/query?search=&status=&material=&materialGrade=&thickness=&sort=&order=&offset=&limit=` | — | `{ "items": NestRecord[], "total", "offset", "limit" }`: one bounded page filtered in SQL (see below), or 400 for an invalid parameter |
|
||||
| GET | `/api/nests/{id}` | — | `NestRecord` or 404 |
|
||||
| GET | `/api/nests/{id}/file` | — | `.nest` archive bytes (`application/zip`) or 404 |
|
||||
| GET | `/api/nests/{id}/sheets` | — | `{ "nestId", "revision", "sheets": [{ "width", "length", "quantity" }], "parts": [{ "name", "required", "nested" }] }` read from the current archive (see below), 404, or 500 problem when the stored archive is unreadable |
|
||||
| POST | `/api/nests` | multipart: `metadata` (JSON `NestRecord`) + `file` (`.nest` bytes) | `NestRecord` with server-assigned `id` when the client sends an empty guid; 409 with the current record (active or deleted) when the `id` already exists, storing nothing |
|
||||
| PUT | `/api/nests/{id}/file` | multipart: `metadata` + `file` | Updated `NestRecord`, or 404 if `id` is unknown |
|
||||
| PUT | `/api/nests/{id}/metadata` | JSON `NestRecord` | Updated `NestRecord` (archive untouched), or 404 |
|
||||
@@ -121,6 +122,16 @@ of hidden records return 404. Changed file/metadata saves and visibility changes
|
||||
append snapshots atomically; an identical save at the current revision is a no-op.
|
||||
Restore appends a new snapshot, never rewrites its source or intervening history.
|
||||
|
||||
### Sheets and part counts
|
||||
|
||||
`/sheets` lists what a nest needs cut, for inventory holds (MaterialLedger). It
|
||||
skips the trailing empty new-plate slot, as `plateCount` does. Sheets group by
|
||||
size with `width` the shorter side, sizes as stored (unrounded), `quantity` the
|
||||
sum of those plates' quantities, ordered by width then length. `parts` has one
|
||||
entry per drawing, ordered by name: `required` is the drawing's required
|
||||
quantity, `nested` its parts on each plate times that plate's quantity; parts
|
||||
whose drawing is missing are skipped.
|
||||
|
||||
### Generated nest names
|
||||
|
||||
**File > New** names a nest `N<yy>-<seq>` (`OpenNest.Data.NestNames`): the
|
||||
|
||||
Reference in new issue
Block a user