Add Print Job tracking for slicer integration

Backend for tracking print jobs from Elegoo/Orca Slicer:

- PrintJob model: tracks pending/completed/cancelled jobs
- API endpoints: create, list, complete, cancel jobs
- needs_weighing flag on Spool: for cancelled print recalibration
- Database migration for new table and column

Workflow:
1. Slicer post-processing script creates pending job
2. User completes job → auto-deducts filament
3. User cancels job → flags spool for manual weigh-in

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-15 21:10:56 -06:00
parent 695f1adeed
commit 4cd58ebae9
7 changed files with 441 additions and 1 deletions

View File

@@ -84,6 +84,7 @@ class SpoolParameters(BaseModel):
examples=[""],
)
archived: bool = Field(default=False, description="Whether this spool is archived and should not be used anymore.")
needs_weighing: bool = Field(default=False, description="Whether this spool needs manual weigh-in.")
extra: Optional[dict[str, str]] = Field(
None,
description="Extra fields for this spool.",