Data Models
Core Data Entities
Chat Entity
Primary entity representing a conversation thread.
interface Chat {
id?: string; // Unique identifier (UUID)
title: string; // Display name for the chat
messages: Message[]; // Ordered array of conversation messages
createdAt: Date; // Initial creation timestamp
updatedAt: Date; // Last modification timestamp
lastModified: Date; // Sync-specific modification timestamp
model?: string; // AI model identifier (e.g., 'gpt-4')
provider?: string; // AI service provider (e.g., 'openai')
currentModel?: string; // Currently active model (fallback: model)
isArchived?: boolean; // Archive status (default: false)
}Field Specifications
Required Fields
title:
string- Human-readable chat namemessages:
Message[]- Conversation contentcreatedAt:
Date- When chat was first createdupdatedAt:
Date- Last time any field was modifiedlastModified:
Date- Used for sync conflict resolution
Optional Fields
id:
string- Auto-generated UUID if not providedmodel:
string- AI model used for responsesprovider:
string- Service provider identifiercurrentModel:
string- Active model (defaults to model field)isArchived:
boolean- Archive status (defaults to false)
Field Relationships
Message Entity
Individual message within a chat conversation.
Field Specifications
Required Fields
id:
string- Unique identifier for the messagerole:
'user' | 'assistant'- Identifies message sendercontent:
string- The actual message texttimestamp:
Date- When message was created
Role Types
AppMeta Entity
Application metadata for sync and versioning.
Standard Metadata Records
Data Validation
Chat Validation
Message Validation
Utility Validators
Data Transformation
Serialization for Storage
Sync Payload Transformation
Default Values and Factories
Chat Factory
Message Factory
AppMeta Factory
Schema Evolution
Version 1 Schema (Current)
Future Schema Migrations
Proposed Version 2 Enhancements
Migration Strategy
Data Constraints and Limits
Size Constraints
Validation with Constraints
Type Guards and Utilities
Type Guards
Utility Functions
Last updated