feat: add assigneeId/assigneeName to tasks schema and API

- Added assignee_id and assignee_name columns to tasks table
- PATCH /api/tasks/:id now accepts assigneeId and assigneeName
- db:push on startup will auto-migrate the columns
This commit is contained in:
2026-01-29 03:56:38 +00:00
parent 69623da5d6
commit e3ea7a204d
5 changed files with 567 additions and 0 deletions

View File

@@ -47,6 +47,8 @@ export const tasks = pgTable("tasks", {
status: taskStatusEnum("status").notNull().default("queued"),
priority: taskPriorityEnum("priority").notNull().default("medium"),
position: integer("position").notNull().default(0),
assigneeId: text("assignee_id"),
assigneeName: text("assignee_name"),
progressNotes: jsonb("progress_notes").$type<ProgressNote[]>().default([]),
createdAt: timestamp("created_at", { withTimezone: true }).defaultNow().notNull(),
updatedAt: timestamp("updated_at", { withTimezone: true }).defaultNow().notNull(),

View File

@@ -231,6 +231,8 @@ export const taskRoutes = new Elysia({ prefix: "/api/tasks" })
}
if (body.priority !== undefined) updates.priority = body.priority;
if (body.position !== undefined) updates.position = body.position;
if (body.assigneeId !== undefined) updates.assigneeId = body.assigneeId;
if (body.assigneeName !== undefined) updates.assigneeName = body.assigneeName;
const updated = await db
.update(tasks)
@@ -255,6 +257,8 @@ export const taskRoutes = new Elysia({ prefix: "/api/tasks" })
status: t.Optional(t.String()),
priority: t.Optional(t.String()),
position: t.Optional(t.Number()),
assigneeId: t.Optional(t.Union([t.String(), t.Null()])),
assigneeName: t.Optional(t.Union([t.String(), t.Null()])),
}),
}
)