export interface NotificationData {
  type: string;
  [key: string]: unknown;
}

export interface AppNotification {
  id: string;
  type: string;
  data: NotificationData;
  read_at: string | null;
  created_at: string;
  updated_at: string;
}

export interface PaginatedNotifications {
  current_page: number;
  data: AppNotification[];
  last_page: number;
  per_page: number;
  total: number;
}

export interface NotificationPreference {
  id?: string;
  notification_type: string;
  label: string;
  channel_email: boolean;
  channel_in_app: boolean;
  channel_sms: boolean;
  is_enabled: boolean;
}

export interface UpdateNotificationPreferencesPayload {
  preferences: {
    notification_type: string;
    channel_email: boolean;
    channel_in_app: boolean;
    channel_sms: boolean;
    is_enabled: boolean;
  }[];
}
