43 lines
1.0 KiB
TypeScript
43 lines
1.0 KiB
TypeScript
import { usePrisma } from "../../utils/prisma";
|
|
|
|
/**
|
|
* GET /api/coach/history
|
|
* Lädt den gespeicherten Chat-Verlauf (nur Pro/Legend).
|
|
* Gibt das neueste CoachSession-Dokument zurück.
|
|
*/
|
|
export default defineEventHandler(async (event) => {
|
|
const user = await requireUser(event);
|
|
console.log("[coach/history] userId:", user.id);
|
|
|
|
const db = usePrisma();
|
|
|
|
const profile = await db.profile.findUnique({
|
|
where: { id: user.id },
|
|
select: { plan: true },
|
|
});
|
|
console.log("[coach/history] plan:", profile?.plan);
|
|
|
|
if (!profile || !["pro", "legend"].includes(profile.plan)) {
|
|
return { messages: [] };
|
|
}
|
|
|
|
const session = await db.coachSession.findFirst({
|
|
where: { userId: user.id },
|
|
orderBy: { createdAt: "desc" },
|
|
});
|
|
console.log(
|
|
"[coach/history] session found:",
|
|
!!session,
|
|
"msgs:",
|
|
Array.isArray(session?.content) ? (session.content as any[]).length : 0,
|
|
);
|
|
|
|
if (!session) {
|
|
return { messages: [] };
|
|
}
|
|
|
|
return {
|
|
messages: session.content as Array<{ role: string; content: string }>,
|
|
};
|
|
});
|