import { prisma } from "@/lib/prisma" import { auth } from "@/lib/auth" import { NextResponse } from "next/server" export async function POST(req: Request) { const session = await auth() const manager = await prisma.shiftManager.findFirst({ where: { email: session?.user?.email || "" } }) if (!manager) { return NextResponse.json({ error: "Manager not found" }, { status: 404 }) } const body = await req.json() const { name, shiftDate, teamId, operators } = body const shiftDateObj = new Date(shiftDate) let startTime: Date let endTime: Date if (name === "AM") { // AM shift: 7:00 AM to 7:00 PM (same day) startTime = new Date(shiftDateObj) startTime.setHours(7, 0, 0, 0) endTime = new Date(shiftDateObj) endTime.setHours(19, 0, 0, 0) } else { // PM shift: 7:00 PM to 7:00 AM (next day) startTime = new Date(shiftDateObj) startTime.setHours(19, 0, 0, 0) endTime = new Date(shiftDateObj) endTime.setDate(endTime.getDate() + 1) // Next day endTime.setHours(7, 0, 0, 0) } const shift = await prisma.shift.create({ data: { name, shiftDate: new Date(shiftDate), startTime, endTime, shiftManagerId: manager.id, status: "active" } }) const machines = await prisma.machine.findMany({ take: 7 }) for (let i = 0; i < operators.length; i++) { if (operators[i]) { await prisma.shiftTeamMember.create({ data: { shiftId: shift.id, teamId, workerId: operators[i], shiftRole: "Blow Moulder Level 1", machineId: machines[i].id } }) await prisma.machineShiftReport.create({ data: { shiftId: shift.id, machineId: machines[i].id, workerId: operators[i] } }) } } return NextResponse.json(shift) }