Untitled
unknown
plain_text
3 years ago
2.7 kB
6
Indexable
class Movie:
def __init__(self, name, price, stock, release_date, age_limit):
self.name = name
self.price = price
self.stock = stock
self.release_date = release_date
self.age_limit = age_limit
def rent_movie(self, num):
if num > 0 and num <= self.stock:
self.stock -= num
return True
return False
def return_movie(self, num):
if num > 0:
self.stock += num
return True
return False
class Customer:
def __init__(self, name, age, balance, rental_limit):
self.name = name
self.age = age
self.balance = balance
self.rental_limit = rental_limit
self.rented_movies = []
def can_rent_movie(self, movie):
if self.age >= movie.age_limit and self.rental_limit > 0 and self.balance >= movie.price:
return True
return False
class MovieStore:
def __init__(self):
self.movies = []
self.customers = []
self.income = 0
def add_movie(self, movie):
# Check if movie already exists in the store
for m in self.movies:
if m.name == movie.name:
# If movie exists, just update the stock
m.stock += movie.stock
return
# If movie doesn't exist, add it to the list
self.movies.append(movie)
def remove_movie(self, movie_name):
for i, m in enumerate(self.movies):
if m.name == movie_name:
# Make sure movie is not rented before deleting
if m.stock == m.total_stock:
del self.movies[i]
return True
else:
return False
return False
def add_customer(self, customer):
self.customers.append(customer)
def remove_customer(self, customer_name):
for i, c in enumerate(self.customers):
if c.name == customer_name:
del self.customers[i]
return True
return False
def get_customer(self, customer_name):
for c in self.customers:
if c.name == customer_name:
return c
return None
def get_movie(self, movie_name):
for m in self.movies:
if m.name == movie_name:
return m
return None
def rent_movie(self, movie_name, customer_name, num):
movie = self.get_movie(movie_name)
customer = self.get_customer(customer_name)
if movie and customer:
if movie.rent_movie(num) and customer.can_rent_movie(movie):
customer.rented_movies.append(movie)
Editor is loading...