import { getAdjacentPosts, getPostBySlug } from '../../repositories/content-repository' import { canAccessMembershipContent } from '../../repositories/member-repository' import { getMemberSession } from '../../utils/member-auth' /** * 공개 게시물 상세 API * @param {import('h3').H3Event} event - 요청 이벤트 * @returns {Object} 게시물 상세(이전·다음 글 포함) */ export default defineEventHandler(async (event) => { const slug = getRouterParam(event, 'slug') const session = getMemberSession(event) const includeMembership = await canAccessMembershipContent(session?.userId) const [post, adjacent] = await Promise.all([ getPostBySlug(slug, { includeMembership }), getAdjacentPosts(slug, { includeMembership }) ]) if (!post) { throw createError({ statusCode: 404, statusMessage: '게시물을 찾을 수 없습니다' }) } return { ...post, previous: adjacent.previous, next: adjacent.next } })