mirror of
https://github.com/jjbrunton/Sauci.git
synced 2026-10-31 18:19:43 +00:00
Add match archiving, chat enhancements, and daily limits
- Match archives with swipe-to-archive and unread filtering - Chat settings sheet and full-screen media modals - Match notification modal for new matches - Admin AI settings with model/provider configuration - Daily response limit feature with recommended questions - New test coverage for stores, hooks, and components - Claude Code agent and command configurations Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
595d6bd394
commit
b0f1700e40
57 files changed
+8359
-1661
No files matched your search
@@ -11,69 +11,69 @@ export interface Profile {
|
||||
/** RSA public key in JWK format for E2EE */
|
||||
public_key_jwk?: Record<string, unknown> | null;
|
||||
}
|
||||
|
||||
// Couple pairing
|
||||
export interface Couple {
|
||||
id: string;
|
||||
invite_code: string;
|
||||
created_at: string;
|
||||
}
|
||||
|
||||
// Question pack
|
||||
export interface QuestionPack {
|
||||
id: string;
|
||||
name: string;
|
||||
description: string | null;
|
||||
icon: string | null;
|
||||
is_premium: boolean;
|
||||
is_public: boolean;
|
||||
sort_order: number;
|
||||
created_at: string;
|
||||
}
|
||||
|
||||
// Individual question
|
||||
export interface Question {
|
||||
id: string;
|
||||
pack_id: string;
|
||||
text: string;
|
||||
partner_text?: string | null;
|
||||
intensity: 1 | 2 | 3 | 4 | 5;
|
||||
allowed_couple_genders?: string[] | null;
|
||||
target_user_genders?: string[] | null;
|
||||
created_at: string;
|
||||
}
|
||||
|
||||
// User's answer type
|
||||
export type AnswerType = 'yes' | 'no' | 'maybe';
|
||||
|
||||
// Match type when both partners agree
|
||||
export type MatchType = 'yes_yes' | 'yes_maybe' | 'maybe_maybe';
|
||||
|
||||
// User response to a question
|
||||
export interface Response {
|
||||
id: string;
|
||||
user_id: string;
|
||||
question_id: string;
|
||||
couple_id: string;
|
||||
answer: AnswerType;
|
||||
created_at: string;
|
||||
}
|
||||
|
||||
// Match between partners
|
||||
export interface Match {
|
||||
id: string;
|
||||
couple_id: string;
|
||||
question_id: string;
|
||||
match_type: MatchType;
|
||||
is_new: boolean;
|
||||
created_at: string;
|
||||
}
|
||||
|
||||
// Extended match with question details
|
||||
export interface MatchWithQuestion extends Match {
|
||||
question: Question;
|
||||
}
|
||||
|
||||
|
||||
// Couple pairing
|
||||
export interface Couple {
|
||||
id: string;
|
||||
invite_code: string;
|
||||
created_at: string;
|
||||
}
|
||||
|
||||
// Question pack
|
||||
export interface QuestionPack {
|
||||
id: string;
|
||||
name: string;
|
||||
description: string | null;
|
||||
icon: string | null;
|
||||
is_premium: boolean;
|
||||
is_public: boolean;
|
||||
sort_order: number;
|
||||
created_at: string;
|
||||
}
|
||||
|
||||
// Individual question
|
||||
export interface Question {
|
||||
id: string;
|
||||
pack_id: string;
|
||||
text: string;
|
||||
partner_text?: string | null;
|
||||
intensity: 1 | 2 | 3 | 4 | 5;
|
||||
allowed_couple_genders?: string[] | null;
|
||||
target_user_genders?: string[] | null;
|
||||
created_at: string;
|
||||
}
|
||||
|
||||
// User's answer type
|
||||
export type AnswerType = 'yes' | 'no' | 'maybe';
|
||||
|
||||
// Match type when both partners agree
|
||||
export type MatchType = 'yes_yes' | 'yes_maybe' | 'maybe_maybe';
|
||||
|
||||
// User response to a question
|
||||
export interface Response {
|
||||
id: string;
|
||||
user_id: string;
|
||||
question_id: string;
|
||||
couple_id: string;
|
||||
answer: AnswerType;
|
||||
created_at: string;
|
||||
}
|
||||
|
||||
// Match between partners
|
||||
export interface Match {
|
||||
id: string;
|
||||
couple_id: string;
|
||||
question_id: string;
|
||||
match_type: MatchType;
|
||||
is_new: boolean;
|
||||
created_at: string;
|
||||
}
|
||||
|
||||
// Extended match with question details
|
||||
export interface MatchWithQuestion extends Match {
|
||||
question: Question;
|
||||
}
|
||||
|
||||
// Pack with progress info
|
||||
export interface PackProgress {
|
||||
pack: QuestionPack;
|
||||
@@ -130,6 +130,14 @@ export interface Message {
|
||||
category?: 'Neutral' | 'Romantic' | 'Playful' | 'Explicit' | string | null;
|
||||
}
|
||||
|
||||
// Match archive (per-user)
|
||||
export interface MatchArchive {
|
||||
id: string;
|
||||
match_id: string;
|
||||
user_id: string;
|
||||
archived_at: string;
|
||||
}
|
||||
|
||||
// Master key for admin E2EE access
|
||||
export interface MasterKey {
|
||||
id: string;
|
||||
|
||||
Reference in new issue
Block a user