import { NextRequest, NextResponse } from "next/server";
import { db } from "@/lib/db";

export const dynamic = "force-dynamic";

function genCode() {
  return "PB" + Math.random().toString(36).slice(2, 8).toUpperCase();
}

export async function POST(req: NextRequest) {
  const { name, email, password } = await req.json().catch(() => ({}));
  if (!name || !email || !password) {
    return NextResponse.json({ error: "نام، ایمیل و رمز عبور الزامی است" }, { status: 400 });
  }
  const existing = await db.user.findUnique({ where: { email: String(email).toLowerCase().trim() } });
  if (existing) {
    return NextResponse.json({ error: "این ایمیل قبلاً ثبت شده است" }, { status: 409 });
  }
  const user = await db.user.create({
    data: {
      name,
      email: String(email).toLowerCase().trim(),
      passwordHash: "demo:" + password, // production: argon2id
      role: "user",
      plan: "free",
      referralCode: genCode(),
      wallet: { create: { balance: 0 } },
    },
  });
  return NextResponse.json({
    user: {
      id: user.id,
      name: user.name,
      email: user.email,
      role: user.role,
      plan: user.plan,
      planName: "رایگان",
      isAdmin: false,
      referralCode: user.referralCode,
      walletBalance: 0,
    },
  });
}
