export interface NotificationPayload {
  ip?: string;
  user_agent?: string;
  device_id?: string;
  type?: string;
  action_url?: string;
  action_text?: string;
}

export interface NotificationItem {
  id: string;
  type: string;
  notification_type: string;
  title: string;
  message: string;
  action_url?: string | null;
  data?: NotificationPayload;
  is_read: boolean;
  read_at: string | null;
  created_at: string;
  updated_at: string;
}

export interface PaginationLinks {
  first: string | null;
  last: string | null;
  prev: string | null;
  next: string | null;
}

export interface PaginationMeta {
  current_page: number;
  from: number;
  last_page: number;
  per_page: number;
  to: number;
  total: number;
}

export interface NotificationListResponse {
  success: boolean;
  message: string;
  data: {
    unread_count: number;
    notifications: {
      data: NotificationItem[];
      links: PaginationLinks;
      meta: PaginationMeta;
    };
  };
}

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

export interface UnreadCountResponse {
  success: boolean;
  data: {
    unread_count: number;
  };
}

export interface NotificationQuery {
  page?: number;
  per_page?: number;
  unread_only?: boolean;
}
