/** * Update ticket-created system email template placeholders to match the latest event context. */ exports.up = async function up(knex) { const template = await knex('system_email_templates') .where({ name: 'ticket-created' }) .first(); if (!template) { return; } const updatedSubject = 'New Ticket • {{ticket.title}} ({{ticket.priority}})'; const updatedHtmlContent = `
New Ticket Created
{{ticket.title}}
{{ticket.metaLine}}

A new ticket has been logged for {{ticket.clientName}}. Review the summary below and follow the link to take action.

Ticket #{{ticket.id}}
Priority {{ticket.priority}}
Status {{ticket.status}}
Created {{ticket.createdAt}} · {{ticket.createdBy}}
Assigned To
{{ticket.assignedToName}}
{{ticket.assignedToEmail}}
Requester
{{ticket.requesterName}}
{{ticket.requesterContact}}
Board {{ticket.board}}
Category {{ticket.categoryDetails}}
Location {{ticket.locationSummary}}
Description
{{ticket.description}}
View Ticket
Powered by Alga PSA • Keeping teams aligned
`; const updatedTextContent = ` New Ticket Created for {{ticket.clientName}} {{ticket.metaLine}} Created: {{ticket.createdAt}} · {{ticket.createdBy}} Priority: {{ticket.priority}} Status: {{ticket.status}} Assigned To: {{ticket.assignedDetails}} Requester: {{ticket.requesterDetails}} Board: {{ticket.board}} Category: {{ticket.categoryDetails}} Location: {{ticket.locationSummary}} Description: {{ticket.description}} View ticket: {{ticket.url}} `; await knex('system_email_templates') .where({ id: template.id }) .update({ subject: updatedSubject, html_content: updatedHtmlContent, text_content: updatedTextContent, updated_at: knex.fn.now() }); }; exports.down = async function down(knex) { const template = await knex('system_email_templates') .where({ name: 'ticket-created' }) .first(); if (!template) { return; } const previousSubject = 'New Ticket • {{ticket.title}} ({{ticket.priority}})'; const previousHtmlContent = `
New Ticket Created
{{ticket.title}}
{{ticket.metaLine}}

A new ticket has been logged for {{ticket.companyName}}. Review the summary below and follow the link to take action.

Ticket #{{ticket.id}}
Priority {{ticket.priority}}
Status {{ticket.status}}
Created {{ticket.createdAt}} · {{ticket.createdBy}}
Assigned To
{{ticket.assignedToName}}
{{ticket.assignedToEmail}}
Requester
{{ticket.requesterName}}
{{ticket.requesterContact}}
Channel {{ticket.channel}}
Category {{ticket.categoryDetails}}
Location {{ticket.locationSummary}}
Description
{{ticket.description}}
View Ticket
Powered by Alga PSA • Keeping teams aligned
`; const previousTextContent = ` New Ticket Created for {{ticket.companyName}} {{ticket.metaLine}} Created: {{ticket.createdAt}} · {{ticket.createdBy}} Priority: {{ticket.priority}} Status: {{ticket.status}} Assigned To: {{ticket.assignedDetails}} Requester: {{ticket.requesterDetails}} Channel: {{ticket.channel}} Category: {{ticket.categoryDetails}} Location: {{ticket.locationSummary}} Description: {{ticket.description}} View ticket: {{ticket.url}} `; await knex('system_email_templates') .where({ id: template.id }) .update({ subject: previousSubject, html_content: previousHtmlContent, text_content: previousTextContent, updated_at: knex.fn.now() }); };