Выберите вопросы, которые могут Вам определить архитектуру решения:
Какие именно данные о продажах должны быть включены в отчет?

Какие аргументы должен принимать метод get_sales_data() и generate_report()?

От чего следует отнаследовать класс SalesReport?

Что делает класс SalesReport?