mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-29 02:30:55 +00:00
- Introduced OverviewContractKpisDto and OverviewRecentContractDto for contract metrics. - Implemented OverviewContractsTabDto to structure the contracts tab response. - Added contract-related constants for status groupings and pipeline stages. - Created OverviewContractsTabPanel and OverviewRecentContractsTable components for UI representation. - Updated OverviewService and OverviewRepository to fetch contract data. - Integrated contracts tab into OverviewController and OverviewTabContent. - Added hooks for fetching contracts data in useOverview. - Updated types in the overview module to include contracts. - Enhanced the contract detail page with a "View contract" button for generated PDFs.
160 lines
4.3 KiB
TypeScript
160 lines
4.3 KiB
TypeScript
import { ApiProperty } from '@nestjs/swagger';
|
|
|
|
import {
|
|
OverviewBillingKpisDto,
|
|
OverviewBookingKpisDto,
|
|
OverviewContractKpisDto,
|
|
OverviewCustomerKpisDto,
|
|
OverviewOperationsKpisDto,
|
|
OverviewPaymentTrendPointDto,
|
|
OverviewPipelineCountDto,
|
|
OverviewRecentBookingDto,
|
|
OverviewRecentContractDto,
|
|
OverviewStaffKpisDto,
|
|
OverviewStatusCountDto,
|
|
OverviewTrendPointDto,
|
|
} from './overview-response.dto';
|
|
|
|
export class OverviewLabelCountDto {
|
|
@ApiProperty() label!: string;
|
|
@ApiProperty() count!: number;
|
|
}
|
|
|
|
export class OverviewPaymentMethodDto {
|
|
@ApiProperty() method!: string;
|
|
@ApiProperty() count!: number;
|
|
@ApiProperty() amountEtb!: number;
|
|
@ApiProperty() amountUsd!: number;
|
|
}
|
|
|
|
export class OverviewCurrencyAmountDto {
|
|
@ApiProperty() currency!: string;
|
|
@ApiProperty() amount!: number;
|
|
}
|
|
|
|
export class OverviewBookingsTabDto {
|
|
@ApiProperty({ type: OverviewBookingKpisDto })
|
|
kpis!: OverviewBookingKpisDto;
|
|
|
|
@ApiProperty({ type: [OverviewTrendPointDto] })
|
|
bookingTrend!: OverviewTrendPointDto[];
|
|
|
|
@ApiProperty({ type: [OverviewStatusCountDto] })
|
|
bookingsByStatus!: OverviewStatusCountDto[];
|
|
|
|
@ApiProperty({ type: [OverviewPipelineCountDto] })
|
|
bookingsByPipeline!: OverviewPipelineCountDto[];
|
|
|
|
@ApiProperty({ type: [OverviewLabelCountDto] })
|
|
bookingsByFreightType!: OverviewLabelCountDto[];
|
|
|
|
@ApiProperty({ type: [OverviewLabelCountDto] })
|
|
bookingsByCurrency!: OverviewLabelCountDto[];
|
|
|
|
@ApiProperty({ type: [OverviewRecentBookingDto] })
|
|
recentBookings!: OverviewRecentBookingDto[];
|
|
|
|
@ApiProperty()
|
|
generatedAt!: string;
|
|
}
|
|
|
|
export class OverviewContractsTabDto {
|
|
@ApiProperty({ type: OverviewContractKpisDto })
|
|
kpis!: OverviewContractKpisDto;
|
|
|
|
@ApiProperty({ type: [OverviewTrendPointDto] })
|
|
contractTrend!: OverviewTrendPointDto[];
|
|
|
|
@ApiProperty({ type: [OverviewStatusCountDto] })
|
|
contractsByStatus!: OverviewStatusCountDto[];
|
|
|
|
@ApiProperty({ type: [OverviewPipelineCountDto] })
|
|
contractsByPipeline!: OverviewPipelineCountDto[];
|
|
|
|
@ApiProperty({ type: [OverviewLabelCountDto] })
|
|
contractsByKind!: OverviewLabelCountDto[];
|
|
|
|
@ApiProperty({ type: [OverviewLabelCountDto] })
|
|
contractsByFreightType!: OverviewLabelCountDto[];
|
|
|
|
@ApiProperty({ type: [OverviewRecentContractDto] })
|
|
recentContracts!: OverviewRecentContractDto[];
|
|
|
|
@ApiProperty()
|
|
generatedAt!: string;
|
|
}
|
|
|
|
export class OverviewBillingTabDto {
|
|
@ApiProperty({ type: OverviewBillingKpisDto })
|
|
kpis!: OverviewBillingKpisDto;
|
|
|
|
@ApiProperty({ type: [OverviewPaymentTrendPointDto] })
|
|
paymentTrend!: OverviewPaymentTrendPointDto[];
|
|
|
|
@ApiProperty({ type: [OverviewStatusCountDto] })
|
|
paymentsByStatus!: OverviewStatusCountDto[];
|
|
|
|
@ApiProperty({ type: [OverviewPaymentMethodDto] })
|
|
paymentsByMethod!: OverviewPaymentMethodDto[];
|
|
|
|
@ApiProperty({ type: [OverviewCurrencyAmountDto] })
|
|
revenueByCurrency!: OverviewCurrencyAmountDto[];
|
|
|
|
@ApiProperty()
|
|
generatedAt!: string;
|
|
}
|
|
|
|
export class OverviewOperationsTabDto {
|
|
@ApiProperty({ type: OverviewOperationsKpisDto })
|
|
kpis!: OverviewOperationsKpisDto;
|
|
|
|
@ApiProperty({ type: [OverviewStatusCountDto] })
|
|
trainStatusBreakdown!: OverviewStatusCountDto[];
|
|
|
|
@ApiProperty({ type: [OverviewStatusCountDto] })
|
|
wagonStatusBreakdown!: OverviewStatusCountDto[];
|
|
|
|
@ApiProperty({ type: [OverviewStatusCountDto] })
|
|
containerStatusBreakdown!: OverviewStatusCountDto[];
|
|
|
|
@ApiProperty({ type: [OverviewStatusCountDto] })
|
|
cargoStatusBreakdown!: OverviewStatusCountDto[];
|
|
|
|
@ApiProperty()
|
|
generatedAt!: string;
|
|
}
|
|
|
|
export class OverviewCustomersTabDto {
|
|
@ApiProperty({ type: OverviewCustomerKpisDto })
|
|
kpis!: OverviewCustomerKpisDto;
|
|
|
|
@ApiProperty({ type: [OverviewTrendPointDto] })
|
|
customerGrowthTrend!: OverviewTrendPointDto[];
|
|
|
|
@ApiProperty({ type: [OverviewLabelCountDto] })
|
|
customersByType!: OverviewLabelCountDto[];
|
|
|
|
@ApiProperty({ type: [OverviewLabelCountDto] })
|
|
topCustomersByBookings!: OverviewLabelCountDto[];
|
|
|
|
@ApiProperty()
|
|
generatedAt!: string;
|
|
}
|
|
|
|
export class OverviewStaffTabDto {
|
|
@ApiProperty({ type: OverviewStaffKpisDto })
|
|
kpis!: OverviewStaffKpisDto;
|
|
|
|
@ApiProperty({ type: [OverviewStatusCountDto] })
|
|
usersByStatus!: OverviewStatusCountDto[];
|
|
|
|
@ApiProperty({ type: [OverviewTrendPointDto] })
|
|
employeeGrowthTrend!: OverviewTrendPointDto[];
|
|
|
|
@ApiProperty({ type: [OverviewLabelCountDto] })
|
|
activeUsersBreakdown!: OverviewLabelCountDto[];
|
|
|
|
@ApiProperty()
|
|
generatedAt!: string;
|
|
}
|