mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-29 22:18:12 +00:00
46 lines
1.5 KiB
TypeScript
46 lines
1.5 KiB
TypeScript
import { BaseEntity } from '@edr/api-common';
|
|
import { Freight } from '@edr/types';
|
|
import { Column, Entity, Index, JoinColumn, ManyToOne } from 'typeorm';
|
|
import { ContainerType } from './container-type.entity';
|
|
import { Surcharge } from './surcharge.entity';
|
|
|
|
@Entity({ schema: 'freight', name: 'weight_limit_rules' })
|
|
@Index(['containerTypeId'])
|
|
@Index(['surchargeId'])
|
|
@Index(['isActive'])
|
|
export class WeightLimitRule extends BaseEntity {
|
|
@Column({ name: 'container_type_id', type: 'uuid' })
|
|
containerTypeId!: string;
|
|
|
|
@ManyToOne(() => ContainerType, (ct) => ct.weightLimitRules)
|
|
@JoinColumn({ name: 'container_type_id' })
|
|
containerType!: ContainerType;
|
|
|
|
@Column({ name: 'trade_direction', type: 'enum', enum: Freight.TradeDirection })
|
|
tradeDirection!: Freight.TradeDirection;
|
|
|
|
@Column({ name: 'max_weight_tons', type: 'numeric', precision: 10, scale: 2 })
|
|
maxWeightTons!: number;
|
|
|
|
@Column({ name: 'warning_threshold_tons', type: 'numeric', precision: 10, scale: 2 })
|
|
warningThresholdTons!: number;
|
|
|
|
@Column({
|
|
name: 'exceeded_action',
|
|
type: 'enum',
|
|
enum: Freight.ExceededAction,
|
|
default: Freight.ExceededAction.WARNING_ONLY,
|
|
})
|
|
exceededAction!: Freight.ExceededAction;
|
|
|
|
@Column({ name: 'surcharge_id', type: 'uuid', nullable: true })
|
|
surchargeId?: string | null;
|
|
|
|
@ManyToOne(() => Surcharge, (s) => s.weightLimitRules, { nullable: true })
|
|
@JoinColumn({ name: 'surcharge_id' })
|
|
surcharge?: Surcharge | null;
|
|
|
|
@Column({ name: 'is_active', type: 'boolean', default: true })
|
|
isActive!: boolean;
|
|
}
|