/** * 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(); }