Примечания:
- На покрытие кода тестами времени не хватило
- Использовал symfony/validation component для валидации сущностей, т.к. использование внешних библиотек не запрещено. Если бы это запрещалось в ТЗ, то при реализации этого функционала придерживался бы тех же механизмов, что используются в нем (только значительно более упрощенно)