diff --git a/CUSTOM-TYPES.md b/CUSTOM-TYPES.md index fefd8f9..602deea 100644 --- a/CUSTOM-TYPES.md +++ b/CUSTOM-TYPES.md @@ -44,6 +44,8 @@ The plugin works with: - **String IDs**: `id: string` - **Number IDs**: `id: number` - **Nullable fields**: Fields can be `null`, `undefined`, or have values +- **Date fields**: Timestamp fields support both `Date` objects and `string` (ISO) formats +- **JSON variables**: Variables field supports any JSON-compatible value type - **Generated types**: Works with `payload generate:types` output Your Payload configuration determines which types are used. The plugin automatically adapts to your setup. @@ -68,15 +70,15 @@ interface BaseEmailDocument { html: string text?: string | null variables?: JSONValue // Supports any JSON-compatible value - scheduledAt?: string | null - sentAt?: string | null + scheduledAt?: string | Date | null + sentAt?: string | Date | null status?: 'pending' | 'processing' | 'sent' | 'failed' | null attempts?: number | null - lastAttemptAt?: string | null + lastAttemptAt?: string | Date | null error?: string | null priority?: number | null - createdAt?: string | null - updatedAt?: string | null + createdAt?: string | Date | null + updatedAt?: string | Date | null } interface BaseEmailTemplateDocument { @@ -85,8 +87,8 @@ interface BaseEmailTemplateDocument { slug: string subject?: string | null content?: any - createdAt?: string | null - updatedAt?: string | null + createdAt?: string | Date | null + updatedAt?: string | Date | null } ``` diff --git a/src/types/index.ts b/src/types/index.ts index bf8d462..bcd947f 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -18,15 +18,15 @@ export interface BaseEmailDocument { html: string text?: string | null variables?: JSONValue - scheduledAt?: string | null - sentAt?: string | null + scheduledAt?: string | Date | null + sentAt?: string | Date | null status?: 'pending' | 'processing' | 'sent' | 'failed' | null attempts?: number | null - lastAttemptAt?: string | null + lastAttemptAt?: string | Date | null error?: string | null priority?: number | null - createdAt?: string | null - updatedAt?: string | null + createdAt?: string | Date | null + updatedAt?: string | Date | null } export interface BaseEmailTemplateDocument { @@ -35,8 +35,8 @@ export interface BaseEmailTemplateDocument { slug: string subject?: string | null content?: any - createdAt?: string | null - updatedAt?: string | null + createdAt?: string | Date | null + updatedAt?: string | Date | null } export type BaseEmail = Omit & {template: Omit | TEmailTemplate['id'] | undefined | null} @@ -88,11 +88,11 @@ export interface QueuedEmail { html: string text?: string | null variables?: JSONValue - scheduledAt?: string | null - sentAt?: string | null + scheduledAt?: string | Date | null + sentAt?: string | Date | null status: 'pending' | 'processing' | 'sent' | 'failed' attempts: number - lastAttemptAt?: string | null + lastAttemptAt?: string | Date | null error?: string | null priority?: number | null createdAt: string