aboutsummaryrefslogtreecommitdiff
path: root/src/Costasdev.Busurbano.Backend
diff options
context:
space:
mode:
Diffstat (limited to 'src/Costasdev.Busurbano.Backend')
-rw-r--r--src/Costasdev.Busurbano.Backend/Services/OtpService.cs13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/Costasdev.Busurbano.Backend/Services/OtpService.cs b/src/Costasdev.Busurbano.Backend/Services/OtpService.cs
index 82c43e0..87895d3 100644
--- a/src/Costasdev.Busurbano.Backend/Services/OtpService.cs
+++ b/src/Costasdev.Busurbano.Backend/Services/OtpService.cs
@@ -161,13 +161,24 @@ public class OtpService
int cardTicketsRequired = 0;
DateTime? lastTicketPurchased = null;
+ int tripsPaidWithTicket = 0;
foreach (var leg in busLegs)
{
- if (lastTicketPurchased == null || (leg.StartTime - lastTicketPurchased.Value).TotalMinutes > 45)
+ // If no ticket purchased, ticket expired (no free transfers after 45 mins), or max trips with ticket reached
+ if (
+ lastTicketPurchased == null ||
+ (leg.StartTime - lastTicketPurchased.Value).TotalMinutes > 45 ||
+ tripsPaidWithTicket >= 3
+ )
{
cardTicketsRequired++;
lastTicketPurchased = leg.StartTime;
+ tripsPaidWithTicket = 1;
+ }
+ else
+ {
+ tripsPaidWithTicket++;
}
}