Announcements — Code Map
API
| File | Role |
|---|---|
apps/api/src/announcements/announcements.module.ts | DI wiring; imports MessagesModule for the gateway + push module + event tracking |
apps/api/src/announcements/announcements.controller.ts | Endpoints: create, list, detail, mark read, unread count |
apps/api/src/announcements/announcements.service.ts | createAnnouncement, fanOutAnnouncementPush, listAnnouncements, getAnnouncementDetail, markRead, getUnreadCountForClerk |
apps/api/src/announcements/announcements.service.driver.ts + .unit.spec.ts | Tests |
apps/api/src/announcements/dto/announcements.dto.ts | DTOs |
DB
| File | Role |
|---|---|
libs/db/src/lib/schema/announcements.ts | announcements, announcement_reads |
Web
| File | Role |
|---|---|
apps/web/src/components/announcements/create-announcement-dialog.tsx (+ spec + driver) | Staff composer |
apps/web/src/components/announcements/announcement-bell-panel.tsx | Bell + dropdown |
apps/web/src/components/announcements/announcement-card.tsx (+ spec + driver) | List item |
apps/web/src/components/announcements/announcement-detail.tsx | Detail w/ read receipts |
apps/web/src/components/announcements/announcement-list.tsx | Paginated list |
apps/web/src/components/announcements/announcements-tab.tsx | Tab embedding |
Cross-feature
apps/api/src/messages/messages.gateway.ts.broadcastAnnouncement(orgId, payload)— emitsannouncement:newtoorg:{orgId}room.apps/api/src/push-notifications/push-notifications.service.ts.notifyUsers(ids, payload)with categoryannouncement.apps/api/src/event-tracking/event-tracking.service.ts.track('announcement_published', ...).