mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-29 19:58:11 +00:00
refactor pricing data seeder to fold surcharge types into rates update route meta subtitle to remove surcharge types enhance RuleEngineFormDialog to support conditional field visibility remove surcharge types from URL constants and related services add cargo leaf options query for bulk cargo type selection update RuleEngineResourcePage to utilize cargo leaf options modify resources configuration to remove surcharge types implement migration to fold surcharge types into rates create utility to derive legacy rate types from new rate structure
43 lines
1.4 KiB
TypeScript
43 lines
1.4 KiB
TypeScript
import { BaseEntity } from '@edr/api-common';
|
|
import { Column, Entity, Index, JoinColumn, ManyToOne } from 'typeorm';
|
|
import { Rate } from '../../rule-engine/entities/rate.entity';
|
|
import { Booking } from './booking.entity';
|
|
import { BookingRateSnapshot } from './booking-rate-snapshot.entity';
|
|
|
|
@Entity({ schema: 'freight', name: 'booking_cargo_modifier' })
|
|
@Index(['bookingId'])
|
|
@Index(['rateId'])
|
|
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;
|
|
|
|
/**
|
|
* The trigger-based rate (hazard, reefer, overweight …) that produced this
|
|
* surcharge line. Replaces the former surcharge_type link now that rates are
|
|
* self-describing.
|
|
*/
|
|
@Column({ name: 'rate_id', type: 'uuid' })
|
|
rateId!: string;
|
|
|
|
@ManyToOne(() => Rate)
|
|
@JoinColumn({ name: 'rate_id' })
|
|
rate?: Rate;
|
|
|
|
@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;
|
|
}
|