mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-09-07 18:55:42 +00:00
30 lines
922 B
TypeScript
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));
|
|
}
|
|
}
|