gdpr audit implemented, email log, vollmachten, pdf delete cancel data privacy and vollmachten, removed message no id card in engergy car, and other contracts that are not telecom contracts, added insert counter for engery
This commit is contained in:
@@ -8,6 +8,9 @@ export interface User {
|
||||
roles?: Role[];
|
||||
isCustomerPortal?: boolean;
|
||||
representedCustomers?: CustomerSummary[];
|
||||
whatsappNumber?: string;
|
||||
telegramUsername?: string;
|
||||
signalNumber?: string;
|
||||
}
|
||||
|
||||
// Zusammenfassung für Vertreter-Listen
|
||||
@@ -20,6 +23,22 @@ export interface CustomerSummary {
|
||||
type: 'PRIVATE' | 'BUSINESS';
|
||||
}
|
||||
|
||||
export interface RepresentativeAuthorization {
|
||||
id: number;
|
||||
customerId: number;
|
||||
representativeId: number;
|
||||
isGranted: boolean;
|
||||
grantedAt?: string;
|
||||
withdrawnAt?: string;
|
||||
source?: string;
|
||||
documentPath?: string;
|
||||
notes?: string;
|
||||
representative?: CustomerSummary;
|
||||
customer?: CustomerSummary;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
}
|
||||
|
||||
export interface Role {
|
||||
id: number;
|
||||
name: string;
|
||||
@@ -143,6 +162,8 @@ export interface Meter {
|
||||
readings?: MeterReading[];
|
||||
}
|
||||
|
||||
export type MeterReadingStatus = 'RECORDED' | 'REPORTED' | 'TRANSFERRED';
|
||||
|
||||
export interface MeterReading {
|
||||
id: number;
|
||||
meterId: number;
|
||||
@@ -150,6 +171,10 @@ export interface MeterReading {
|
||||
value: number;
|
||||
unit: string;
|
||||
notes?: string;
|
||||
reportedBy?: string;
|
||||
status: MeterReadingStatus;
|
||||
transferredAt?: string;
|
||||
transferredBy?: string;
|
||||
}
|
||||
|
||||
export type InvoiceType = 'INTERIM' | 'FINAL' | 'NOT_AVAILABLE';
|
||||
@@ -522,11 +547,45 @@ export interface CockpitSummary {
|
||||
openTasks: number;
|
||||
pendingContracts: number;
|
||||
reviewDue: number;
|
||||
missingConsents: number;
|
||||
};
|
||||
}
|
||||
|
||||
export interface DocumentAlert {
|
||||
id: number;
|
||||
type: string;
|
||||
documentNumber: string;
|
||||
expiryDate: string;
|
||||
daysUntilExpiry: number;
|
||||
urgency: CockpitUrgencyLevel;
|
||||
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;
|
||||
@@ -534,3 +593,110 @@ export interface CockpitResult {
|
||||
okDays: number;
|
||||
};
|
||||
}
|
||||
|
||||
// ==================== AUDIT-LOGGING & DSGVO ====================
|
||||
|
||||
export type AuditAction = 'CREATE' | 'READ' | 'UPDATE' | 'DELETE' | 'EXPORT' | 'ANONYMIZE' | 'LOGIN' | 'LOGOUT' | 'LOGIN_FAILED';
|
||||
export type AuditSensitivity = 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL';
|
||||
export type ConsentType = 'DATA_PROCESSING' | 'MARKETING_EMAIL' | 'MARKETING_PHONE' | 'DATA_SHARING_PARTNER';
|
||||
export type ConsentStatus = 'GRANTED' | 'WITHDRAWN' | 'PENDING';
|
||||
export type DeletionRequestStatus = 'PENDING' | 'IN_PROGRESS' | 'COMPLETED' | 'PARTIALLY_COMPLETED' | 'REJECTED';
|
||||
|
||||
export interface AuditLog {
|
||||
id: number;
|
||||
userId?: number;
|
||||
userEmail: string;
|
||||
userRole?: string;
|
||||
customerId?: number;
|
||||
isCustomerPortal: boolean;
|
||||
action: AuditAction;
|
||||
sensitivity: AuditSensitivity;
|
||||
resourceType: string;
|
||||
resourceId?: string;
|
||||
resourceLabel?: string;
|
||||
endpoint: string;
|
||||
httpMethod: string;
|
||||
ipAddress: string;
|
||||
userAgent?: string;
|
||||
changesBefore?: string;
|
||||
changesAfter?: string;
|
||||
changesEncrypted: boolean;
|
||||
dataSubjectId?: number;
|
||||
legalBasis?: string;
|
||||
success: boolean;
|
||||
errorMessage?: string;
|
||||
durationMs?: number;
|
||||
createdAt: string;
|
||||
hash?: string;
|
||||
previousHash?: string;
|
||||
}
|
||||
|
||||
export interface CustomerConsent {
|
||||
id: number | null;
|
||||
customerId: number;
|
||||
consentType: ConsentType;
|
||||
status: ConsentStatus;
|
||||
grantedAt?: string;
|
||||
withdrawnAt?: string;
|
||||
source?: string;
|
||||
documentPath?: string;
|
||||
version?: string;
|
||||
ipAddress?: string;
|
||||
createdBy?: string;
|
||||
createdAt?: string;
|
||||
updatedAt?: string;
|
||||
}
|
||||
|
||||
export interface DataDeletionRequest {
|
||||
id: number;
|
||||
customerId: number;
|
||||
customer?: {
|
||||
id: number;
|
||||
customerNumber: string;
|
||||
firstName: string;
|
||||
lastName: string;
|
||||
email?: string;
|
||||
};
|
||||
status: DeletionRequestStatus;
|
||||
requestedAt: string;
|
||||
requestSource: string;
|
||||
requestedBy: string;
|
||||
processedAt?: string;
|
||||
processedBy?: string;
|
||||
deletedData?: string;
|
||||
retainedData?: string;
|
||||
retentionReason?: string;
|
||||
proofDocument?: string;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
}
|
||||
|
||||
export interface AuditRetentionPolicy {
|
||||
id: number;
|
||||
resourceType: string;
|
||||
sensitivity?: AuditSensitivity;
|
||||
retentionDays: number;
|
||||
description?: string;
|
||||
legalBasis?: string;
|
||||
isActive: boolean;
|
||||
}
|
||||
|
||||
export interface GDPRDashboardStats {
|
||||
deletionRequests: {
|
||||
pending: number;
|
||||
completedLast30Days: number;
|
||||
};
|
||||
dataExports: {
|
||||
last30Days: number;
|
||||
};
|
||||
consents: {
|
||||
granted: number;
|
||||
withdrawn: number;
|
||||
pending: number;
|
||||
};
|
||||
}
|
||||
|
||||
export interface ConsentTypeLabel {
|
||||
label: string;
|
||||
description: string;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user