mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-30 08:48:11 +00:00
38 lines
1.3 KiB
TypeScript
38 lines
1.3 KiB
TypeScript
import { BaseEntity } from '@edr/api-common';
|
|
import { Column, Entity, Index, JoinColumn, ManyToOne } from 'typeorm';
|
|
import { SurchargeType } from '../../rule-engine/entities/surcharge-type.entity';
|
|
import { Booking } from './booking.entity';
|
|
import { BookingRateSnapshot } from './booking-rate-snapshot.entity';
|
|
|
|
@Entity({ schema: 'freight', name: 'booking_cargo_modifier' })
|
|
@Index(['bookingId'])
|
|
@Index(['surchargeTypeId'])
|
|
export class BookingCargoModifier extends BaseEntity {
|
|
@Column({ name: 'booking_id', type: 'uuid' })
|
|
bookingId!: string;
|
|
|
|
@ManyToOne(() => Booking, (b) => b.cargoModifiers, { onDelete: 'CASCADE' })
|
|
@JoinColumn({ name: 'booking_id' })
|
|
booking?: Booking;
|
|
|
|
@Column({ name: 'surcharge_type_id', type: 'uuid' })
|
|
surchargeTypeId!: string;
|
|
|
|
@ManyToOne(() => SurchargeType)
|
|
@JoinColumn({ name: 'surcharge_type_id' })
|
|
surchargeType?: SurchargeType;
|
|
|
|
@Column({ name: 'trigger_value', type: 'numeric', precision: 14, scale: 4, nullable: true })
|
|
triggerValue?: number | null;
|
|
|
|
@Column({ name: 'calculated_amount', type: 'numeric', precision: 14, scale: 2 })
|
|
calculatedAmount!: number;
|
|
|
|
@Column({ name: 'rate_snapshot_id', type: 'uuid' })
|
|
rateSnapshotId!: string;
|
|
|
|
@ManyToOne(() => BookingRateSnapshot)
|
|
@JoinColumn({ name: 'rate_snapshot_id' })
|
|
rateSnapshot?: BookingRateSnapshot;
|
|
}
|