session.py 723 B

123456789101112131415161718192021222324252627282930
  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 SessionResponse(BaseModel):
  12. id: str
  13. app_id: str
  14. user_id: str
  15. channel_type: str
  16. session_status: str
  17. title: str | None = None
  18. started_time: datetime | None = None
  19. last_active_time: datetime | None = None
  20. created_time: datetime
  21. @classmethod
  22. def from_entity(cls, entity: "SessionModel") -> "SessionResponse":
  23. return cls.model_validate(entity, from_attributes=True)