6d8b6b3e59
Implemented DeliveryTask, Payment, and Sale entities with full CRUD, business logic, and API endpoints. Updated Order/OrderItem for sale linkage and fulfillment tracking. Registered new DbSets and DI services. Revised documentation for delivery, sale, and payment workflows.
39 lines
1.4 KiB
C#
39 lines
1.4 KiB
C#
using Distribution.Data;
|
|
using Distribution.Models;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace Distribution.Features.DeliveryRide;
|
|
|
|
public class DeliveryTaskRepository(AppDBContext context) : IDeliveryTaskRepository
|
|
{
|
|
public async Task<DeliveryTask?> 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<List<DeliveryTask>> 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<bool> 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);
|
|
}
|