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 name

  • messages: Message[] - Conversation content

  • createdAt: Date - When chat was first created

  • updatedAt: Date - Last time any field was modified

  • lastModified: Date - Used for sync conflict resolution

Optional Fields

  • id: string - Auto-generated UUID if not provided

  • model: string - AI model used for responses

  • provider: string - Service provider identifier

  • currentModel: 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 message

  • role: 'user' | 'assistant' - Identifies message sender

  • content: string - The actual message text

  • timestamp: 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