mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-29 21:08:12 +00:00
51 lines
1.6 KiB
TypeScript
51 lines
1.6 KiB
TypeScript
import { BaseEntity } from '@edr/api-common';
|
|
import { Column, Entity, Index, JoinColumn, ManyToOne } from 'typeorm';
|
|
|
|
import { WarehouseFeeInvoice } from './warehouse-fee-invoice.entity';
|
|
|
|
export const WAREHOUSE_FEE_TYPES = [
|
|
'CONTAINER_DEMURRAGE',
|
|
'BULK_DEMURRAGE',
|
|
'STORAGE_FEE',
|
|
'HANDLING_FEE',
|
|
] as const;
|
|
export type WarehouseFeeType = (typeof WAREHOUSE_FEE_TYPES)[number];
|
|
|
|
@Entity({ schema: 'freight', name: 'warehouse_fee_invoice_items' })
|
|
@Index(['invoiceId'])
|
|
export class WarehouseFeeInvoiceItem extends BaseEntity {
|
|
@Column({ name: 'invoice_id', type: 'uuid' })
|
|
invoiceId!: string;
|
|
|
|
@ManyToOne(() => WarehouseFeeInvoice, { onDelete: 'CASCADE' })
|
|
@JoinColumn({ name: 'invoice_id' })
|
|
invoice?: WarehouseFeeInvoice;
|
|
|
|
@Column({ name: 'fee_rule_id', type: 'uuid', nullable: true })
|
|
feeRuleId?: string | null;
|
|
|
|
@Column({ name: 'fee_type', type: 'varchar', length: 32 })
|
|
feeType!: WarehouseFeeType;
|
|
|
|
@Column({ name: 'description', type: 'varchar', length: 255 })
|
|
description!: string;
|
|
|
|
@Column({ name: 'quantity', type: 'numeric', precision: 12, scale: 2, default: 1 })
|
|
quantity!: number;
|
|
|
|
@Column({ name: 'unit_rate', type: 'numeric', precision: 14, scale: 2, default: 0 })
|
|
unitRate!: number;
|
|
|
|
@Column({ name: 'amount', type: 'numeric', precision: 14, scale: 2, default: 0 })
|
|
amount!: number;
|
|
|
|
@Column({ name: 'currency', type: 'varchar', length: 8, default: 'USD' })
|
|
currency!: string;
|
|
|
|
@Column({ name: 'chargeable_days', type: 'int', nullable: true })
|
|
chargeableDays?: number | null;
|
|
|
|
@Column({ name: 'free_days', type: 'int', nullable: true })
|
|
freeDays?: number | null;
|
|
}
|