/* eslint-disable @typescript-eslint/no-unused-vars */
/* eslint-disable @typescript-eslint/no-explicit-any */
import { usePage, Head } from '@inertiajs/react'
import React from 'react'
import styles from './home.module.scss'
import AnalyticsCardWrapper from '@/components/dashboard/AnalyticsCardWrapper'
import Todos from '@/components/dashboard/Todos'
import Plans from '@/components/dashboard/Plans'
import RecentTransactions from '@/components/dashboard/RecentTransactions'
import UserDashboardLayout from '@/layouts/user_dashboard_layout'
import AnalyticsSummaryCard from '@/components/dashboard/AnalyticsSummaryCard'
// import Marketing from '@/components/dashboard/Marketing'
import Welcome from '@/components/dashboard/Welcome'
// import ExchangeRates from '@/components/dashboard/ExchangeRates'
import BuyBtc from '@/components/dashboard/BuyBtc'
import HomeChart from '@/components/dashboard/HomeChart'
// import PortfolioCalculator from '@/components/dashboard/Calclulator'
import ActivePlans from '@/components/dashboard/ActivePlans'
import Suggestions from '@/components/dashboard/Suggestions'
import NewTicker from '@/components/shared/NewTicker'
import Announcement from '@/components/dashboard/Announcement'
import DashboardMessage from '@/components/dashboard/DashboardMessage'
import { formatReadableDate } from '@/lib/utils/format-date-readable'

// ✅ Props from Laravel controller
interface OverviewProps {
  investmentPlans?: any[]
  estatePlans?: any[]
  transactions?: any[]
  trades?: any[]
  plans?: any
}

// ✅ Extend React.FC for Laravel Inertia pages
type PageWithLayout<P = Record<string, unknown>> = React.FC<P> & {
  layout?: (page: React.ReactNode) => React.ReactNode
}

const Overview: PageWithLayout<OverviewProps> = ({
  investmentPlans,
  estatePlans,
  transactions,
  trades,
  plans
}) => {

  // console.log("Received transactions", transactions)
  const { auth, appSettings } = usePage().props as any

  return (
    <>
      <Head title="Dashboard Overview" />
      <div className={styles['home']}>
        <Welcome />
        
        { appSettings?.enable_announcement && 
          <Announcement 
            announcement={appSettings?.announcement} 
            /> 
        }

        {
         auth?.user?.show_user_dashboard_message &&
         auth?.user?.dashboard_message && (
          <DashboardMessage
            message={auth.user.dashboard_message}
            createdAt={formatReadableDate(auth.user.updated_at)}
          />
        )}

        <AnalyticsSummaryCard />
        <NewTicker />
        <AnalyticsCardWrapper />
        <HomeChart />
        <Suggestions />
        <Todos />
        {/* <ExchangeRates /> */}
        <BuyBtc />
        <Plans plans={ plans } />
        {/* <PortfolioCalculator investmentPlans={investmentPlans} estatePlans={estatePlans} /> */}
        <RecentTransactions transactions={transactions} />
      </div>
    </>
  )
}

// ✅ Laravel Inertia layout integration
Overview.layout = (page: React.ReactNode) => (
  <UserDashboardLayout title="Dashboard Overview">{page}</UserDashboardLayout>
)

export default Overview
