Appearance
apps/api/src/features/media/media.service.ts ​
Auto-generated by
scripts/generate-file-docs.ts. Do not edit — overwritten on every run.
Purpose ​
MediaService — Sermons & Music Hub catalog, streaming, and live events. Design doc: docs/internal/design/sermons-music-hub.md (AB#3137, ADR 0010). Visibility rules: - visitor → no access. All read paths return 403. - member+ → PUBLISHED items only; no upload/publish rights. - media_steward → upload, publish/unpublish/archive, create/manage live events. - ministry_leader / admin / infra_admin → same as media_steward plus series mgmt. Access tier enforcement: - MEMBERS → any active member role passes. - BAPTIZED_ONLY → additionally requires User.isBaptized === true. Storage keys (storageKey, artworkKey, cloudflareInputId, cloudflarePlaybackId) are NEVER included in any value returned to the caller. Callers receive signed URLs only. /
Exports ​
export const STREAM_URL_TTL_SECONDSexport class MediaServiceexport const mediaService
Imports ​
../../adapters/db../../adapters/live../../adapters/storage../../lib/errors../../lib/logger../../lib/pagination../../middleware/requireAuth