Summary
Artifact lifecycle status, scope, and event-type enum values are currently re-declared in multiple files (admin route validation, admin list-page filters, public route filters). The drizzle pgEnum is the authoritative source but isn't easy to import as a const array for UI dropdowns and zod schemas.
Requirements
Context
Flagged in the Plan 3 review. As Plan 4 (forms) and Plan 5 (broadcast) add more surfaces touching these enums, drift risk compounds.
Implementation Notes
The existing monorepo structure suggests a new packages/shared/ workspace or extending packages/design-system/ with a constants subpath. Pick whichever fits the existing pattern.
Summary
Artifact lifecycle status, scope, and event-type enum values are currently re-declared in multiple files (admin route validation, admin list-page filters, public route filters). The drizzle pgEnum is the authoritative source but isn't easy to import as a
constarray for UI dropdowns and zod schemas.Requirements
constarrays + label maps for:artifactStatus,artifactScope,artifactReviewDecision,broadcastChannel,broadcastChannelStatus,eventTypepackages/apiandapps/admin(possiblyapps/webtoo)packages/api/src/routes/admin/events/index.tspackages/api/src/routes/admin/events/byId.tspackages/api/src/routes/admin/announcements/index.tspackages/api/src/routes/admin/announcements/byId.tspackages/api/src/routes/eventsSubmit.tsapps/admin/src/pages/events/EventsListPage.tsxapps/admin/src/pages/events/NewEventPage.tsxapps/admin/src/pages/announcements/AnnouncementsListPage.tsxContext
Flagged in the Plan 3 review. As Plan 4 (forms) and Plan 5 (broadcast) add more surfaces touching these enums, drift risk compounds.
Implementation Notes
The existing monorepo structure suggests a new
packages/shared/workspace or extendingpackages/design-system/with a constants subpath. Pick whichever fits the existing pattern.