import type { Metadata } from "next";
import { FixPackagesRefundRequestClient } from "@/roles/admin/components/refund-requests/fix-packages-refund-request-client";
import { getFixPackageRefundRequestsAction } from "@/features/fixed-packages/actions/booking-actions";
import type { FixPackageRefundRequestPaginator } from "@/core/api/services/fix-packages/fix-packages.types";

export const metadata: Metadata = {
  title: "Fix Packages Refund Requests | Admin",
  description: "Review and manage fix package refund requests.",
};

const emptyRefundRequestsData: FixPackageRefundRequestPaginator = {
  data: [],
  current_page: 1,
  last_page: 1,
  total: 0,
  per_page: 10,
  from: 0,
  to: 0,
  counts: {
    total_count: 0,
    pending_count: 0,
    in_progress_count: 0,
    approved_count: 0,
    rejected_count: 0,
  },
};

export default async function FixPackagesRefundRequestPage() {
  let initialData = emptyRefundRequestsData;

  try {
    initialData = await getFixPackageRefundRequestsAction({
      page: 1,
      per_page: 10,
    });
  } catch (error) {
    console.error(
      "[Fix Package Refund Requests Page] Initial load failed",
      error
    );
  }

  const initialStats = {
    total: initialData.counts.total_count,
    pending: initialData.counts.pending_count,
    inProgress: initialData.counts.in_progress_count,
    approved: initialData.counts.approved_count,
    rejected: initialData.counts.rejected_count,
  };

  return (
    <FixPackagesRefundRequestClient
      initialData={initialData}
      initialStats={initialStats}
    />
  );
}
