import { MigrationInterface, QueryRunner } from 'typeorm';

/**
 * `company_profiles.status` defaulted to 'active', so any insert that omitted
 * the column produced an operational role that was approved without ever being
 * reviewed. Every live write path already passes 'pending' explicitly; this
 * closes the hole at the schema level.
 *
 * Deliberately no data backfill. A role approved through setCompanyProfileStatus
 * always stamps `reviewed_at`, so `status = 'active' AND reviewed_at IS NULL`
 * flags a role that skipped review — but it also matches rows approved before
 * `reviewed_at` existed (migration 2000000000001). Auditing that set is a
 * judgement call about real customers, not something to automate here.
 */
export class CompanyProfileDefaultPending2100000000000
  implements MigrationInterface
{
  name = 'CompanyProfileDefaultPending2100000000000';

  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `ALTER TABLE "freight"."company_profiles" ALTER COLUMN "status" SET DEFAULT 'pending'`,
    );
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `ALTER TABLE "freight"."company_profiles" ALTER COLUMN "status" SET DEFAULT 'active'`,
    );
  }
}
