// controllers/Frontend/LeadSubmitController.ts

import { NextRequest, NextResponse } from "next/server";
import dbConnect from "@/lib/mongodb";
import Leads from "@/models/Leads";

export async function POST(req: NextRequest) {
  try {
    await dbConnect();

    const body = await req.json();

    const { name, phone_number } = body;

    if (!name?.trim()) {
      return NextResponse.json(
        {
          success: false,
          message: "Name is required",
        },
        { status: 400 }
      );
    }

    if (!phone_number?.trim()) {
      return NextResponse.json(
        {
          success: false,
          message: "Phone number is required",
        },
        { status: 400 }
      );
    }

    const phoneRegex = /^[6-9]\d{9}$/;

    if (!phoneRegex.test(phone_number)) {
      return NextResponse.json(
        {
          success: false,
          message: "Invalid Indian phone number",
        },
        { status: 400 }
      );
    }
    const lead = await Leads.create({
      name: name.trim(),
      phone_number: phone_number.trim(),
    });

    return NextResponse.json(
      {
        success: true,
        message: "Lead submitted successfully",
        data: lead,
      },
      {
        status: 201,
      }
    );
  } catch (error: any) {
    console.error("Lead Submit Error:", error);

    return NextResponse.json(
      {
        success: false,
        message:
          error.message ||
          "Something went wrong",
      },
      {
        status: 500,
      }
    );
  }
}