feat(GRO-1208): add staff conversations API route and staffReadAt migration
- Add `staffReadAt` column to conversations table schema - Add migration 0032_staff_read_at.sql for the new column - Create /api/conversations router with GET / (list), GET /:id/messages (paginated), POST /:id/messages (send) - Mark conversations as read (staffReadAt = NOW()) when staff fetches messages - Return 409 when client has opted out of SMS - 404 on cross-tenant access - Add conversations.test.ts covering all 5 acceptance criteria Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
@@ -18,6 +18,7 @@ import { groomingLogsRouter } from "./routes/groomingLogs.js";
|
||||
import { impersonationRouter } from "./routes/impersonation.js";
|
||||
import { settingsRouter } from "./routes/settings.js";
|
||||
import { authProviderRouter } from "./routes/authProvider.js";
|
||||
import { conversationsRouter } from "./routes/conversations.js";
|
||||
import { searchRouter } from "./routes/search.js";
|
||||
import { getObject } from "./lib/s3.js";
|
||||
import { calendarRouter } from "./routes/calendar.js";
|
||||
@@ -273,6 +274,7 @@ api.route("/admin/settings", settingsRouter);
|
||||
api.route("/admin/auth-provider", authProviderRouter);
|
||||
api.route("/admin/seed", adminSeedRouter);
|
||||
api.route("/search", searchRouter);
|
||||
api.route("/conversations", conversationsRouter);
|
||||
|
||||
const port = Number(process.env.PORT ?? 3000);
|
||||
await initAuth();
|
||||
|
||||
Reference in New Issue
Block a user