Писать тесты наверное не буду, так как от меня потребуется только накидать рабочий черновик проекта, может выкинут проект и начнут с нуля если там правок получится больше. Поэтому спросил, а так все сделать в виде толстого контроллера то думаю это быстрее для рабочего MVP
ваша идея тоже вполне про command/handler . Тупо декомпозиция кода будет. Реквест- контроллер, логика - хэндлер, запросы - репозиторий. Но попписать подольше надо будет чутка.