feat(14-email-templates): CRUD szablonów e-mail z Quill.js + załączniki
Phase 14 complete (2 plans):
- 14-01: CRUD szablonów, Quill.js editor, system zmiennych {{grupa.pole}}, podgląd, toggle
- 14-02: Select "Załącznik nr 1" z mapą ATTACHMENT_TYPES, kolumna w liście, migracja attachment_1
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -19,7 +19,7 @@ final class EmailTemplateRepository
|
||||
public function listAll(): array
|
||||
{
|
||||
$statement = $this->pdo->prepare(
|
||||
'SELECT t.id, t.name, t.subject, t.mailbox_id, t.is_active, t.created_at, t.updated_at,
|
||||
'SELECT t.id, t.name, t.subject, t.mailbox_id, t.attachment_1, t.is_active, t.created_at, t.updated_at,
|
||||
m.name AS mailbox_name
|
||||
FROM email_templates t
|
||||
LEFT JOIN email_mailboxes m ON m.id = t.mailbox_id
|
||||
@@ -37,7 +37,7 @@ final class EmailTemplateRepository
|
||||
public function findById(int $id): ?array
|
||||
{
|
||||
$statement = $this->pdo->prepare(
|
||||
'SELECT id, name, subject, body_html, mailbox_id, is_active, created_at, updated_at
|
||||
'SELECT id, name, subject, body_html, mailbox_id, attachment_1, is_active, created_at, updated_at
|
||||
FROM email_templates
|
||||
WHERE id = :id'
|
||||
);
|
||||
@@ -53,7 +53,7 @@ final class EmailTemplateRepository
|
||||
public function listActive(): array
|
||||
{
|
||||
$statement = $this->pdo->prepare(
|
||||
'SELECT id, name, subject, mailbox_id
|
||||
'SELECT id, name, subject, mailbox_id, attachment_1
|
||||
FROM email_templates
|
||||
WHERE is_active = 1
|
||||
ORDER BY name ASC'
|
||||
@@ -75,11 +75,16 @@ final class EmailTemplateRepository
|
||||
? (int) $data['mailbox_id']
|
||||
: null;
|
||||
|
||||
$attachment1 = isset($data['attachment_1']) && $data['attachment_1'] !== ''
|
||||
? (string) $data['attachment_1']
|
||||
: null;
|
||||
|
||||
$params = [
|
||||
'name' => trim((string) ($data['name'] ?? '')),
|
||||
'subject' => trim((string) ($data['subject'] ?? '')),
|
||||
'body_html' => (string) ($data['body_html'] ?? ''),
|
||||
'mailbox_id' => $mailboxId,
|
||||
'attachment_1' => $attachment1,
|
||||
'is_active' => isset($data['is_active']) ? 1 : 0,
|
||||
];
|
||||
|
||||
@@ -88,13 +93,13 @@ final class EmailTemplateRepository
|
||||
$statement = $this->pdo->prepare(
|
||||
'UPDATE email_templates
|
||||
SET name = :name, subject = :subject, body_html = :body_html,
|
||||
mailbox_id = :mailbox_id, is_active = :is_active
|
||||
mailbox_id = :mailbox_id, attachment_1 = :attachment_1, is_active = :is_active
|
||||
WHERE id = :id'
|
||||
);
|
||||
} else {
|
||||
$statement = $this->pdo->prepare(
|
||||
'INSERT INTO email_templates (name, subject, body_html, mailbox_id, is_active)
|
||||
VALUES (:name, :subject, :body_html, :mailbox_id, :is_active)'
|
||||
'INSERT INTO email_templates (name, subject, body_html, mailbox_id, attachment_1, is_active)
|
||||
VALUES (:name, :subject, :body_html, :mailbox_id, :attachment_1, :is_active)'
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user