Ключевая особенность, которая отличает задачу от обычного бронирования, — это связка записи с абонементом. Абонементы бывают разные: на 4, 8 или 12 занятий, с ограниченным сроком действия. Когда клиент записывается на конкретное занятие в расписании, система должна сама списывать одно посещение с его абонемента — сразу, а не постфактум. Если абонемент уже исчерпан, запись должна автоматически блокироваться, а не оформляться «в долг»: клиенту нужно показать сообщение о необходимости продлить абонемент прямо на этом шаге.
Отдельно нужно продумать возврат посещения при своевременной отмене записи и, наоборот, списание при неявке или слишком поздней отмене — эти правила должны настраиваться. У части клиентов одновременно может быть активно несколько абонементов — тогда списание должно происходить с того, что заканчивается раньше остальных, плюс несложная панель администратора: расписание, преподаватели, вместимость зала, виды абонементов и отчёт по остаткам.