/** * ScheduleNotificationDtoV1 * * Represents the payload used to create or update a scheduled notification * within the system. It defines all required and optional fields related to * notification metadata, delivery timing, and recipient targeting. */ export type ScheduleNotificationDtoV1 = { /** * Target URL associated with the notification. * This URL is intended to link the user to relevant content. * * @type {string} * @example 'https://example.com' */ url: string; /** * The type or event category of the notification. * Used internally to distinguish between types like `news.published`, `task.due`, etc. * * @type {string} * @example 'news.published' */ type: string; /** * Title of the notification. * Displayed prominently as the subject or headline. * * @type {string} * @example 'Neuer Blogpost' */ title: string; /** * Main message body of the notification. * This text provides more detail about the notification context. * * @type {string} * @example 'Wir haben einen neuen Blogpost veröffentlicht: Meine Top 5 Neuerungen in CSS 2024' */ message: string; /** * UNIX timestamp (in milliseconds) representing when the notification is scheduled. * Typically represents the publish or trigger time. * * @type {number} * @example 1700000000000 * @minimum Jan 1, 2017 */ timestamp: number; /** * Optional: Indicates if this notification is still in draft mode. * Draft notifications are not dispatched until finalized. * * @type {boolean} * @default false * @example false */ draft?: boolean; /** * Optional: Marks the notification as silenced. * Silenced notifications are stored but do not trigger alerts or push messages. * * @type {boolean} * @default false * @example false */ silenced?: boolean; recipientIds?: string[]; /** * Optional: Callback Url to be called if the notification is sent * * @type {string} * @default undefined * @example https://services.svi-itlab.com/ */ callbackUrl?: string; };