Initial state for GitNexus analysis
This commit is contained in:
32
packages/features/newsletter/src/schema/newsletter.schema.ts
Normal file
32
packages/features/newsletter/src/schema/newsletter.schema.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
import { z } from 'zod';
|
||||
|
||||
export const NewsletterStatusEnum = z.enum(['draft', 'scheduled', 'sending', 'sent', 'failed']);
|
||||
|
||||
export const CreateNewsletterSchema = z.object({
|
||||
accountId: z.string().uuid(),
|
||||
templateId: z.string().uuid().optional(),
|
||||
subject: z.string().min(1).max(256),
|
||||
bodyHtml: z.string().min(1),
|
||||
bodyText: z.string().optional(),
|
||||
scheduledAt: z.string().optional(),
|
||||
});
|
||||
export type CreateNewsletterInput = z.infer<typeof CreateNewsletterSchema>;
|
||||
|
||||
export const CreateTemplateSchema = z.object({
|
||||
accountId: z.string().uuid(),
|
||||
name: z.string().min(1),
|
||||
subject: z.string().min(1),
|
||||
bodyHtml: z.string().min(1),
|
||||
bodyText: z.string().optional(),
|
||||
variables: z.array(z.string()).default([]),
|
||||
});
|
||||
|
||||
export const SelectRecipientsSchema = z.object({
|
||||
newsletterId: z.string().uuid(),
|
||||
memberFilter: z.object({
|
||||
status: z.array(z.string()).optional(),
|
||||
duesCategoryId: z.string().uuid().optional(),
|
||||
hasEmail: z.boolean().default(true),
|
||||
}).optional(),
|
||||
manualEmails: z.array(z.string().email()).optional(),
|
||||
});
|
||||
Reference in New Issue
Block a user