mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-26 12:41:04 +00:00
53 lines
1.7 KiB
TypeScript
53 lines
1.7 KiB
TypeScript
import { BaseEntity } from '@edr/api-common';
|
|
import { Freight } from '@edr/types';
|
|
import { Column, Entity, Index, JoinColumn, ManyToOne, OneToMany } from 'typeorm';
|
|
import { SurchargeType } from './surcharge-type.entity';
|
|
import { WeightLimitRule } from './weight-limit-rule.entity';
|
|
|
|
@Entity({ schema: 'freight', name: 'surcharges' })
|
|
@Index(['surchargeTypeId'])
|
|
@Index(['isActive'])
|
|
export class Surcharge extends BaseEntity {
|
|
@Column({ name: 'surcharge_type_id', type: 'uuid' })
|
|
surchargeTypeId!: string;
|
|
|
|
@ManyToOne(() => SurchargeType, (st) => st.surcharges)
|
|
@JoinColumn({ name: 'surcharge_type_id' })
|
|
surchargeType!: SurchargeType;
|
|
|
|
@Column({ name: 'fee_name', type: 'varchar', length: 255 })
|
|
feeName!: string;
|
|
|
|
@Column({ name: 'trigger_description', type: 'text', nullable: true })
|
|
triggerDescription?: string | null;
|
|
|
|
@Column({
|
|
name: 'calculation_method',
|
|
type: 'enum',
|
|
enum: Freight.CalculationMethod,
|
|
default: Freight.CalculationMethod.PER_TON,
|
|
})
|
|
calculationMethod!: Freight.CalculationMethod;
|
|
|
|
@Column({ name: 'rate', type: 'numeric', precision: 10, scale: 2 })
|
|
rate!: number;
|
|
|
|
@Column({ name: 'currency', type: 'char', length: 3, default: 'USD' })
|
|
currency!: string;
|
|
|
|
@Column({ name: 'apply_to_rail', type: 'boolean', default: false })
|
|
applyToRail!: boolean;
|
|
|
|
@Column({ name: 'apply_to_first_mile', type: 'boolean', default: false })
|
|
applyToFirstMile!: boolean;
|
|
|
|
@Column({ name: 'apply_to_last_mile', type: 'boolean', default: false })
|
|
applyToLastMile!: boolean;
|
|
|
|
@Column({ name: 'is_active', type: 'boolean', default: true })
|
|
isActive!: boolean;
|
|
|
|
@OneToMany(() => WeightLimitRule, (rule) => rule.surcharge)
|
|
weightLimitRules?: WeightLimitRule[];
|
|
}
|