34 lines
1.0 KiB
JavaScript
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();
|
|
}
|