Skip to content

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 AnnouncementPriorityEnum
  • export type AnnouncementPriorityInput
  • export const AudienceScopeEnum
  • export type AudienceScopeInput
  • export const AppRoleEnum
  • export type AppRoleInput
  • export const CreateAnnouncementSchema
  • export type CreateAnnouncementInput
  • export const UpdateAnnouncementSchema
  • export type UpdateAnnouncementInput
  • export const AnnouncementIdParamSchema
  • export type AnnouncementIdParam
  • export const SubmitForApprovalSchema
  • export type SubmitForApprovalInput
  • export const RejectAnnouncementSchema
  • export type RejectAnnouncementInput
  • export const ApproveAnnouncementSchema
  • export type ApproveAnnouncementInput

Imports ​

  • zod

Imported by ​

Heritage Community Hub — Internal. Access restricted via Cloudflare Access + Entra ID.