import { MigrationInterface, QueryRunner } from 'typeorm';

export class AddBuildSizeAndCicd1777000000000 implements MigrationInterface {
  public async up(queryRunner: QueryRunner): Promise<void> {
    // Platform-wide settings
    await queryRunner.query(
      `ALTER TABLE "platform_settings" ADD COLUMN IF NOT EXISTS "max_build_size_mb" integer NOT NULL DEFAULT 500`,
    );
    await queryRunner.query(
      `ALTER TABLE "platform_settings" ADD COLUMN IF NOT EXISTS "cicd_enabled" boolean NOT NULL DEFAULT true`,
    );

    // Per-user overrides (nullable = inherit global)
    await queryRunner.query(
      `ALTER TABLE "users" ADD COLUMN IF NOT EXISTS "max_build_size_mb" integer DEFAULT NULL`,
    );
    await queryRunner.query(
      `ALTER TABLE "users" ADD COLUMN IF NOT EXISTS "cicd_enabled" boolean DEFAULT NULL`,
    );
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(`ALTER TABLE "users" DROP COLUMN IF EXISTS "cicd_enabled"`);
    await queryRunner.query(`ALTER TABLE "users" DROP COLUMN IF EXISTS "max_build_size_mb"`);
    await queryRunner.query(`ALTER TABLE "platform_settings" DROP COLUMN IF EXISTS "cicd_enabled"`);
    await queryRunner.query(`ALTER TABLE "platform_settings" DROP COLUMN IF EXISTS "max_build_size_mb"`);
  }
}
