есть три поля - город, адрес, транспорт, а у заказа три статуса - новый, подтвержденный и в работе
1) Первый шаг за пользователем, он создает заказ (статус - новый**), заполняет **город обязательно, адрес по желанию
итак, есть заказ
например, такой
id: 1
city: Saratov
address: null
transport: null
2) Второй шаг за менеджером - он звонит юзеру, подтверждает заказ, если не заполнен адрес, уточняет по телефону и списывает его.
Нельзя перевести систему в статус подтвержденный без адреса
3) Ищется транспорт, как только нашли - переводим заказ в статус в работе
ВОПРОС
По логике системы, статус может откатиться назад, например, потребность сменить транспорт, заказ переходит в статус подтвержденный
Обычно, я это реализовываю так - на уровне фронтенда форма передает все таким образом, чтобы роут просто влил в БД то, что необходимо. То есть - есть селектор статуса и если мы переключаем на подтвержденный, то поле транспорта просто удаляется из фронта. А валидатор делает проверку, если при статусе подтвержденный у нас есть транспорт, мы выкидываем ошибку, типа какого лешего, разберись, что ты имел ввиду.
Так вот - а если делать наоборот? Просто чистить поля в соответствии со статусом. Например, мы переключаемся обратно на подтвержденный, валидатор не ругается, система просто к херам (вообще вне зависимости от фронта, на уровне логики бэка) стирает данные о транспорте.
Или это неправильно?.. Как верней здесь делать?
где у заказа поле "статус"?
хм…не думал об этом
Обсуждают сегодня