Taskflow-App / src /models /conversation.py
Tahasaif3's picture
'code
34e27fb
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