1) пишите тесты, всегда
2) вполне можно написать интерфейс, добавить все возможные правила применения скидок и ограничить менеджмент этими правилами.
3) если захотят добавить функционал - запрос на изменение с написанием тестов - оценка по срокам и пусть думают что дешевле.
тесты худо бедно работают и благодаря им нахожу косяки. хотел узнать кто как решает такие задачки. может есть уже какие то паттерны. сейчас решил сделать ui где правила рисуется диаграммами. рисвалок вроде много. остается только написать функционал который будет испольнять эти правила.