Add Date type support for timestamp fields

- Update scheduledAt, sentAt, lastAttemptAt, createdAt, updatedAt fields to support Date | string | null
- Support both Date objects and ISO string formats for all timestamp fields
- Update BaseEmailDocument, BaseEmailTemplateDocument, and QueuedEmail interfaces consistently
- Update documentation to reflect Date object compatibility

Fixes type constraint error where customer timestamp fields use Date objects
but plugin interfaces only supported string formats.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-09-13 23:44:57 +02:00
parent c12438aaa2
commit 965569be06
2 changed files with 19 additions and 17 deletions

View File

@@ -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
}
```