constpost=db.prepare("SELECT id FROM posts WHERE id=? AND visibility='PUBLIC' AND hidden=0").get(postId);if(!post)thrownewError("Post not found");
constexisting=db.prepare("SELECT kind FROM bookmarks WHERE user_id=? AND post_id=?").get(user.id,postId)as{kind: string}|undefined;
if(existing?.kind===kind)db.prepare("DELETE FROM bookmarks WHERE user_id=? AND post_id=?").run(user.id,postId);
elsedb.prepare("INSERT INTO bookmarks(user_id,post_id,kind) VALUES(?,?,?) ON CONFLICT(user_id,post_id) DO UPDATE SET kind=excluded.kind,created_at=CURRENT_TIMESTAMP").run(user.id,postId,kind);