Scenario:
The Grand Prix Experience is a premier destination for motorsport enthusiasts, attracting millions of fans annually to witness the thrill of Formula One racing. As the event continues to grow and introduce new experiences, there is a need for a comprehensive ticket booking system to streamline the purchasing process, enhance fan engagement, and manage attendance effectively. The new system will allow fans to purchase tickets online and at the venue, manage reservations, and access real-time information about races, events, and venue services.
The ticket booking system will include several types of tickets, such as single-race passes, weekend packages, season memberships, and group discounts. It will maintain a user-friendly online platform where visitors can select their preferred ticket type, choose a race date, and make payments through various methods, including credit cards and digital wallets.
Fans can create accounts to view their purchase history and manage and update upcoming visits. The ticket booking system will be able to calculate discounts and display the user’s purchase order history and account details. The system will also facilitate capacity management by tracking ticket sales in real time, which can be viewed by the administrators.
With these robust features, the Grand Prix Experience aims to provide a seamless, engaging, and enjoyable ticketing experience that keeps fans coming back year after year.
Design a **UML class diagram **representing the concepts and relationships in the scenario. Ensure the use of the different types of association and inheritance relationships where necessary. You may make assumptions about attributes (with proper access specified) and concepts not explicitly mentioned in the problem statement. A clear description of the relationships and assumptions must be included.
Write **Python code **to implement your UML diagram. Ensure that you define test cases to showcase the program features. Include screenshots of working scenarios and explain.
Ensure that your UML diagram and the Python code are well-documented and structured.