import { apiError, requireOwner } from "@/lib/auth";
import { ensureSchema, rawDb } from "@/lib/db";

export async function DELETE(request: Request, context: { params: Promise<{ id: string }> }) {
  try {
    const ownerId = requireOwner(request);
    const { id } = await context.params;
    await ensureSchema();
    const result = await rawDb().prepare("UPDATE scheduled_posts SET status = 'cancelled', updated_at = ? WHERE id = ? AND owner_id = ? AND status IN ('scheduled','failed')")
      .bind(Date.now(), id, ownerId).run();
    if (!result.meta.changes) throw new Error("취소할 수 없는 게시물입니다.");
    await rawDb().prepare("UPDATE scheduled_post_targets SET status = 'cancelled', updated_at = ? WHERE post_id = ? AND status IN ('scheduled','failed')")
      .bind(Date.now(), id).run();
    return Response.json({ ok: true });
  } catch (error) { return apiError(error); }
}
