// Copyright 2025 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only

import type { LoggerType } from '../../types/Logging.std.ts';
import type { WritableDB } from '../Interface.std.ts';
import { sql } from '../util.std.ts';

// This migration was backported to earlier branches as 1541 and 1551
export default function updateToSchemaVersion1561(
  db: WritableDB,
  logger: LoggerType
): void {
  const [query, params] = sql`
    UPDATE messages 
      SET 
        json = json_remove(json, '$.poll'),
        hasUnreadPollVotes = 0
      WHERE isErased = 1 AND (
        json->'poll' IS NOT NULL OR
        hasUnreadPollVotes IS NOT 0
      )
  `;
  const result = db.prepare(query).run(params);
  logger.info(`Updated ${result.changes} poll messages`);
}
