예제 #1
0
 def checkAvailability(self, plan: ExercisePlan, start: int, end: int) -> bool:
     if not plan.getTrainer().checkAvailability(start, end):
         return False
     for item in plan.getPlanItems():
         if not item.getEquipment().checkAvailability(start, end):
             return False
     return True
예제 #2
0
 def subscribeCustomer(self, customer: Customer, plan: ExercisePlan,
                             dailyStart: int, dailyEnd: int, reservationDate: datetime) -> bool:
     if not self.checkAvailability(plan, dailyStart, dailyEnd):
         return False
     plan.getTrainer().assignToCustomer(dailyStart, dailyEnd)
     for item in plan.getPlanItems():
         item.getEquipment().reserveEquipment(dailyStart, dailyEnd)
     subscription = Subscription(len(customer.getSubscribtions()), plan, reservationDate, dailyStart, dailyEnd)
     customer.subscribe(subscription)
     plan.getTrainer().addSubscribtion(subscription)
예제 #3
0
 def checkAvailability(self, plan: ExercisePlan, start: int,
                       end: int) -> bool:
     if plan.getTotalDuration() != (end - start):
         raise Exception(
             f"selected excersie plan requires {plan.getTotalDuration()} minutes, given interval is {end - start}"
         )
     if not plan.getTrainer().checkAvailability(start, end):
         return False
     for item in plan.getPlanItems():
         duration = duration + item.getDuration()
         if not item.getEquipment().checkAvailability(start, end):
             return False
     return True