Валідація по структурі schedule
- Якщо заповнені поля hoursBy, daysBy або period - поле other порожнє.
- Якщо заповнене поле other - поля hoursBy, daysBy або period порожні.
Валідація hoursBy:
- якщо в enum вибрано день, тиждень і місяць - то максимальна кількість годин 24, 168 і 744 відповідно.
Валідація daysBy:
- якщо в enum вибрано тиждень і місяць - то максимальна кількість годин 7 і 31 відповідно.
Валідація period:
- startDate < endDate
- Періоди можуть перетинатися лише якщо графіки по днях тижня в них не перетинаються.
Валідація period.weekdays:
- графіки по днях тижня в рамках одного періоду не можуть перетинатися