/**
 * @ai-summary Type definitions for notifications feature
 * @ai-context Supports maintenance due/overdue and document expiring/expired notifications
 */

export interface NotificationSummary {
  maintenanceDueSoon: number;
  maintenanceOverdue: number;
  documentsExpiringSoon: number;
  documentsExpired: number;
}

export interface DueMaintenanceItem {
  scheduleId: string;
  vehicleId: string;
  vehicleName: string;
  category: string;
  subtypes: string[];
  dueDate?: string;
  dueMileage?: number;
  isDueSoon: boolean;
  isOverdue: boolean;
  emailNotifications: boolean;
}

export interface ExpiringDocument {
  documentId: string;
  vehicleId: string;
  vehicleName: string;
  documentType: string;
  title: string;
  expirationDate: string;
  isExpiringSoon: boolean;
  isExpired: boolean;
  emailNotifications: boolean;
}

export interface UserNotification {
  id: string;
  notificationType: string;
  title: string;
  message: string;
  referenceType?: string | null;
  referenceId?: string | null;
  vehicleId?: string | null;
  isRead: boolean;
  createdAt: string;
  readAt?: string | null;
}

export interface UnreadNotificationCount {
  total: number;
  maintenance: number;
  documents: number;
}
