Agenda refactor
This commit is contained in:
parent
0f6c48b0a8
commit
986f66ac92
@ -44,10 +44,38 @@ export default async function CalendarPage() {
|
||||
|
||||
const userId = session.user.username || session.user.email || '';
|
||||
|
||||
// Ensure user has a default private calendar (created automatically if missing)
|
||||
// This is the user's personal calendar, distinct from Microsoft synced calendars
|
||||
const defaultPrivateCalendarName = "Mon Calendrier";
|
||||
const existingDefaultCalendar = await prisma.calendar.findFirst({
|
||||
where: {
|
||||
userId: session?.user?.id || '',
|
||||
name: defaultPrivateCalendarName,
|
||||
missionId: null, // Not a mission calendar
|
||||
syncConfig: null, // Not a synced calendar
|
||||
}
|
||||
});
|
||||
|
||||
if (!existingDefaultCalendar) {
|
||||
// Create default private calendar for the user
|
||||
await prisma.calendar.create({
|
||||
data: {
|
||||
name: defaultPrivateCalendarName,
|
||||
color: "#4f46e5", // Indigo color
|
||||
description: "Votre calendrier personnel",
|
||||
userId: session?.user?.id || '',
|
||||
missionId: null,
|
||||
}
|
||||
});
|
||||
console.log(`[AGENDA] Created default private calendar for user ${session?.user?.id}`);
|
||||
}
|
||||
|
||||
// Get all calendars for the user with mission relation and sync configuration
|
||||
// This includes:
|
||||
// 1. Personal calendars (userId = session.user.id)
|
||||
// 2. Mission calendars where user is associated via MissionUser
|
||||
// 1. Personal calendars (userId = session.user.id) - including the default private calendar
|
||||
// 2. Microsoft synced calendars (named "Privée" with syncConfig)
|
||||
// 3. Mission calendars where user is associated via MissionUser
|
||||
// 4. Group calendars where user is a member
|
||||
// Exclude "Privée" and "Default" calendars that are not synced (they should only exist if synced from courrier)
|
||||
|
||||
// Get personal calendars
|
||||
|
||||
@ -48,6 +48,32 @@ export async function GET(req: NextRequest) {
|
||||
userId: session.user.id,
|
||||
});
|
||||
|
||||
// Ensure user has a default private calendar (created automatically if missing)
|
||||
const defaultPrivateCalendarName = "Mon Calendrier";
|
||||
const existingDefaultCalendar = await prisma.calendar.findFirst({
|
||||
where: {
|
||||
userId: session.user.id,
|
||||
name: defaultPrivateCalendarName,
|
||||
missionId: null,
|
||||
syncConfig: null,
|
||||
}
|
||||
});
|
||||
|
||||
if (!existingDefaultCalendar) {
|
||||
await prisma.calendar.create({
|
||||
data: {
|
||||
name: defaultPrivateCalendarName,
|
||||
color: "#4f46e5",
|
||||
description: "Votre calendrier personnel",
|
||||
userId: session.user.id,
|
||||
missionId: null,
|
||||
}
|
||||
});
|
||||
logger.debug('[CALENDAR] Created default private calendar', {
|
||||
userId: session.user.id,
|
||||
});
|
||||
}
|
||||
|
||||
// Get user's personal calendars
|
||||
// Include syncConfig to filter "Privée"/"Default" calendars that don't have active sync
|
||||
const personalCalendars = await prisma.calendar.findMany({
|
||||
|
||||
Loading…
Reference in New Issue
Block a user