import { inArray } from 'drizzle-orm' import { useDB, schema } from '../../../utils/db.js' import { requireAdmin } from '../../../utils/auth.js' /** * 批量操作:{ action: 'publish'|'unpublish'|'delete', ids: number[] } */ export default defineEventHandler(async (event) => { requireAdmin(event) const { action, ids } = await readBody(event) if (!Array.isArray(ids) || ids.length === 0) { throw createError({ statusCode: 422, message: 'ids 不能为空' }) } const db = useDB() switch (action) { case 'publish': db.update(schema.reviews).set({ published: true }).where(inArray(schema.reviews.id, ids)).run() break case 'unpublish': db.update(schema.reviews).set({ published: false }).where(inArray(schema.reviews.id, ids)).run() break case 'delete': db.delete(schema.reviews).where(inArray(schema.reviews.id, ids)).run() break default: throw createError({ statusCode: 422, message: '未知 action' }) } return { success: true, affected: ids.length } })