Update MMS43 pricing
This commit is contained in:
@@ -7,14 +7,30 @@ func NewMMS43PricingService() (*MMS43PricingService, error) {
|
||||
}
|
||||
|
||||
func (s *MMS43PricingService) Prices(params PricingParams) (map[string]Price, error) {
|
||||
// Calculate passenger price
|
||||
var passengerAmount float64
|
||||
|
||||
// First 2 trips are free (1 return trip or 2 outward trips)
|
||||
freeTripsRemaining := 2 - params.Beneficiary.History
|
||||
if freeTripsRemaining > 0 {
|
||||
// Trip is free
|
||||
passengerAmount = 0.0
|
||||
} else {
|
||||
// Price is 0.15€/km for passenger distance (convert meters to km)
|
||||
passengerAmount = 0.15 * (float64(params.SharedMobility.PassengerDistance) / 1000.0)
|
||||
}
|
||||
|
||||
// Driver indemnification is always 0.30€/km for driver distance (convert meters to km)
|
||||
driverAmount := 0.30 * (float64(params.SharedMobility.DriverDistance) / 1000.0)
|
||||
|
||||
return map[string]Price{
|
||||
"passenger": {
|
||||
Amount: 0.32 * float64(params.SharedMobility.PassengerDistance),
|
||||
Currency: "EUR/2",
|
||||
Amount: passengerAmount,
|
||||
Currency: "EUR",
|
||||
},
|
||||
"driver": {
|
||||
Amount: 0.32 * float64(params.SharedMobility.DriverDistance),
|
||||
Currency: "EUR/2",
|
||||
Amount: driverAmount,
|
||||
Currency: "EUR",
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user