PPPAIMT-Crest/backend/migrations/20260930193000_reminders.js

34 lines
1.0 KiB
JavaScript

/**
* Reminder settings and a count on each reminder email.
* @param {import('knex').Knex} knex
*/
export async function up(knex) {
await knex.schema.alterTable('email_log', (table) => {
table.integer('reminder_count').unsigned().nullable();
});
const keys = ['reminders_enabled', 'draft_reminder_days', 'survey_reminder_days'];
const existing = await knex('settings').whereIn('key', keys).pluck('key');
const rows = [
{ key: 'reminders_enabled', value: JSON.stringify(true) },
{ key: 'draft_reminder_days', value: JSON.stringify(3) },
{ key: 'survey_reminder_days', value: JSON.stringify(5) },
].filter((row) => !existing.includes(row.key));
if (rows.length > 0) {
await knex('settings').insert(rows);
}
}
/**
* @param {import('knex').Knex} knex
*/
export async function down(knex) {
await knex.schema.alterTable('email_log', (table) => {
table.dropColumn('reminder_count');
});
await knex('settings')
.whereIn('key', ['reminders_enabled', 'draft_reminder_days', 'survey_reminder_days'])
.delete();
}