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; }