diff --git a/src/services/maintenance.ts b/src/services/maintenance.ts index 8d74472..90e7c34 100644 --- a/src/services/maintenance.ts +++ b/src/services/maintenance.ts @@ -67,8 +67,8 @@ export class MaintenanceService { static async cleanupInactiveMembersOnce(instance?: Database, retentionDays: number = this.retentionDays): Promise { if (retentionDays <= 0) return 0; const threshold = toIsoSqlUTC(new Date(Date.now() - retentionDays * 24 * 60 * 60 * 1000)); - instance = (instance ?? (this as any).dbInstance ?? getDb()) as Database; - const res = instance.prepare(` + const dbi = ((instance ?? (this as any).dbInstance ?? getDb()) as Database); + const res = dbi.prepare(` DELETE FROM group_members WHERE is_active = 0 AND last_seen_at < ? @@ -84,18 +84,18 @@ export class MaintenanceService { */ static async reconcileAliasUsersOnce(instance?: Database): Promise { try { - instance = (instance ?? (this as any).dbInstance ?? getDb()) as Database; - const rows = instance.prepare(`SELECT alias, user_id FROM user_aliases WHERE alias != user_id`).all() as any[]; + const dbi = ((instance ?? (this as any).dbInstance ?? getDb()) as Database); + const rows = dbi.prepare(`SELECT alias, user_id FROM user_aliases WHERE alias != user_id`).all() as any[]; let merged = 0; for (const r of rows) { const alias = String(r.alias); const real = String(r.user_id); - instance.transaction(() => { + dbi.transaction(() => { // Asegurar existencia del usuario real try { - instance.prepare(`INSERT OR IGNORE INTO users (id) VALUES (?)`) + dbi.prepare(`INSERT OR IGNORE INTO users (id) VALUES (?)`) .run(real); } catch {} @@ -110,7 +110,7 @@ export class MaintenanceService { for (const sql of updates) { try { - instance.prepare(sql).run(real, alias); + dbi.prepare(sql).run(real, alias); } catch { // Ignorar si la tabla no existe en este despliegue } @@ -118,7 +118,7 @@ export class MaintenanceService { // Intentar eliminar el usuario alias si ya no tiene referencias try { - instance.prepare(`DELETE FROM users WHERE id = ?`).run(alias); + dbi.prepare(`DELETE FROM users WHERE id = ?`).run(alias); } catch {} })();