mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-29 09:30:59 +00:00
- Add DTOs for creating booking orders and viewing contract quantities. - Create entities for booking orders and booking order lines. - Implement service for managing general contract operations, including activation after payment and retrieving quantity lines. - Develop UI components for contract detail and list pages, including order placement dialog. - Integrate API service for booking orders, enabling listing and creating orders against contracts. - Enhance contract status display and quantity pool visualization in the UI.
24 lines
900 B
TypeScript
24 lines
900 B
TypeScript
export interface SchedulingPriorityBooking {
|
|
isGovernment?: boolean;
|
|
priorityScore?: number | null;
|
|
// One-time bookings always carry a date; general contracts (never scheduled)
|
|
// may be null — treated as epoch 0 so they sort last.
|
|
scheduledDate?: Date | string | null;
|
|
}
|
|
|
|
/** Government first, then priority score, then earliest scheduled date. */
|
|
export function compareSchedulingPriority(
|
|
a: SchedulingPriorityBooking,
|
|
b: SchedulingPriorityBooking,
|
|
): number {
|
|
const govDiff = Number(Boolean(b.isGovernment)) - Number(Boolean(a.isGovernment));
|
|
if (govDiff !== 0) return govDiff;
|
|
|
|
const priorityDiff = (b.priorityScore ?? 0) - (a.priorityScore ?? 0);
|
|
if (priorityDiff !== 0) return priorityDiff;
|
|
|
|
const aTime = a.scheduledDate ? new Date(a.scheduledDate).getTime() : 0;
|
|
const bTime = b.scheduledDate ? new Date(b.scheduledDate).getTime() : 0;
|
|
return aTime - bTime;
|
|
}
|