session.py 761 B

1234567891011121314151617181920212223242526272829303132
  1. from datetime import datetime
  2. from typing import TYPE_CHECKING
  3. from pydantic import BaseModel
  4. if TYPE_CHECKING:
  5. from app.db.models import Session as SessionModel
  6. class SessionCreateRequest(BaseModel):
  7. tenant_id: str
  8. app_id: str
  9. user_id: str
  10. channel_type: str = "web"
  11. title: str | None = None
  12. class SessionResponse(BaseModel):
  13. id: str
  14. tenant_id: str
  15. app_id: str
  16. user_id: str
  17. channel_type: str
  18. session_status: str
  19. title: str | None = None
  20. started_time: datetime | None = None
  21. last_active_time: datetime | None = None
  22. created_time: datetime
  23. @classmethod
  24. def from_entity(cls, entity: "SessionModel") -> "SessionResponse":
  25. return cls.model_validate(entity, from_attributes=True)