UNPKG

alepha

Version:

Easy-to-use modern TypeScript framework for building many kind of applications.

77 lines (76 loc) 2.76 kB
import { $module, z } from "alepha"; import { logEntrySchema } from "alepha/logger"; import { pageQuerySchema } from "alepha/orm"; //#region ../../src/api/notifications/schemas/notificationContactPreferencesSchema.ts const notificationContactPreferencesSchema = z.object({ language: z.text().optional(), exclude: z.array(z.text()) }); //#endregion //#region ../../src/api/notifications/schemas/notificationContactSchema.ts const notificationContactSchema = z.object({ email: z.email().optional(), phoneNumber: z.e164().optional(), firstName: z.shortText().optional(), lastName: z.text({ size: "short" }).optional(), language: z.bcp47().optional() }); //#endregion //#region ../../src/api/notifications/schemas/notificationResourceSchema.ts const notificationResourceSchema = z.object({ id: z.uuid(), createdAt: z.datetime(), status: z.text(), template: z.text().optional(), type: z.text().optional(), contact: z.text().optional(), category: z.text().optional(), critical: z.boolean().optional(), sensitive: z.boolean().optional(), startedAt: z.datetime().optional(), completedAt: z.datetime().optional(), error: z.text().optional() }); //#endregion //#region ../../src/api/notifications/schemas/notificationDetailResourceSchema.ts const notificationDetailResourceSchema = notificationResourceSchema.extend({ variables: z.record(z.text(), z.any()).optional(), rendered: z.record(z.text(), z.any()).optional(), logs: z.array(logEntrySchema).optional() }).meta({ title: "NotificationDetailResource", description: "A notification resource with rendered content and logs." }); //#endregion //#region ../../src/api/notifications/schemas/notificationPayloadSchema.ts const notificationPayloadSchema = z.object({ type: z.enum(["email", "sms"]), template: z.text(), contact: z.text(), variables: z.record(z.text(), z.any()).optional(), category: z.text().optional(), critical: z.boolean().optional(), sensitive: z.boolean().optional(), /** Recipient language (e.g. "fr" or "fr-FR") used to pick `translations`. */ lang: z.text().optional() }); //#endregion //#region ../../src/api/notifications/schemas/notificationQuerySchema.ts const notificationQuerySchema = pageQuerySchema.extend({ status: z.enum([ "pending", "scheduled", "retrying", "running", "completed", "dead", "cancelled" ]).optional() }); //#endregion //#region ../../src/api/notifications/index.browser.ts const AlephaApiNotifications = $module({ name: "alepha.api.notifications", services: [] }); //#endregion export { AlephaApiNotifications, notificationContactPreferencesSchema, notificationContactSchema, notificationDetailResourceSchema, notificationPayloadSchema, notificationQuerySchema, notificationResourceSchema }; //# sourceMappingURL=index.browser.js.map