import type { Session } from "next-auth"; import { ProfileRepository } from "@calcom/lib/server/repository/profile"; import type { TrpcSessionUser } from "@calcom/trpc/server/trpc"; type MeOptions = { ctx: { user: NonNullable; session: Session; }; }; export const platformMeHandler = async ({ ctx }: MeOptions) => { const { user: sessionUser } = ctx; const allUserEnrichedProfiles = await ProfileRepository.findAllProfilesForUserIncludingMovedUser( sessionUser ); const mainProfile = allUserEnrichedProfiles.find((profile) => sessionUser.movedToProfileId === profile.id) || allUserEnrichedProfiles.find((profile) => sessionUser.organizationId === profile.organizationId) || allUserEnrichedProfiles[0]; return { id: sessionUser.id, username: sessionUser.username, email: sessionUser.email, timeFormat: sessionUser.timeFormat, timeZone: sessionUser.timeZone, defaultScheduleId: sessionUser.defaultScheduleId, weekStart: sessionUser.weekStart, organizationId: mainProfile.organizationId, organization: { isPlatform: mainProfile.organization?.isPlatform ?? false, id: mainProfile.organizationId ?? null, }, }; };