Files
2026-05-31 14:05:22 +02:00

38 lines
838 B
TypeScript

import {
GetActiveSession,
RemoveActiveSession,
RemoveStudyCycle,
type ActiveSession,
} from '@/lib/asyncStorage';
import { supabase } from '@/lib/supabase';
export type FinalSessionStatus = 'completed' | 'cancelled' | 'expired';
export async function finalizeStoredSession(
finalStatus: FinalSessionStatus,
activeSessionOverride?: ActiveSession | null
) {
const activeSession = activeSessionOverride ?? await GetActiveSession();
if (!activeSession) {
return null;
}
await RemoveActiveSession();
if (finalStatus !== 'completed') {
await RemoveStudyCycle();
}
const { error } = await supabase.rpc('finalize_sprint_session', {
p_session_id: activeSession.sessionId,
p_final_status: finalStatus,
p_ended_at: new Date().toISOString(),
});
return {
activeSession,
error,
};
}