import { MigrationInterface, QueryRunner } from 'typeorm'; /** * Marks a train schedule whose booking-window rule was configured by staff at * creation rather than inherited from the live global rules. * * Without this flag `restampPendingWindows` — which re-derives EVERY still * PRE_WINDOW schedule from the current global config after a global-rules edit — * would silently overwrite those hand-picked settings, which is precisely what * the per-schedule configuration exists to prevent. * * Defaults false, so every existing schedule keeps following the global rules. */ export class AddScheduleWindowRuleCustom3200000000000 implements MigrationInterface { name = 'AddScheduleWindowRuleCustom3200000000000'; public async up(queryRunner: QueryRunner): Promise { await queryRunner.query( `ALTER TABLE "freight"."train_schedules" ADD COLUMN IF NOT EXISTS "window_rule_custom" boolean NOT NULL DEFAULT false`, ); } public async down(queryRunner: QueryRunner): Promise { await queryRunner.query( `ALTER TABLE "freight"."train_schedules" DROP COLUMN IF EXISTS "window_rule_custom"`, ); } }