'use server'; import { auth } from '@/lib/auth'; import { SESSIONS_PAGE_SIZE } from '@/lib/types'; import { withWorkshopType } from '@/lib/workshops'; import { getSessionsByUserId } from '@/services/sessions'; import { getMotivatorSessionsByUserId } from '@/services/moving-motivators'; import { getYearReviewSessionsByUserId } from '@/services/year-review'; import { getWeeklyCheckInSessionsByUserId } from '@/services/weekly-checkin'; import { getWeatherSessionsByUserId } from '@/services/weather'; import { getGifMoodSessionsByUserId } from '@/services/gif-mood'; import type { WorkshopTypeId } from '@/lib/workshops'; export async function loadMoreSessions(type: WorkshopTypeId, offset: number) { const session = await auth(); if (!session?.user?.id) return null; const userId = session.user.id; const limit = SESSIONS_PAGE_SIZE; switch (type) { case 'swot': { const all = await getSessionsByUserId(userId); return { items: withWorkshopType(all.slice(offset, offset + limit), 'swot'), total: all.length }; } case 'motivators': { const all = await getMotivatorSessionsByUserId(userId); return { items: withWorkshopType(all.slice(offset, offset + limit), 'motivators'), total: all.length }; } case 'year-review': { const all = await getYearReviewSessionsByUserId(userId); return { items: withWorkshopType(all.slice(offset, offset + limit), 'year-review'), total: all.length }; } case 'weekly-checkin': { const all = await getWeeklyCheckInSessionsByUserId(userId); return { items: withWorkshopType(all.slice(offset, offset + limit), 'weekly-checkin'), total: all.length }; } case 'weather': { const all = await getWeatherSessionsByUserId(userId); return { items: withWorkshopType(all.slice(offset, offset + limit), 'weather'), total: all.length }; } case 'gif-mood': { const all = await getGifMoodSessionsByUserId(userId); return { items: withWorkshopType(all.slice(offset, offset + limit), 'gif-mood'), total: all.length }; } default: return null; } }