import { error } from '@sveltejs/kit';
import type { RequestHandler } from './$types';
import { deleteComment } from '$lib/server/pocketbase';
import { log } from '$lib/server/logger';

/**
 * DELETE /api/comment/[id]
 * Deletes a comment and its replies. Only the comment owner may delete.
 * Requires authentication.
 */
export const DELETE: RequestHandler = async ({ params, locals }) => {
	if (!locals.user) error(401, 'Login required');

	const { id } = params;

	try {
		await deleteComment(id, locals.user.id);
		return new Response(null, { status: 204 });
	} catch (e) {
		const msg = String(e);
		if (msg.includes('Not authorized')) error(403, 'Not authorized to delete this comment');
		if (msg.includes('not found')) error(404, 'Comment not found');
		log.error('api/comment/[id]', 'deleteComment failed', { id, err: msg });
		error(500, 'Failed to delete comment');
	}
};
