export type NotificationFilterStatus = 'all' | 'unread' | 'read';

export type NotificationType =
  | 'TRAINING_APPROVED'
  | 'TRAINING_REJECTED'
  | 'CONTENT_SUBMITTED'
  | 'CONTENT_APPROVED'
  | 'CONTENT_RETURNED'
  | 'CONTENT_REJECTED'
  | 'CONTENT_PUBLISHED'
  | 'ANNOUNCEMENT_PUBLISHED'
  | 'IMPORT_COMPLETED'
  | 'MASTER_REVIEW_APPROVED'
  | 'MASTER_REVIEW_REJECTED'
  | 'SYSTEM';

export interface NotificationItem {
  id: number;
  organization_id: string;
  user_id: string;
  title: string;
  message: string;
  type: NotificationType;
  reference_type: string | null;
  reference_id: string | null;
  is_read: boolean;
  read_at: string | null;
  created_at: string;
  href: string | null;
}

export interface NotificationFilters {
  page?: number;
  limit?: number;
  search?: string;
  status?: NotificationFilterStatus;
  type?: NotificationType;
}

export interface NotificationsResponse {
  success: boolean;
  time: string;
  message: string;
  total_notifications: number;
  unread_count: number;
  offset: number;
  limit: number;
  notifications: NotificationItem[];
}

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