reservation_loader.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import sqlmodel
  2. import sqlmodel.sql._expression_select_cls
  3. from .product import product
  4. from .reservation import reservation
  5. from .reservation import reservation_factory
  6. from .reservations_collection import reservations_collection
  7. class reservation_loader(sqlmodel.Session):
  8. def get_by_email(self, target: str) -> reservations_collection:
  9. pass
  10. def get_by_phone_number(self, target: str) -> reservations_collection:
  11. pass
  12. def get_by_target(self, target: product) -> reservations_collection:
  13. pass
  14. def store(self, target: reservation) -> bool:
  15. if not target.ready:
  16. raise RuntimeError("Reservation is not setup.")
  17. if target.in_database:
  18. error = "Target reservation is already in database. Reservation "
  19. error = error + "object is not editable."
  20. raise reservation_loader_exception(error)
  21. try:
  22. self.add(target)
  23. self.commit()
  24. self.refresh(target)
  25. return True
  26. except:
  27. return False
  28. def drop(self, target: reservation) -> bool:
  29. if not target.in_database:
  30. raise reservation_loader_exception("Reservation does not exists.")
  31. try:
  32. self.delete(target)
  33. self.commit()
  34. return True
  35. except:
  36. return False
  37. @property
  38. def __select(self) -> sqlmodel.sql._expression_select_cls.SelectOfScalar:
  39. return sqlmodel.select(reservation)