Spaces:
Sleeping
Sleeping
File size: 1,176 Bytes
34e27fb | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | from sqlmodel import SQLModel, Field, Relationship
from typing import Optional, List
from datetime import datetime
from sqlalchemy import Column, DateTime
import uuid
from .user import User # Import User model for relationship
class ConversationBase(SQLModel):
user_id: uuid.UUID = Field(foreign_key="user.id", index=True)
class Conversation(ConversationBase, table=True):
id: Optional[int] = Field(default=None, primary_key=True)
user_id: uuid.UUID = Field(foreign_key="user.id", index=True)
created_at: datetime = Field(sa_column=Column(DateTime, default=datetime.utcnow))
updated_at: datetime = Field(sa_column=Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow))
# Relationship to user
owner: Optional["User"] = Relationship(back_populates="conversations")
# Relationship to messages
messages: List["Message"] = Relationship(back_populates="conversation")
class ConversationCreate(ConversationBase):
pass
class ConversationRead(ConversationBase):
id: int
created_at: datetime
updated_at: datetime
class Config:
from_attributes = True
class ConversationUpdate(SQLModel):
pass |