

#  Three different types of tickets: concert, movie, sporting
#  All tickets have in common: price, seat number, venue(location), date, time.

#  Concert tickets: artist name
#  Move tickets: movie title, move rating
#  Sporting tickets: 2 teams (whatever vs. whatever)

class Ticket:
    def __init__(self, price, seat_number, venue, date, time):
        self.price = price
        self.seat_number = seat_number
        self.venue = venue
        self.date = date
        self.time = time

    def get_price(self):
        return self.price

    def set_price(self, new_price):
        self.price = new_price

    def __str__(self):
        raise NotImplementedError()

class Concert(Ticket):
    def __init__(self, price, seat_number, venue, date, time, artist_name):
        Ticket.__init__(self, price, seat_number, venue, date, time)
        self.artist_name = artist_name

    def __str__(self):
        return '%s, %s, $%s, seat %s, %s, %s' %(self.artist_name, self.date, self.price, self.seat_number, self.venue, self.time)
   

class Movie(Ticket):
    def __init__(self, price, seat_number, venue, date, time, movie_title, movie_rating):
        Ticket.__init__(self, price, seat_number, venue, date, time)
        self.movie_title = movie_title 
        self.movie_rating = movie_rating

    def __str__(self):
        return '%s %s: %s, $%s, seat %s, %s, %s' %(self.movie_title, self.movie_rating, self.date, self.price, self.seat_number, self.venue, self.time)

class Sporting(Ticket):
    def __init__(self, price, seat_number, venue, date, time, team1, team2):
        Ticket.__init__(self, price, seat_number, venue, date, time)
        self.team1 = team1 
        self.team2 = team2
        
    def __str__(self):
        return '%s vs. %s: %s, $%s, seat %s, %s, %s' %(self.team1, self.team2, self.date, self.price, self.seat_number, self.venue, self.time)

class Order:
    def __init__(self, ticket_instance, ticket_amount):
        self.ticket_instance = ticket_instance
        self.ticket_amount = ticket_amount

    def charge(self):
        price = self.ticket_instance.get_price()
        new_price = price * self.ticket_amount
        self.ticket_instance.set_price(new_price)
        





        
