import { NextRequest, NextResponse } from "next/server"; import { prisma } from "@/infrastructure/db/prisma"; import { ROLES, setAuthCookies } from "@/middleware/auth"; export async function POST(request: NextRequest) { try { const body = await request.json(); const { phone, password } = body; if (!phone) { return NextResponse.json({ error: "Phone is required" }, { status: 400 }); } const user = await prisma.user.findUnique({ where: { phone }, }); if (!user) { return NextResponse.json({ error: "User not found" }, { status: 404 }); } if (user.password && user.password !== password) { return NextResponse.json({ error: "Invalid password" }, { status: 401 }); } const token = Buffer.from(`${user.id}:${Date.now()}`).toString("base64"); const response = NextResponse.json({ success: true, user: { id: user.id, name: user.name, email: user.email, phone: user.phone, role: user.role, }, }); return setAuthCookies(response, token, user.id); } catch (error) { console.error("Login error:", error); return NextResponse.json({ error: "Internal server error" }, { status: 500 }); } }