99 lines
2.3 KiB
TypeScript
99 lines
2.3 KiB
TypeScript
import { ContractStatus } from '@prisma/client';
|
|
export type UrgencyLevel = 'critical' | 'warning' | 'ok' | 'none';
|
|
export interface CockpitIssue {
|
|
type: string;
|
|
label: string;
|
|
urgency: UrgencyLevel;
|
|
daysRemaining?: number;
|
|
details?: string;
|
|
}
|
|
export interface CockpitContract {
|
|
id: number;
|
|
contractNumber: string;
|
|
type: string;
|
|
status: ContractStatus;
|
|
customer: {
|
|
id: number;
|
|
customerNumber: string;
|
|
name: string;
|
|
};
|
|
provider?: {
|
|
id: number;
|
|
name: string;
|
|
};
|
|
tariff?: {
|
|
id: number;
|
|
name: string;
|
|
};
|
|
providerName?: string;
|
|
tariffName?: string;
|
|
issues: CockpitIssue[];
|
|
highestUrgency: UrgencyLevel;
|
|
}
|
|
export interface CockpitSummary {
|
|
totalContracts: number;
|
|
criticalCount: number;
|
|
warningCount: number;
|
|
okCount: number;
|
|
byCategory: {
|
|
cancellationDeadlines: number;
|
|
contractEnding: number;
|
|
missingCredentials: number;
|
|
missingData: number;
|
|
missingInvoices: number;
|
|
openTasks: number;
|
|
pendingContracts: number;
|
|
reviewDue: number;
|
|
missingConsents: number;
|
|
};
|
|
}
|
|
export interface DocumentAlert {
|
|
id: number;
|
|
type: string;
|
|
documentNumber: string;
|
|
expiryDate: string;
|
|
daysUntilExpiry: number;
|
|
urgency: UrgencyLevel;
|
|
customer: {
|
|
id: number;
|
|
customerNumber: string;
|
|
name: string;
|
|
};
|
|
}
|
|
export interface ReportedMeterReading {
|
|
id: number;
|
|
readingDate: string;
|
|
value: number;
|
|
unit: string;
|
|
notes?: string;
|
|
reportedBy?: string;
|
|
createdAt: string;
|
|
meter: {
|
|
id: number;
|
|
meterNumber: string;
|
|
type: string;
|
|
};
|
|
customer: {
|
|
id: number;
|
|
customerNumber: string;
|
|
name: string;
|
|
};
|
|
providerPortal?: {
|
|
providerName: string;
|
|
portalUrl: string;
|
|
portalUsername?: string;
|
|
};
|
|
}
|
|
export interface CockpitResult {
|
|
contracts: CockpitContract[];
|
|
documentAlerts: DocumentAlert[];
|
|
reportedReadings: ReportedMeterReading[];
|
|
summary: CockpitSummary;
|
|
thresholds: {
|
|
criticalDays: number;
|
|
warningDays: number;
|
|
okDays: number;
|
|
};
|
|
}
|
|
export declare function getCockpitData(): Promise<CockpitResult>;
|
|
//# sourceMappingURL=contractCockpit.service.d.ts.map
|