export type NotificationNavigation = {
  route: string
  params: Record<string, string>
  query: Record<string, string>
}

export type NotificationData = {
  user_id?: string
  sender_id?: string | null
  type?: string
  message?: string
  user_name?: string
  user_email?: string
  user_status?: string
}

export type NotificationItem = {
  id: string
  type: string
  title: string
  message: string
  is_read: boolean
  created_at: string
  time_ago: string
  icon: string
  color: string
  navigation: NotificationNavigation
  data: NotificationData
}

export type NotificationPagination = {
  current_page: number
  last_page: number
  per_page: number
  total: number
  has_more: boolean
}

export type NotificationsApiResponse = {
  success: boolean
  data: NotificationItem[]
  pagination: NotificationPagination
  unread_count: number
  message?: string
}

export type NotificationCountApiResponse = {
  success: boolean
  unread_count: number
  message?: string
}

export type NotificationActionApiResponse = {
  success: boolean
  message?: string
}

export type ListNotificationsParams = {
  page?: number
  per_page?: number
  filter?: 'all' | 'unread' | 'read'
}
