39 lines
2.0 KiB
Markdown
39 lines
2.0 KiB
Markdown
## 📝 Задача: Система управления событиями
|
||
|
||
### **Условие:**
|
||
|
||
Вы разрабатываете систему для управления событиями (конференции, вебинары, встречи). Нужно реализовать сервис регистрации участников с учетом следующих требований:
|
||
|
||
1. **Событие** имеет:
|
||
|
||
- ID, название, описание
|
||
- Дату начала и окончания
|
||
- Максимальное количество участников
|
||
- Статус (DRAFT, PUBLISHED, CANCELLED)
|
||
2. **Участник** имеет:
|
||
|
||
- ID, имя, email
|
||
- Дату регистрации
|
||
3. **Бизнес-правила:**
|
||
|
||
- Регистрация возможна только на опубликованные события
|
||
- Нельзя зарегистрироваться на событие, которое уже началось
|
||
- Нельзя превысить лимит участников
|
||
- Один участник может зарегистрироваться на событие только один раз
|
||
- При отмене события нужно уведомить всех участников
|
||
|
||
### **Техническое задание:**
|
||
|
||
**Опишите подход к решению задачи:**
|
||
|
||
1. **Архитектуру приложения** - какие слои нужны
|
||
2. **Entity классы** - основные поля и связи
|
||
3. **Ключевые методы EventRegistrationService**
|
||
4. **Обработку бизнес-правил** - где и как валидировать
|
||
5. **REST API endpoints** - какие нужны
|
||
6. **Обработку ошибок** - типы исключений
|
||
7. **Транзакции** - где нужны и почему
|
||
8. **Тестирование** - что важно покрыть тестами
|
||
|
||
**Время на выполнение:** 25 минут
|