ride reconcilation with driver profile update

This commit is contained in:
Kalana B. Thilakarathna
2026-08-31 12:14:30 +05:30
parent 75b5035354
commit 76ca9f874d
24 changed files with 3912 additions and 112 deletions
+2 -6
View File
@@ -1,5 +1,4 @@
using Distribution.Features.Stock;
using Distribution.Features.DriverComplianceConfig;
using Distribution.Features.DriverProfile;
using Distribution.Infra.UoW;
using Distribution.Models;
@@ -9,7 +8,6 @@ namespace Distribution.Features.Ride;
public class RideService(
IRideRepository rideRepo,
IDriverProfileRepository driverRepo,
IDriverComplianceConfigRepository complianceRepo,
IRideCancelRequestRepository cancelRepo,
Features.Vehicle.IVehicleRepository vehicleRepo,
IStockRepository stockRepo,
@@ -138,11 +136,9 @@ public class RideService(
var ride = await rideRepo.GetByIdAsync(rideId)
?? throw new KeyNotFoundException("Ride not found");
if (ride.Status != RideStatus.Active)
if (ride.Status != RideStatus.PendingClose)
throw new InvalidOperationException($"Cannot close a ride in {ride.Status} status");
await EnsureVehicleStockClearedAsync(ride.FK_VehicleId);
ride.Status = RideStatus.Closed;
ride.ClosedAt = DateTime.Now;
ride.Meterend = request.Meterend;
@@ -319,7 +315,7 @@ public class RideService(
if (!driver.IsActive)
throw new InvalidOperationException("Driver profile is inactive");
var config = await complianceRepo.GetAsync();
var config = await driverRepo.GetComplianceConfigAsync();
if (config is null) return;
var today = DateTime.Now.Date;