Files

35 lines
1.6 KiB
Python
Raw Permalink Normal View History

from datetime import datetime
from sqlalchemy import String, text
from sqlalchemy.dialects.mysql import BIGINT, DATETIME, INTEGER, TINYINT
from sqlalchemy.orm import Mapped, mapped_column
from app.model.base import Base
class ConversationSession(Base):
__tablename__ = "svc_conversation_session"
id: Mapped[int] = mapped_column(BIGINT(unsigned=True), primary_key=True, autoincrement=True)
session_id: Mapped[str] = mapped_column(String(64), unique=True)
user_id: Mapped[int] = mapped_column(BIGINT(unsigned=True))
portal: Mapped[str] = mapped_column(String(32))
agent_type: Mapped[str | None] = mapped_column(String(32))
status: Mapped[str] = mapped_column(String(16), default="active")
clarification_round: Mapped[int] = mapped_column(TINYINT(unsigned=True), default=0)
message_count: Mapped[int] = mapped_column(INTEGER(unsigned=True), default=0)
last_intent: Mapped[str | None] = mapped_column(String(32))
config_version: Mapped[str | None] = mapped_column(String(64))
started_at: Mapped[datetime] = mapped_column(
DATETIME(fsp=6), server_default=text("CURRENT_TIMESTAMP(6)")
)
last_active_at: Mapped[datetime] = mapped_column(
DATETIME(fsp=6), server_default=text("CURRENT_TIMESTAMP(6)")
)
ended_at: Mapped[datetime | None] = mapped_column(DATETIME(fsp=6))
created_at: Mapped[datetime] = mapped_column(
DATETIME(fsp=6), server_default=text("CURRENT_TIMESTAMP(6)")
)
updated_at: Mapped[datetime] = mapped_column(
DATETIME(fsp=6), server_default=text("CURRENT_TIMESTAMP(6)")
)