style: overview revamp

This commit is contained in:
Nathnael
2026-08-13 12:44:06 +00:00
parent 3190b9bd38
commit 0df4be1820
34 changed files with 2412 additions and 644 deletions

View File

@@ -13,6 +13,7 @@ export interface IOverviewBookingKpis {
export interface IOverviewOperationsKpis {
trainsActive: number;
wagonsAvailable: number;
wagonsTotal: number;
containersInTransit: number;
cargoesLoaded: number;
schedulesUpcoming: number;
@@ -99,13 +100,60 @@ export interface IOverviewRecentContract {
createdAt: string;
}
/** Bookings/revenue/tonnage totals for one range-wide window. */
export interface IOverviewPeriodTotals {
bookingsCreated: number;
revenueEtb: number;
revenueUsd: number;
tons: number;
}
/** One label's revenue split, e.g. a trade direction or freight type. */
export interface IOverviewRevenueSlice {
label: string;
amountEtb: number;
amountUsd: number;
}
export interface IOverviewTonsTrendPoint {
date: string;
tons: number;
}
/** One direction → freight-type revenue flow (Sankey link). */
export interface IOverviewRevenueFlow {
direction: string;
freightType: string;
amountEtb: number;
amountUsd: number;
}
/** Booking arrivals for one weekday × 3-hour block. */
export interface IOverviewHeatmapCell {
/** ISO weekday, 1 = Monday … 7 = Sunday. */
dow: number;
/** 3-hour block, 0 = 0003 … 7 = 2124. */
block: number;
count: number;
}
export interface IOverviewDashboard {
kpis: IOverviewKpis;
bookingTrend: IOverviewTrendPoint[];
bookingsByStatus: IOverviewStatusCount[];
bookingsByPipeline: IOverviewPipelineCount[];
paymentTrend: IOverviewPaymentTrendPoint[];
recentBookings: IOverviewRecentBooking[];
/** Totals for the selected range, ending today. */
current: IOverviewPeriodTotals;
/** Totals for the immediately preceding range of the same length — the delta baseline. */
previous: IOverviewPeriodTotals;
revenueByDirection: IOverviewRevenueSlice[];
revenueByFreightType: IOverviewRevenueSlice[];
/** The preceding same-length window's daily revenue — ghost-line comparison. */
previousPaymentTrend: IOverviewPaymentTrendPoint[];
tonsTrend: IOverviewTonsTrendPoint[];
revenueFlows: IOverviewRevenueFlow[];
bookingHeatmap: IOverviewHeatmapCell[];
generatedAt: string;
}