import { getUserProfileById } from '../../repositories/member-repository' import { requireMemberSession } from '../../utils/member-auth' import { createError } from 'h3' /** * 회원 프로필 조회 API * @param {import('h3').H3Event} event - 요청 이벤트 * @returns {Promise<{ id: string, email: string, username: string, avatarUrl: string, createdAt: string, updatedAt: string, lastSeenAt: string | null, previousLastSeenAt: string | null, previousLastSeenIp: string, commentCount: number }>} 회원 프로필 */ export default defineEventHandler(async (event) => { const session = requireMemberSession(event) const user = await getUserProfileById(session.userId) if (!user) { throw createError({ statusCode: 404, message: '회원 정보를 찾을 수 없습니다.' }) } return { id: user.id, email: user.email, username: user.username, avatarUrl: user.avatarUrl || '', createdAt: user.createdAt.toISOString(), updatedAt: user.updatedAt.toISOString(), lastSeenAt: user.lastSeenAt ? user.lastSeenAt.toISOString() : null, previousLastSeenAt: user.previousLastSeenAt ? user.previousLastSeenAt.toISOString() : null, previousLastSeenIp: user.previousLastSeenIp || '', commentCount: Number(user.commentCount || 0) } })