import { MigrationInterface, QueryRunner } from 'typeorm'; /** * Per-schedule consist-change plan, executed automatically as the trip * proceeds (dispatch / checkpoint logs): * * - `planned_wagon_couples` `{ wagonId: pickupYardId }` — LOOSE wagons this * departure couples onto the train at a route stop. They join the built * train permanently when the train reaches that stop. * - `planned_wagon_real_cuts` `[wagonId, ...]` — cut wagons (see * planned_wagon_cut_yards) flagged as REAL cuts: the built train * permanently loses the wagon at its cut yard, instead of the default * soft cut where it stays in the build and only sits out this trip. */ export class SchedulePlannedWagonCouples3660000000000 implements MigrationInterface { name = 'SchedulePlannedWagonCouples3660000000000'; public async up(queryRunner: QueryRunner): Promise { await queryRunner.query(` ALTER TABLE freight.train_schedules ADD COLUMN IF NOT EXISTS planned_wagon_couples jsonb `); await queryRunner.query(` ALTER TABLE freight.train_schedules ADD COLUMN IF NOT EXISTS planned_wagon_real_cuts jsonb `); } public async down(queryRunner: QueryRunner): Promise { await queryRunner.query(` ALTER TABLE freight.train_schedules DROP COLUMN IF EXISTS planned_wagon_couples `); await queryRunner.query(` ALTER TABLE freight.train_schedules DROP COLUMN IF EXISTS planned_wagon_real_cuts `); } }