import type { GetStaticProps } from 'next'
import WethOperationsPage from '@/components/explorer/WethOperationsPage'
import { fetchPublicJson } from '@/utils/publicExplorer'
import type { MissionControlBridgeStatusResponse } from '@/services/api/missionControl'
import type { InternalExecutionPlanResponse, PlannerCapabilitiesResponse } from '@/services/api/planner'

interface WethPageProps {
  initialBridgeStatus: MissionControlBridgeStatusResponse | null
  initialPlannerCapabilities: PlannerCapabilitiesResponse | null
  initialInternalPlan: InternalExecutionPlanResponse | null
}

export default function WethPage(props: WethPageProps) {
  return <WethOperationsPage {...props} />
}

export const getStaticProps: GetStaticProps<WethPageProps> = async () => {
  const [bridgeStatus, plannerCapabilities] = await Promise.all([
    fetchPublicJson<MissionControlBridgeStatusResponse>('/explorer-api/v1/track1/bridge/status').catch(() => null),
    fetchPublicJson<PlannerCapabilitiesResponse>('/token-aggregation/api/v2/providers/capabilities?chainId=138').catch(
      () => null,
    ),
  ])

  return {
    props: {
      initialBridgeStatus: bridgeStatus,
      initialPlannerCapabilities: plannerCapabilities,
      initialInternalPlan: null,
    },
    revalidate: 60,
  }
}
