Flutter (арх: Bloc): Изменить расчет штрафа при отмене бронирования апартаментов и 3 доп задачи
Описание:
Необходимо исправить процесс отмены бронирования в приложении. В настоящее время при попытке отмены некоторых бронирований возникает ошибка:
{"errors":[{"code":"ReservationCannotBeCancelled","message":"Reservation cannot be cancelled, the expected penalty amount does not match the current one, try to cancel the reservation with a new penalty amount"}]}
Эта ошибка связана с тем, что мы отправляем неверную сумму штрафа, которая не соответствует ожиданиям сервиса.
▎Требования:
1. Проверка информации о штрафе:
В нашей базе данных хранится информация об объекте, включая данные о возможности бесплатной отмены:
{"freeCancellationPossible":false,"penaltyAmount":2200.0}
- Если freeCancellationPossible равен false, необходимо отобразить сумму штрафа рядом с текстом "нет бесплатной отмены". Однако сумму штрафа следует определять не просто из penaltyAmount, а согласно следующей логике:
2. Логика расчета штрафа:
- penaltyAmount должен составлять максимум 20% от стоимости бронирования. Если penaltyAmount превышает 20%, необходимо установить его равным 20%.
- Если penaltyAmount меньше или равен 20%, используем его без изменений.
- Размер штрафа может изменяться в зависимости от близости даты заезда. Убедитесь, что это учитывается в коде. Для получения актуального значения penaltyAmount необходимо перед отменой выполнять запрос на его расчет.
▎Цель:
Обеспечить корректную отмену бронирований без ошибок, следуя указанным требованиям по расчету штрафов.
Дополнительные задачи:1. При переходе к просмотру информации по выбранным апартаментам, меняется их название с адреса самого проживания (например, Советская, 142) на адрес "объекта" (улица Чавайна). - тут надо брать информацию из другого ключа в объекте: не из property, а из room_type (ну на фронте по крайней мере так)2. Тоже самое с description (описание апартаментов)3. В правилах отмены на забронированных апартаментах мы берем данные из {"freeCancellationPossible":true,"freeCancellationDeadlineLocal":"2024-10-29T10:39:00","freeCancellationDeadlineUtc":"2024-10-29T07:39:00Z","penaltyAmount":2000.0} а именно freeCancellationDeadlineUtc и пишем, что UTC+4, надо брать freeCancellationDeadlineLocal.
И обновить приложение в play market
Работаем через безопасную сделку.
В отклике напишите сколько денег вам нужно для решения этих задач