У меня есть модель Meeting, в которой много участников. Каждый участник может предпринять несколько действий против Собрания (зарегистрироваться, принять, отклонить и т. Д.). Статус собрания (ожидающий, подтвержденный и т. Д.) Зависит от последних действий каждого участника и его собственных атрибутов (срок действия истек и т. Д.)
Например, если все участники примут, то статус встречи будет «подтвержден». Однако, если после подтверждения встречи один из участников предлагает новое время (из-за конфликта времени), тогда собрание становится «ожидающим».
Как мне смоделировать состояние в Meeting? Должен ли я сериализовать (т.е. создать столбец latest_state в таблице событий) текущее состояние? Если да, то как я могу использовать конечный автомат, основанный на действиях дочерних объектов?
Спасибо.