import { BaseMigration } from './base-migration.ts'; import type { TQueryFunction } from '../types.ts'; export class Migration010BackupSchedules extends BaseMigration { readonly version = 10; readonly description = 'Backup schedules table'; up(query: TQueryFunction): void { query(` CREATE TABLE backup_schedules ( id INTEGER PRIMARY KEY AUTOINCREMENT, service_id INTEGER NOT NULL, service_name TEXT NOT NULL, cron_expression TEXT NOT NULL, retention_tier TEXT NOT NULL, enabled INTEGER NOT NULL DEFAULT 1, last_run_at REAL, next_run_at REAL, last_status TEXT, last_error TEXT, created_at REAL NOT NULL, updated_at REAL NOT NULL, FOREIGN KEY (service_id) REFERENCES services(id) ON DELETE CASCADE ) `); query( 'CREATE INDEX IF NOT EXISTS idx_backup_schedules_service ON backup_schedules(service_id)', ); query( 'CREATE INDEX IF NOT EXISTS idx_backup_schedules_enabled ON backup_schedules(enabled)', ); query('ALTER TABLE backups ADD COLUMN retention_tier TEXT'); query( 'ALTER TABLE backups ADD COLUMN schedule_id INTEGER REFERENCES backup_schedules(id) ON DELETE SET NULL', ); } }