Spaces:
Runtime error
Runtime error
| from sqlmodel import SQLModel, Field, Relationship | |
| from datetime import datetime | |
| from typing import Optional, TYPE_CHECKING | |
| import uuid | |
| if TYPE_CHECKING: | |
| from .message import Message | |
| from .user import User | |
| class ConversationBase(SQLModel): | |
| title: str = Field(default="New Conversation", max_length=255) | |
| language_preference: str = Field(default="en", max_length=10) | |
| metadata_json: Optional[str] = Field(default=None) | |
| class Conversation(ConversationBase, table=True): | |
| """ | |
| Represents a chat session between user and AI assistant, including message history and metadata | |
| """ | |
| id: uuid.UUID = Field(default_factory=uuid.uuid4, primary_key=True) | |
| user_id: Optional[uuid.UUID] = Field(default=None, foreign_key="user.id") | |
| created_at: datetime = Field(default_factory=datetime.utcnow) | |
| updated_at: datetime = Field(default_factory=datetime.utcnow) | |
| # Relationships | |
| messages: list["Message"] = Relationship(back_populates="conversation") | |
| user: Optional["User"] = Relationship(back_populates="conversations") | |
| class ConversationCreate(ConversationBase): | |
| pass | |
| class ConversationRead(ConversationBase): | |
| id: uuid.UUID | |
| user_id: Optional[uuid.UUID] | |
| created_at: datetime | |
| updated_at: datetime |