import prisma from "@/lib/prisma";
import Link from "next/link";
import PromoCodeManager from "./PromoCodeManager";

export const metadata = {
  title: "Promo Codes | Admin",
};

export default async function AdminPromoCodesPage() {
  let promoCodes: {
    id: number;
    code: string;
    discount_percent: number | null;
    bonus_credits: number | null;
    max_uses: number | null;
    used_count: number;
    expires_at: string | null;
    is_active: boolean;
    created_at: string;
  }[] = [];

  try {
    promoCodes = await prisma.$queryRawUnsafe(`
      SELECT id, code, discount_percent, bonus_credits, max_uses,
             COALESCE(used_count, 0)::int as used_count,
             expires_at::text, is_active,
             created_at::text
      FROM promo_codes
      ORDER BY created_at DESC
    `);
  } catch {
    // Table may not exist yet
  }

  return (
    <div className="space-y-6">
      <div className="flex items-center justify-between">
        <div>
          <h1 className="text-2xl font-bold text-white">Promo Codes</h1>
          <p className="text-text-muted mt-1">Manage promotional codes and discounts.</p>
        </div>
      </div>

      <PromoCodeManager initialCodes={promoCodes} />
    </div>
  );
}
