2025-09-25 13:21:11 +09:00
|
|
|
import type { AuthenticatedUser, User } from "@customer-portal/domain";
|
2025-09-17 18:43:43 +09:00
|
|
|
import type { User as PrismaUser } from "@prisma/client";
|
|
|
|
|
|
|
|
|
|
export function mapPrismaUserToSharedUser(user: PrismaUser): User {
|
|
|
|
|
return {
|
|
|
|
|
id: user.id,
|
|
|
|
|
email: user.email,
|
|
|
|
|
firstName: user.firstName || undefined,
|
|
|
|
|
lastName: user.lastName || undefined,
|
|
|
|
|
company: user.company || undefined,
|
|
|
|
|
phone: user.phone || undefined,
|
|
|
|
|
mfaEnabled: !!user.mfaSecret,
|
|
|
|
|
emailVerified: user.emailVerified,
|
|
|
|
|
createdAt: user.createdAt.toISOString(),
|
|
|
|
|
updatedAt: user.updatedAt.toISOString(),
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function mapPrismaUserToEnhancedBase(user: PrismaUser): {
|
|
|
|
|
id: string;
|
|
|
|
|
email: string;
|
|
|
|
|
firstName?: string;
|
|
|
|
|
lastName?: string;
|
|
|
|
|
company?: string;
|
|
|
|
|
phone?: string;
|
|
|
|
|
mfaEnabled: boolean;
|
|
|
|
|
emailVerified: boolean;
|
|
|
|
|
createdAt: Date;
|
|
|
|
|
updatedAt: Date;
|
|
|
|
|
} {
|
|
|
|
|
return {
|
|
|
|
|
id: user.id,
|
|
|
|
|
email: user.email,
|
|
|
|
|
firstName: user.firstName || undefined,
|
|
|
|
|
lastName: user.lastName || undefined,
|
|
|
|
|
company: user.company || undefined,
|
|
|
|
|
phone: user.phone || undefined,
|
|
|
|
|
mfaEnabled: !!user.mfaSecret,
|
|
|
|
|
emailVerified: user.emailVerified,
|
|
|
|
|
createdAt: user.createdAt,
|
|
|
|
|
updatedAt: user.updatedAt,
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
2025-09-25 13:21:11 +09:00
|
|
|
export function mapPrismaUserToUserProfile(user: PrismaUser): AuthenticatedUser {
|
2025-09-24 18:00:49 +09:00
|
|
|
const shared = mapPrismaUserToSharedUser(user);
|
2025-09-25 13:21:11 +09:00
|
|
|
const normalizedRole = user.role?.toLowerCase() === "admin" ? "admin" : "user";
|
2025-09-17 18:43:43 +09:00
|
|
|
|
2025-09-24 18:00:49 +09:00
|
|
|
return {
|
|
|
|
|
...shared,
|
|
|
|
|
avatar: undefined,
|
|
|
|
|
preferences: {},
|
|
|
|
|
lastLoginAt: user.lastLoginAt ? user.lastLoginAt.toISOString() : undefined,
|
2025-09-25 13:21:11 +09:00
|
|
|
role: normalizedRole,
|
2025-09-24 18:00:49 +09:00
|
|
|
};
|
|
|
|
|
}
|