announcements: play a sound, then continue

/api/announcements CRUD (sound must be a prompt, destination must exist
and not be itself, delete refused while referenced); the generator
renders sp-ann-{id} (Answer, Playback, destApp) and destApp sends
announcement destinations there. The ivr golden case gains "press 3:
hours announcement, then back to the menu". Announcements are managed in
a section of Sounds & music (05 updated); the DestinationPicker gains
"Announcement".

Task: M6-T5
This commit is contained in:
iamdoubz committed 2026-10-18 11:00:33 -05:00
1 parent 108547046c
commit dd640b368b
19 files changed
+553 -17

No files matched your search

+2
View File
@@ -21,6 +21,7 @@ export function loadCase(name: string): Snapshot {
ivrs?: Partial<Snapshot['ivrs'][number]>[];
timeConditions?: Partial<Snapshot['timeConditions'][number]>[];
holidays?: Snapshot['holidays'];
announcements?: Snapshot['announcements'];
};
const settings = Object.fromEntries(
(Object.keys(SettingsSchemas) as SettingKey[])
@@ -52,6 +53,7 @@ export function loadCase(name: string): Snapshot {
id: t.id!,
})),
holidays: raw.holidays ?? [],
announcements: raw.announcements ?? [],
ivrs: (raw.ivrs ?? []).map((r, i) => ({
name: `Menu ${i + 1}`,
greeting: 'custom/greeting',