Ride-hailing improves discounts, rating prompts, and production delivery
Ride-hailing now applies the single best eligible location discount to a fare instead of combining competing promotions. The selected discount is reflected consistently in customer and attendant quotes and bookings, usage limits are rechecked during booking creation, and attribution is preserved for admin reporting.
The booking transition to normalized route stops was also hardened for mixed-version deployments. Customer and attendant booking creation temporarily keep legacy endpoint fields synchronized with booking_stops, reads can fall back safely when older rows do not yet have stop records, and the migration path avoids requiring manual production SQL during the cutover.
Rating experience
Customer rating prompts are less intrusive and more predictable. The home screen only prompts once per app run for the most recent eligible completed ride, while ride history now opens the rating sheet immediately and loads any missing driver details in the background. This avoids repeated prompts and removes the wait before a customer can start rating from history.
Attendant Android production distribution
The attendant Android production build is now prepared for Firebase App Distribution instead of Google Play Internal Testing. The workflow builds a production-signed APK, derives the Firebase app ID from the production configuration, and temporarily disables attendant production iOS while leaving other mobile production delivery paths unchanged.
Admin discount management
The admin location-discount form now explains maximum discount and usage-limit fields more clearly. API validation or save errors stay visible in the open modal instead of silently closing it, while true network failures continue to use the existing offline queue behavior.
References
- https://github.com/Xicar-PH/ride-hailing-mirror/pull/23
- https://github.com/Xicar-PH/ride-hailing-mirror/pull/27
- https://github.com/Xicar-PH/ride-hailing-mirror/pull/20
- https://github.com/Xicar-PH/ride-hailing-mirror/pull/31
- https://github.com/Xicar-PH/ride-hailing-mirror/pull/24
- https://github.com/Xicar-PH/xicar-admin-mirror/pull/4