/* eslint-disable @typescript-eslint/no-explicit-any */

import React from "react";

import styles from "./admin-analytics.module.scss";

import PageIntro from "@/components/dashboard/PageIntro";

import AdminAnalyticsCard from "../AdminAnalyticsCard";

interface AnalyticsProps {
  totals: any;
}

const AdminAnalyticsWrapper: React.FC<
  AnalyticsProps
> = ({ totals }) => {
  return (
    <div className={styles.admin}>
      <PageIntro
        title="Performance Overview"
        description="See all the integral data points of your business in one place."
      />

      <div
        className={
          styles.admin__grid
        }
      >
        <AdminAnalyticsCard
          title="Total Deposits"
          description="All processed deposits made."
          value={
            totals?.deposits ||
            0
          }
          type="balance"
        />

        <AdminAnalyticsCard
          title="Total Withdrawals"
          description="All processed withdrawals."
          value={
            totals?.withdrawals ||
            0
          }
          type="balance"
        />

        <AdminAnalyticsCard
          title="Pending Withdrawals"
          description="Awaiting approval."
          value={
            totals?.pendingWithdrawals ||
            0
          }
          type="balance"
        />

        <AdminAnalyticsCard
          title="Total Users"
          description="Registered users."
          value={
            totals?.users ||
            0
          }
          type="count"
        />

        <AdminAnalyticsCard
          title="Investment Plans"
          description="Available plans."
          value={
            totals?.investmentPlans ||
            0
          }
          type="count"
        />

        <AdminAnalyticsCard
          title="Active Investments"
          description="Currently running."
          value={
            totals?.activeInvestments ||
            0
          }
          type="count"
        />

        <AdminAnalyticsCard
          title="Pending Deposits"
          description="Awaiting confirmation."
          value={
            totals?.pendingDeposits ||
            0
          }
          type="balance"
        />

        <AdminAnalyticsCard
          title="Trading Signals"
          description="Published signals."
          value={
            totals?.signals ||
            0
          }
          type="count"
        />
      </div>
    </div>
  );
};

export default AdminAnalyticsWrapper;