31 lines
960 B
Python
31 lines
960 B
Python
from sqlalchemy import Boolean, Column, ForeignKey, Integer, String, DateTime
|
|
import datetime
|
|
from sqlalchemy.orm import relationship
|
|
|
|
from .db import Base
|
|
|
|
|
|
class Session(Base):
|
|
__tablename__ = "sessions"
|
|
id = Column(Integer, primary_key=True, index=True, autoincrement=True)
|
|
user_id = Column(String, index=True)
|
|
location_id = Column(String, index=True)
|
|
is_active = Column(Boolean, default=True)
|
|
session_data = Column(String)
|
|
created_at = Column(DateTime, default=datetime.datetime.utcnow)
|
|
|
|
messages = relationship("Message", back_populates="session")
|
|
|
|
|
|
class Message(Base):
|
|
__tablename__ = "messages"
|
|
id = Column(Integer, primary_key=True, index=True, autoincrement=True)
|
|
session_id = Column(Integer, ForeignKey("sessions.id"))
|
|
message_type = Column(String, index=True)
|
|
content = Column(String)
|
|
|
|
session = relationship("Session", back_populates="messages")
|
|
|
|
|
|
# TODO: add metacognitive data to messages
|