33 lines
1.7 KiB
Python

from __future__ import annotations
from sqlalchemy import Text
from sqlalchemy.orm import Mapped, mapped_column
from app.db.base import Base
class Task(Base):
__tablename__ = "task"
task_id: Mapped[str] = mapped_column(Text, primary_key=True)
session_id: Mapped[str] = mapped_column(Text, nullable=False, index=True)
tenant_id: Mapped[str] = mapped_column(Text, nullable=False, index=True)
request_id: Mapped[str | None] = mapped_column(Text, nullable=True)
input_text: Mapped[str] = mapped_column(Text, nullable=False)
channel: Mapped[str] = mapped_column(Text, nullable=False)
action_type: Mapped[str | None] = mapped_column(Text, nullable=True)
app_code: Mapped[str | None] = mapped_column(Text, nullable=True)
env: Mapped[str | None] = mapped_column(Text, nullable=True)
version: Mapped[str | None] = mapped_column(Text, nullable=True)
software_a_task_id: Mapped[str | None] = mapped_column(Text, nullable=True)
software_a_task_status: Mapped[str | None] = mapped_column(Text, nullable=True)
risk_level: Mapped[str] = mapped_column(Text, nullable=False)
approval_status: Mapped[str] = mapped_column(Text, nullable=False)
task_status: Mapped[str] = mapped_column(Text, nullable=False, index=True)
parsed_intent_json: Mapped[str] = mapped_column(Text, nullable=False)
missing_slots_json: Mapped[str] = mapped_column(Text, nullable=False)
summary: Mapped[str | None] = mapped_column(Text, nullable=True)
created_at: Mapped[str] = mapped_column(Text, nullable=False, index=True)
updated_at: Mapped[str] = mapped_column(Text, nullable=False)
confirmed_at: Mapped[str | None] = mapped_column(Text, nullable=True)