import Link from "next/link";
import { eq } from "drizzle-orm";
import { requireSession } from "@/lib/auth";
import { canManageSettings } from "@/lib/rbac";
import { db } from "@/db";
import { tenants } from "@/db/schema";
import { PageHeader, EmptyState } from "@/components/ui";
import { SettingsForm } from "./settings-form";

export const dynamic = "force-dynamic";

export default async function TenantSettingsPage() {
  const session = await requireSession();

  if (!canManageSettings(session)) {
    return (
      <>
        <PageHeader title="Cài đặt chung" />
        <EmptyState
          message="Bạn không có quyền sửa cài đặt chung."
          hint="Chỉ Ban giám đốc mới đổi được tên công ty và logo."
        />
      </>
    );
  }

  const [tenant] = await db
    .select({
      name: tenants.name,
      taxCode: tenants.taxCode,
      logoDataUrl: tenants.logoDataUrl,
      alertRevenueDropPercent: tenants.alertRevenueDropPercent,
      alertStaffMinAchievementPercent: tenants.alertStaffMinAchievementPercent,
    })
    .from(tenants)
    .where(eq(tenants.id, session.tenantId))
    .limit(1);

  return (
    <>
      <PageHeader
        title="Cài đặt chung"
        subtitle="Tên công ty, mã số thuế, logo và ngưỡng cảnh báo kinh doanh."
        actions={
          <Link href="/danh-muc" className="btn-ghost">
            ← Danh mục
          </Link>
        }
      />
      <SettingsForm
        tenantName={tenant?.name ?? ""}
        taxCode={tenant?.taxCode ?? ""}
        logoDataUrl={tenant?.logoDataUrl ?? null}
        alertRevenueDropPercent={tenant?.alertRevenueDropPercent ?? 30}
        alertStaffMinAchievementPercent={tenant?.alertStaffMinAchievementPercent ?? 70}
      />
    </>
  );
}
