ans123's picture
Initial upload from Colab
ef1ad9e verified
from datetime import datetime
from enum import Enum
from typing import Any
from sqlalchemy import (
Column,
DateTime,
ForeignKey,
Integer,
String,
)
from sqlalchemy.dialects.postgresql import ENUM
from sqlalchemy.orm import declarative_base
from sqlalchemy.types import Boolean
from app.models.base import Base
from app.utils.utility import to_dict
class RoleType(Enum):
USER = "USER"
BOT = "BOT"
class Message(Base):
__tablename__ = "Messages"
id = Column(Integer, primary_key=True)
chatId = Column(Integer, ForeignKey("Chats.id"), nullable=False)
userId = Column(Integer, ForeignKey("Users.userId"), nullable=False)
roleType = Column(ENUM(RoleType, name="role_type_enum"), nullable=False) # Enum for "user" or "bot"
text = Column(String, nullable=False)
timestamp = Column(DateTime, default=datetime.now)
isActive = Column(Boolean, default=True)
def dict(self) -> dict[str, Any]:
return to_dict(self)