sketch.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. from .base import ORMBase
  2. from pydantic import UUID4, BaseModel
  3. from typing import Optional
  4. from datetime import datetime
  5. from uuid import UUID
  6. class SketchCreate(BaseModel):
  7. title: str
  8. description: str
  9. owner_id: Optional[UUID4] = None
  10. investigation_id: UUID4
  11. status: Optional[str] = "active"
  12. class SketchRead(ORMBase):
  13. id: UUID4
  14. title: str
  15. description: str
  16. created_at: datetime
  17. owner_id: Optional[UUID4]
  18. investigation_id: UUID4
  19. last_updated_at: datetime
  20. status: str
  21. class SketchProfileCreate(BaseModel):
  22. sketch_id: UUID4
  23. profile_id: UUID4
  24. role: Optional[str] = "editor"
  25. class SketchProfileRead(ORMBase):
  26. id: int
  27. created_at: datetime
  28. sketch_id: UUID4
  29. profile_id: UUID4
  30. role: str
  31. class SketchUpdate(BaseModel):
  32. title: Optional[str] = None
  33. description: Optional[str] = None
  34. owner_id: Optional[UUID] = None
  35. status: Optional[str] = None
  36. investigation_id: Optional[UUID] = None
  37. class SketchIn(BaseModel):
  38. title: Optional[str] = None
  39. description: Optional[str] = None
  40. owner_id: Optional[UUID] = None
  41. status: Optional[str] = "active"
  42. investigation_id: UUID # requis