59 lines
1.4 KiB
TypeScript
59 lines
1.4 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;
|
|
};
|
|
}
|
|
export interface CockpitResult {
|
|
contracts: CockpitContract[];
|
|
summary: CockpitSummary;
|
|
thresholds: {
|
|
criticalDays: number;
|
|
warningDays: number;
|
|
okDays: number;
|
|
};
|
|
}
|
|
export declare function getCockpitData(): Promise<CockpitResult>;
|
|
//# sourceMappingURL=contractCockpit.service.d.ts.map
|