export type NotificationSeverity = 'info' | 'success' | 'warning' | 'error';
export type NotificationStatus = 'unread' | 'read' | 'archived';

export interface NotificationListItem {
  id: string;
  organizationId: string;
  recipientUserId: string;
  eventId: string;
  title: string;
  body: string;
  linkUrl: string | null;
  severity: NotificationSeverity;
  status: NotificationStatus;
  readAt: string | null;
  archivedAt: string | null;
  metadata: Record<string, unknown> | null;
  createdAt: string;
  updatedAt: string;
}

export interface NotificationFilters {
  page?: number;
  limit?: number;
  status?: NotificationStatus | 'all';
}

export interface NotificationListResponse {
  success: boolean;
  time: string;
  message: string;
  items: NotificationListItem[];
  totalItems: number;
  unreadCount: number;
  page: number;
  limit: number;
}

export interface NotificationUnreadCountResponse {
  success: boolean;
  time: string;
  message: string;
  unreadCount: number;
}

export interface NotificationMutationResponse {
  success: boolean;
  message: string;
}
