import {
  Bell,
  ShoppingCart,
  Settings2,
  Store,
  Truck,
  Wallet,
} from "lucide-react";
import { getStoreSettings } from "@/lib/actions/settings";
import { SettingsHeader } from "./components/settings-header";
import { SettingsTabs } from "./components/settings-tabs";
import { GeneralSettings } from "./components/general-settings";
import { OrderSettings } from "./components/order-settings";
import { ShippingSettings } from "./components/shipping-settings";
import { PaymentSettings } from "./components/payment-settings";
import { NotificationSettings } from "./components/notification-settings";
import { PreferencesSettings } from "./components/preferences-settings";
import { DeliveryFeeSettings } from "./components/delivery-fee-settings";
import { getDeliveryFees } from "@/lib/actions/delivery-fees";

export const dynamic = "force-dynamic";

export default async function StoreSettingsPage() {
  const [settings, deliveryFees] = await Promise.all([
    getStoreSettings(),
    getDeliveryFees(),
  ]);

  const tabs = [
    {
      value: "general",
      label: "General",
      icon: <Store className="h-4 w-4" />,
      content: <GeneralSettings settings={settings} />,
    },
    {
      value: "orders",
      label: "Order Settings",
      icon: <ShoppingCart className="h-4 w-4" />,
      content: <OrderSettings settings={settings} />,
    },
    {
      value: "shipping",
      label: "Shipping",
      icon: <Truck className="h-4 w-4" />,
      content: <ShippingSettings settings={settings} />,
    },
    {
      value: "delivery-fees",
      label: "Delivery Fees",
      icon: <Truck className="h-4 w-4" />,
      content: <DeliveryFeeSettings fees={deliveryFees} />,
    },
    {
      value: "payment",
      label: "Payment",
      icon: <Wallet className="h-4 w-4" />,
      content: <PaymentSettings settings={settings} />,
    },
    {
      value: "notifications",
      label: "Notifications",
      icon: <Bell className="h-4 w-4" />,
      content: <NotificationSettings settings={settings} />,
    },
    {
      value: "preferences",
      label: "Preferences",
      icon: <Settings2 className="h-4 w-4" />,
      content: <PreferencesSettings settings={settings} />,
    },
  ];

  return (
    <div className="flex flex-col gap-6">
      <SettingsHeader />
      <SettingsTabs tabs={tabs} defaultValue="general" />
    </div>
  );
}
