42 lines
1.4 KiB
TypeScript

import { usePrisma } from "../utils/prisma";
export interface SosSessionInput {
startedAt?: string | Date;
endedAt?: string | Date | null;
durationSec?: number | null;
messages: Array<{ role: string; content: string; timestamp?: string }>;
gamesPlayed?: Array<{ game: string; score?: number; durationSec?: number }>;
breathingCount?: number;
wasOvercome?: boolean;
feedbackBetter?: boolean | null;
feedbackRating?: number | null;
feedbackText?: string | null;
locale?: string | null;
}
export async function createSosSession(userId: string, input: SosSessionInput) {
const db = usePrisma();
return db.sosSession.create({
data: {
userId,
startedAt: input.startedAt ? new Date(input.startedAt) : new Date(),
endedAt: input.endedAt ? new Date(input.endedAt) : null,
durationSec: input.durationSec ?? null,
messages: input.messages as any,
gamesPlayed: (input.gamesPlayed ?? []) as any,
breathingCount: input.breathingCount ?? 0,
wasOvercome: input.wasOvercome ?? false,
feedbackBetter: input.feedbackBetter ?? null,
feedbackRating: input.feedbackRating ?? null,
feedbackText: input.feedbackText ?? null,
locale: input.locale ?? null,
},
select: { id: true, startedAt: true, endedAt: true },
});
}
export async function deleteUserSosSessions(userId: string) {
const db = usePrisma();
return db.sosSession.deleteMany({ where: { userId } });
}