Support custom ID types (string/number) for improved compatibility

- Replace hardcoded payload-types imports with generic BaseEmailDocument interface
- Update sendEmail and sendEmailTask to work with both string and number IDs
- Refactor MailingService to use generic document types instead of specific ones
- Add BaseEmailDocument and BaseEmailTemplateDocument interfaces supporting id: string | number
- Export BaseEmailDocument for users to extend with their custom fields
- Fix TypeScript compilation error in template subject handling
- Add CUSTOM-TYPES.md documentation for users with different ID types

Fixes compatibility issue where plugin required number IDs but user projects used string IDs.

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-09-13 23:18:37 +02:00
parent 79044b7bc3
commit 570190be01
6 changed files with 159 additions and 16 deletions

View File

@@ -1,5 +1,4 @@
import { sendEmail } from '../sendEmail.js'
import {Email, EmailTemplate} from '../payload-types.js'
import { sendEmail, BaseEmailDocument } from '../sendEmail.js'
export interface SendEmailTaskInput {
// Template mode fields
@@ -170,7 +169,7 @@ export const sendEmailJob = {
const sendEmailOptions = transformTaskInputToSendEmailOptions(taskInput)
// Use the sendEmail helper to create the email
const email = await sendEmail<Email>(payload, sendEmailOptions)
const email = await sendEmail<BaseEmailDocument>(payload, sendEmailOptions)
return {
output: {