import { AppDataSource } from '../data-source'; import { SeedEdrWagonFleetErNumbering2260000000000 } from '../migrations/2260000000000-SeedEdrWagonFleetErNumbering'; async function seedEdRWagons() { await AppDataSource.initialize(); const queryRunner = AppDataSource.createQueryRunner(); try { await queryRunner.connect(); await queryRunner.startTransaction(); await new SeedEdrWagonFleetErNumbering2260000000000().up(queryRunner); const summary = await queryRunner.query(` SELECT wt.code, wt.name, COUNT(*)::int AS wagons, MIN(w.wagon_number) AS first_wagon, MAX(w.wagon_number) AS last_wagon, COUNT(*) FILTER (WHERE w.status = 'AVAILABLE')::int AS available, COUNT(*) FILTER (WHERE w.current_yard_id IS NULL)::int AS unassigned_yard FROM freight.wagons w JOIN freight.wagon_types wt ON wt.id = w.wagon_type_id WHERE w.wagon_number BETWEEN 'ER0001' AND 'ER1100' GROUP BY wt.code, wt.name ORDER BY MIN(w.wagon_number); `); const [totals] = await queryRunner.query(` SELECT COUNT(*)::int AS total FROM freight.wagons; `); await queryRunner.commitTransaction(); console.table(summary); console.log(`Seeded EDR wagon fleet — ${totals.total} wagons total (expected 1100).`); } catch (error) { await queryRunner.rollbackTransaction(); throw error; } finally { await queryRunner.release(); await AppDataSource.destroy(); } } seedEdRWagons().catch((error) => { console.error('Failed to seed EDR wagon fleet:', error); process.exit(1); });