Academy v4: 3 research-backed lessons (30 slides + audio); new bean logo; custom plan/lot names
Test and deploy / test-and-deploy (push) Successful in 59s
Test and deploy / test-and-deploy (push) Successful in 59s
Co-Authored-By: Claude Fable 5 <[email protected]>
This commit is contained in:
co-authored by
Claude Fable 5
parent
ec078116b4
commit
8b80c3fa6f
+3
-3
@@ -57,7 +57,7 @@ const brewBody = obj({
|
||||
tastingNotes: str, notes: str,
|
||||
});
|
||||
const lot = obj({
|
||||
id: str, origin: str, variety: str, process: str, producer: str,
|
||||
id: str, name: str, origin: str, variety: str, process: str, producer: str,
|
||||
purchaseDate: { ...str, nullable: true }, initialWeightG: { type: "number" },
|
||||
remainingWeightG: { type: "number" }, costTotal: num, moisturePct: num, densityGL: num,
|
||||
notes: str, archived: bool,
|
||||
@@ -93,10 +93,10 @@ export function buildOpenApiSpec({ origin = "" } = {}) {
|
||||
// ── Roast plans ──
|
||||
"/api/plans": {
|
||||
get: { tags: ["roast plans"], summary: "List your roast plans", responses: { 200: ok("Plans", obj({ ok: bool, plans: arr({ type: "object" }) })) } },
|
||||
post: { tags: ["roast plans"], summary: "Create a roast plan", requestBody: jsonBody(obj({ plan: { type: "object" } }, ["plan"])), responses: { 201: ok("Created") } },
|
||||
post: { tags: ["roast plans"], summary: "Create a roast plan", requestBody: jsonBody(obj({ plan: { type: "object" }, name: { ...str, description: "Optional custom display name (falls back to worksheet field 0.1 when blank)" } }, ["plan"])), responses: { 201: ok("Created") } },
|
||||
},
|
||||
"/api/plans/{id}": {
|
||||
put: { tags: ["roast plans"], summary: "Update a roast plan", parameters: [idParam], requestBody: jsonBody(obj({ plan: { type: "object" } }, ["plan"])), responses: { 200: ok("Updated"), 404: err("Not found") } },
|
||||
put: { tags: ["roast plans"], summary: "Update a roast plan and/or rename it (send `plan`, `name`, or both — omitted fields are left unchanged)", parameters: [idParam], requestBody: jsonBody(obj({ plan: { type: "object" }, name: str })), responses: { 200: ok("Updated"), 404: err("Not found") } },
|
||||
delete: { tags: ["roast plans"], summary: "Delete a roast plan", parameters: [idParam], responses: { 200: ok("Deleted"), 404: err("Not found") } },
|
||||
},
|
||||
"/api/machine-profile": { get: { tags: ["roast plans"], summary: "Learned per-user machine profile", responses: { 200: ok("Profile", obj({ ok: bool, profile: { type: "object" } })) } } },
|
||||
|
||||
Reference in New Issue
Block a user