/* eslint-disable no-console */
import connectToDatabase from '@/shared/config/dbConfig';
import Project from '@/modules/project/project.model';

async function run() {
  try {
    console.info('Connecting to MongoDB...');
    await connectToDatabase();

    console.info('Backfilling hasBlockLayout = false where missing...');
    const res = await Project.updateMany(
      {
        $or: [
          { hasBlockLayout: { $exists: false } },
          { hasBlockLayout: null },
        ],
      },
      { $set: { hasBlockLayout: false } },
    );

    // @ts-ignore mongoose v8 UpdateResult typing
    const modified = (res && (res.modifiedCount ?? res.nModified)) || 0;
    console.info(`Backfill complete. Modified ${modified} documents.`);
    process.exit(0);
  } catch (err) {
    console.error('Migration failed:', err);
    process.exit(1);
  }
}

run();
