From ffb8ee87898bffe5fee706abb047133585bb5d0d Mon Sep 17 00:00:00 2001 From: Ariel Costas Guerrero Date: Fri, 12 Dec 2025 18:23:46 +0100 Subject: feat: enhance OTP service logic, improve planner overlay, and update NavBar styles --- src/Costasdev.Busurbano.Backend/Services/OtpService.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/Costasdev.Busurbano.Backend/Services/OtpService.cs') 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++; } } -- cgit v1.3