using Distribution.Data; using Distribution.Models; using Microsoft.EntityFrameworkCore; namespace Distribution.Features.DeliveryRide; public class DeliveryTaskRepository(AppDBContext context) : IDeliveryTaskRepository { public async Task GetByIdAsync(Guid id) => await context.DeliveryTasks .Include(t => t.Order) .ThenInclude(o => o.Store) .Include(t => t.Order) .ThenInclude(o => o.OrderItems) .ThenInclude(i => i.Item) .FirstOrDefaultAsync(t => t.Id == id); public async Task> GetByRideIdAsync(Guid rideId) => await context.DeliveryTasks .Include(t => t.Order) .ThenInclude(o => o.Store) .Include(t => t.Order) .ThenInclude(o => o.OrderItems) .ThenInclude(i => i.Item) .Where(t => t.FK_RideId == rideId) .OrderBy(t => t.Sequence) .ToListAsync(); public async Task ExistsForOrderAndRideAsync(Guid orderId, Guid rideId) => await context.DeliveryTasks .AnyAsync(t => t.FK_OrderId == orderId && t.FK_RideId == rideId); public async Task AddAsync(DeliveryTask task) => await context.DeliveryTasks.AddAsync(task); public void Update(DeliveryTask task) => context.DeliveryTasks.Update(task); }