diff --git a/README.md b/README.md index b59fa52..058f2be 100644 --- a/README.md +++ b/README.md @@ -14,16 +14,16 @@ bun run dev ## Layout -- `src/db/` — Drizzle schema (`printers`, `farms`, `print_jobs`, `frame_embeddings`) +- `src/db/` - Drizzle schema (`printers`, `farms`, `print_jobs`, `frame_embeddings`) and client, pointed at pgCat. `src/db/validators.ts` derives Elysia/TypeBox request validators straight from the Drizzle tables via `drizzle-typebox`, so the Postgres schema and the API validators come from one definition instead of two hand-synced ones. -- `src/s3/` — R2 presigned URL helpers (`PUT` for client uploads, `GET` for the +- `src/s3/` - R2 presigned URL helpers (`PUT` for client uploads, `GET` for the edge proxy). -- `src/queue/` — Redis client + `XADD` helper pushing onto `stream:camera_frames` +- `src/queue/` - Redis client + `XADD` helper pushing onto `stream:camera_frames` for `continuum-ai-worker`. -- `src/routes/` — `/auth`, `/farms`, `/printers`, `/jobs`, and the edge-gateway +- `src/routes/` - `/auth`, `/farms`, `/printers`, `/jobs`, and the edge-gateway WebSocket at `/ws/edge/v1`. `frame_embeddings.embedding` requires the `vector` extension: diff --git a/src/db/validators.ts b/src/db/validators.ts index c6d129e..3ba4344 100644 --- a/src/db/validators.ts +++ b/src/db/validators.ts @@ -2,14 +2,14 @@ import { createInsertSchema, createSelectSchema } from "drizzle-typebox"; import { t } from "elysia"; import { printers, printJobs } from "./schema"; -// Generated straight from the Drizzle table definitions in `./schema` — this +// Generated straight from the Drizzle table definitions in `./schema` - this // is the *only* place these shapes are defined. The Postgres column and the // Elysia request/response validator can no longer drift apart: change a // column in `./schema/printers.ts` and both the DB migration and the API // validator below pick it up automatically. // // The second argument overrides fields Drizzle can't infer correctly for an -// insert — `id` is DB-generated (defaultRandom()) so it must be optional on +// insert - `id` is DB-generated (defaultRandom()) so it must be optional on // the way in, even though it's required on the way out. export const PrinterInsertSchema = createInsertSchema(printers, { id: t.Optional(t.String({ format: "uuid" })), diff --git a/src/routes/printers.ts b/src/routes/printers.ts index 3540b50..aaec463 100644 --- a/src/routes/printers.ts +++ b/src/routes/printers.ts @@ -29,7 +29,7 @@ export const printerRoutes = new Elysia({ prefix: "/printers" }) set.status = 201; return printer; }, - // Derived from `printers` via drizzle-typebox — see src/db/validators.ts. + // Derived from `printers` via drizzle-typebox - see src/db/validators.ts. // Add or rename a column in the schema and this validator updates itself. { body: PrinterInsertSchema }, );