import { type MigrationInterface, type QueryRunner } from 'typeorm';

/**
 * Add timing columns so quote/booking transport rows can carry both
 * ends of the trip:
 *   - booking_transport_items.dropoff_time  (pickup_time already existed)
 *   - query_quote_transports.pickup_time    (new — quote couldn't capture time before)
 *   - query_quote_transports.dropoff_time   (new — paired with pickup_time)
 *
 * All three are nullable HH:MM strings (varchar(10)), matching the
 * existing pickup_time / return_pickup_time shape on the booking side.
 */
export class AddDropoffAndPickupTimes1779900000000 implements MigrationInterface {
  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `ALTER TABLE booking_transport_items ADD COLUMN IF NOT EXISTS dropoff_time varchar(10)`,
    );
    await queryRunner.query(
      `ALTER TABLE query_quote_transports ADD COLUMN IF NOT EXISTS pickup_time varchar(10)`,
    );
    await queryRunner.query(
      `ALTER TABLE query_quote_transports ADD COLUMN IF NOT EXISTS dropoff_time varchar(10)`,
    );
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `ALTER TABLE booking_transport_items DROP COLUMN IF EXISTS dropoff_time`,
    );
    await queryRunner.query(`ALTER TABLE query_quote_transports DROP COLUMN IF EXISTS pickup_time`);
    await queryRunner.query(
      `ALTER TABLE query_quote_transports DROP COLUMN IF EXISTS dropoff_time`,
    );
  }
}
