lovegpt / shared /types.ts
Crownelius's picture
Upload OpenDateBase Gradio Space
c536472 verified
Raw
History Blame Contribute Delete
1.55 kB
export type QuestionInputType =
| "long_text"
| "ranked_list"
| "multi_select_with_text";
export interface QuestionCategory {
id: string;
name: string;
start: number;
end: number;
description: string;
}
export interface ProfileQuestion {
id: `q${number}`;
number: number;
categoryId: string;
prompt: string;
inputType: QuestionInputType;
weight: number;
tags: string[];
options?: string[];
followUps: string[];
}
export interface QuestionsDocument {
version: string;
categories: QuestionCategory[];
questions: ProfileQuestion[];
}
export interface ProfileAnswer {
questionId: string;
answer: string | string[];
followup?: string;
dealbreakerSeverity?: "low" | "medium" | "high";
updatedAt: string;
}
export interface CompatibilityProfile {
id: string;
userId: string;
displayName: string;
age: number;
location?: string;
gender?: string;
interestedIn?: string[];
answers: Record<string, ProfileAnswer>;
narrativeSummary?: string;
disgustTriggers: string[];
captivatingTraits: string[];
profileComplete: boolean;
paidEntry: boolean;
createdAt: string;
updatedAt: string;
}
export interface MatchCard {
matchId: string;
profileId: string;
displayName: string;
age: number;
location?: string;
compatibilityScore: number;
sharedTraits: string[];
cautionNotes: string[];
status: "suggested" | "accepted" | "active" | "ended";
}
export interface OpenClawMessage {
role: "user" | "assistant" | "system";
content: string;
createdAt: string;
}