| 12345678910111213141516171819202122232425262728293031323334353637 | import typingfrom .product import productfrom .reservation import reservationclass reservations_collection:    def __init__(self) -> None:        self.__content = list()    def append(self, target: reservation) -> object:        self.__content.append(target)        return self    def _filter(self, action: typing.Callable) -> object:        new = list()        for item in self.__content:            if action(item):                new.append(item)        self.__content = new        return self    def by_target(self, target: product) -> object:        if not target.in_database:            raise reservation_exception("Target product must be in database.")        return self._filter(lambda item: item.target_id == target.id)    def by_email(self, target: str) -> object:        return self._filter(lambda item: item.email == target)    def by_phone_number(self, target: str) -> object:        return self._filter(lambda item: item.phone_number == target)        def results(self) -> list:        return self.__content
 |