import { useState } from 'react';
import Layout from "../../../components/layout";
import ProtectedRoute from '../../../components/protectedRoute';
import { UserRole } from '@prisma/client';
import axiosServer from '../../../src/axiosServer';
import common from '../../../src/helpers/common';
import ShiftsList from '../../../components/publisher/ShiftsList';
import { useSession, getSession } from 'next-auth/react';
export default function MySchedulePage({ assignments }) {
const { data: session, status } = useSession();
if (status === "loading") {
return
Loading...
;
}
return (
Моите смени
);
}
//get future assignmenrs for the current user (session.user.id)
export const getServerSideProps = async (context) => {
const session = await getSession(context);
context.res.setHeader("Cache-Control", "s-maxage=1, stale-while-revalidate");
if (!session) {
return {
redirect: {
destination: '/auth/login', // Adjust the login path as needed
permanent: false,
},
};
}
const prisma = common.getPrismaClient();
const publisher = await prisma.publisher.findMany({
where: {
id: session.user.id,
assignments: {
some: {
shift: {
startTime: {
gte: new Date(),
},
},
},
},
},
include: {
assignments: {
include: {
shift: true,
},
},
},
});
const assignments = publisher[0]?.assignments;
const transformedAssignments = assignments.map(assignment => {
if (assignment.shift && assignment.shift.startTime) {
return {
...assignment,
shift: {
...assignment.shift,
startTime: assignment.shift.startTime.toISOString(),
endTime: assignment.shift.endTime.toISOString(),
},
};
}
return assignment;
});
const singleKey = "all";
const assignmentsStructure = {
assignments: {
items: {
[singleKey]: [],
},
keys: [singleKey],
months: {
[singleKey]: "Всички смени",
},
},
selectedtab: singleKey,
};
transformedAssignments.forEach(assignment => {
assignmentsStructure.assignments.items[singleKey].push(assignment);
});
return {
props: assignmentsStructure
}
}