Flutter (арх: Bloc): Изменить расчет штрафа при отмене бронирования апартаментов и 3 доп задачи

Цена договорная
07 октября 2024, 15:37 • 6 откликов • 40 просмотров
Описание:
Необходимо исправить процесс отмены бронирования в приложении. В настоящее время при попытке отмены некоторых бронирований возникает ошибка:

{"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

Работаем через безопасную сделку.
В отклике напишите сколько денег вам нужно для решения этих задач
Файлы