import DashboardLayout from "@/components/DashboardLayout" import { auth } from "@/lib/auth" import { prisma } from "@/lib/prisma" import Link from "next/link" import { notFound } from "next/navigation" export default async function ShiftDetailsPage({ params, }: { params: Promise<{ id: string }> }) { const { id } = await params const session = await auth() const manager = await prisma.shiftManager.findFirst({ where: { email: session?.user?.email || "" } }) if (!manager) return
Shift Name
{shift.name}
Status
{shift.status}Date
{new Date(shift.shiftDate).toLocaleDateString('en-US', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' })}
Team
{shift.shiftTeamMembers[0]?.team.name || 'N/A'}
Start Time
{new Date(shift.startTime).toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit' })}
End Time
{new Date(shift.endTime).toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit' })}
{shift.shiftTeamMembers.length} operator(s) assigned
| Operator | Role | Machine | Report Status | Actions |
|---|---|---|---|---|
|
{member.worker.firstName} {member.worker.surname} {member.worker.email || 'N/A'} |
{member.shiftRole} |
{member.machine?.name || 'N/A'} {member.machine?.machineType || 'N/A'} |
{report ? ( Submitted ) : ( Pending )} | {report ? ( View Report ) : ( No report yet )} |
Total Operators
{shift.shiftTeamMembers.length}
Reports Submitted
{shift.machineShiftReports.length}
Reports Pending
{Math.max(0, shift.shiftTeamMembers.length - shift.machineShiftReports.length)}