session.py 792 B

12345678910111213141516171819202122232425262728293031323334
  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. app_id: str
  8. user_id: str
  9. channel_type: str = "web"
  10. title: str | None = None
  11. class SessionListRequest(BaseModel):
  12. app_id: str | None = None
  13. class SessionResponse(BaseModel):
  14. 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)