Appearance
apps/api/src/features/announcements/announcements.schema.ts ​
Auto-generated by
scripts/generate-file-docs.ts. Do not edit — overwritten on every run.
Purpose ​
Request body / param schemas for the announcements feature slice. Implements the contract defined in docs/internal/design/api-contracts.md Section 7 (Announcements) and ADR 0012 / ADR 0023: - Announcements are ONE-WAY broadcast — no reply field exists. - State machine: DRAFT → PENDING_APPROVAL → (SCHEDULED|PUBLISHED) and terminal states EXPIRED / WITHDRAWN. - comms_author drafts; the approver MUST be a different user with ministry_leader or higher (server-side enforced in the service). Audience targeting: - ALL → broadcast to every active member - ROLE → audienceRoleTarget (a single AppRole) required - GROUP → audienceGroupId required - MINISTRY → audienceGroupId (a group whose GroupType=MINISTRY) required /
Exports ​
export const AnnouncementPriorityEnumexport type AnnouncementPriorityInputexport const AudienceScopeEnumexport type AudienceScopeInputexport const AppRoleEnumexport type AppRoleInputexport const CreateAnnouncementSchemaexport type CreateAnnouncementInputexport const UpdateAnnouncementSchemaexport type UpdateAnnouncementInputexport const AnnouncementIdParamSchemaexport type AnnouncementIdParamexport const SubmitForApprovalSchemaexport type SubmitForApprovalInputexport const RejectAnnouncementSchemaexport type RejectAnnouncementInputexport const ApproveAnnouncementSchemaexport type ApproveAnnouncementInput
Imports ​
zod