mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-26 18:42:49 +00:00
42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
import { BaseEntity } from '@edr/api-common';
|
|
import { Column, Entity, Index, JoinColumn, ManyToOne } from 'typeorm';
|
|
import { Booking } from './booking.entity';
|
|
|
|
export const REVIEW_NOTE_TYPES = [
|
|
'CHANGES_REQUESTED',
|
|
'REJECTION',
|
|
'STAFF_NOTE',
|
|
/**
|
|
* The customer asked GL Ethiopia to correct the draft customs declaration
|
|
* (price/files). One row per round — the draft/change-request loop can repeat.
|
|
*/
|
|
'DRAFT_DECL_CHANGE_REQUEST',
|
|
/**
|
|
* GL asked the customer for additional clearance document(s). Shown as a
|
|
* thread on both the GL clearance page and the customer's portal — the
|
|
* customer answers by uploading an ad-hoc document.
|
|
*/
|
|
'ADDITIONAL_DOC_REQUEST',
|
|
] as const;
|
|
export type ReviewNoteType = (typeof REVIEW_NOTE_TYPES)[number];
|
|
|
|
@Entity({ schema: 'freight', name: 'booking_review_note' })
|
|
@Index(['bookingId'])
|
|
export class BookingReviewNote extends BaseEntity {
|
|
@Column({ name: 'booking_id', type: 'uuid' })
|
|
bookingId!: string;
|
|
|
|
@ManyToOne(() => Booking, (b) => b.reviewNotes, { onDelete: 'CASCADE' })
|
|
@JoinColumn({ name: 'booking_id' })
|
|
booking?: Booking;
|
|
|
|
@Column({ name: 'author_id', type: 'uuid', nullable: true })
|
|
authorId?: string | null;
|
|
|
|
@Column({ name: 'note', type: 'text' })
|
|
note!: string;
|
|
|
|
@Column({ name: 'type', type: 'varchar', length: 30 })
|
|
type!: ReviewNoteType;
|
|
}
|