import { createError, getQuery, getRouterParam } from 'h3' import { z } from 'zod' import { requireAdminSession } from '../../../../../utils/admin-auth' import { listMemberActivityForAdmin } from '../../../../../repositories/member-activity-repository' const querySchema = z.object({ memberId: z.string().uuid(), type: z.enum(['all', 'post', 'comment']).default('all'), q: z.string().trim().max(200).default(''), page: z.coerce.number().int().min(1).max(1000000).default(1), pageSize: z.coerce.number().int().min(1).max(100).default(10) }) /** * 관리자 회원 작성 이력을 게시글·댓글 통합 페이지로 조회한다. * @param {import('h3').H3Event} event - 요청 이벤트 * @returns {Promise} 통합 작성 이력 */ export default defineEventHandler((event) => { requireAdminSession(event) const result = querySchema.safeParse({ ...getQuery(event), memberId: getRouterParam(event, 'id') }) if (!result.success) { throw createError({ statusCode: 400, message: '작성 이력 조회 조건이 올바르지 않습니다.' }) } return listMemberActivityForAdmin(result.data) })