Files
edr-platform/apps/edr-freight-api/src/modules/scheduling-reschedule/scheduling-reschedule.repository.ts
2026-07-16 00:33:31 +00:00

30 lines
922 B
TypeScript

import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { EntityManager, Repository } from 'typeorm';
import { SchedulingEvent, type RescheduleTrigger } from './entities/scheduling-event.entity';
@Injectable()
export class SchedulingRescheduleRepository {
constructor(
@InjectRepository(SchedulingEvent)
private readonly repository: Repository<SchedulingEvent>,
) {}
/** Persist an audit record for a completed reschedule. */
async createEvent(
data: {
trainScheduleId: string;
trigger: RescheduleTrigger;
actorUserId?: string;
reason?: string;
planSnapshot: Record<string, unknown>;
displacedBookingIds: string[];
},
manager?: EntityManager,
): Promise<SchedulingEvent> {
const repo = manager ? manager.getRepository(SchedulingEvent) : this.repository;
return repo.save(repo.create(data));
}
}