mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-27 00:52:50 +00:00
40 lines
1.5 KiB
TypeScript
40 lines
1.5 KiB
TypeScript
import { BaseEntity } from '@edr/api-common';
|
|
import { Column, Entity, Index, JoinColumn, ManyToOne, OneToMany } from 'typeorm';
|
|
|
|
import { WagonBookingAllocation } from '../../train-schedules/entities/wagon-booking-allocation.entity';
|
|
import { WagonType } from '../../wagon-types/entities/wagon-type.entity';
|
|
import { TrainSet } from './train-set.entity';
|
|
|
|
@Entity({ schema: 'freight', name: 'train_set_wagons' })
|
|
@Index(['trainSetId', 'sequenceNo'], { unique: true })
|
|
export class TrainSetWagon extends BaseEntity {
|
|
@Column({ name: 'train_set_id', type: 'uuid' })
|
|
trainSetId!: string;
|
|
|
|
@ManyToOne(() => TrainSet, (trainSet) => trainSet.wagons, { onDelete: 'CASCADE' })
|
|
@JoinColumn({ name: 'train_set_id' })
|
|
trainSet?: TrainSet;
|
|
|
|
@Column({ name: 'wagon_type_id', type: 'uuid' })
|
|
wagonTypeId!: string;
|
|
|
|
@ManyToOne(() => WagonType, (wagonType) => wagonType.trainSetWagons)
|
|
@JoinColumn({ name: 'wagon_type_id' })
|
|
wagonType?: WagonType;
|
|
|
|
@Column({ name: 'sequence_no', type: 'int' })
|
|
sequenceNo!: number;
|
|
|
|
@Column({ name: 'capacity_tons', type: 'numeric', precision: 10, scale: 3 })
|
|
capacityTons!: number;
|
|
|
|
@Column({ name: 'length_meters', type: 'numeric', precision: 10, scale: 3 })
|
|
lengthMeters!: number;
|
|
|
|
@Column({ name: 'assigned_weight_tons', type: 'numeric', precision: 10, scale: 3, default: 0 })
|
|
assignedWeightTons!: number;
|
|
|
|
@OneToMany(() => WagonBookingAllocation, (allocation) => allocation.trainSetWagon)
|
|
allocations?: WagonBookingAllocation[];
|
|
}
|