Files
imprink/src/Imprink.Domain/Repositories/IOrderRepository.cs
2025-06-26 00:16:26 +03:00

25 lines
1.9 KiB
C#

using Imprink.Domain.Entities;
using Imprink.Domain.Models;
namespace Imprink.Domain.Repositories;
public interface IOrderRepository
{
Task<Order?> GetByIdAsync(Guid id, CancellationToken cancellationToken = default);
Task<Order?> GetByIdWithDetailsAsync(Guid id, CancellationToken cancellationToken = default);
Task<IEnumerable<Order>> GetByUserIdAsync(string userId, CancellationToken cancellationToken = default);
Task<IEnumerable<Order>> GetByUserIdWithDetailsAsync(string userId, CancellationToken cancellationToken = default);
Task<IEnumerable<Order>> GetByMerchantIdAsync(string merchantId, CancellationToken cancellationToken = default);
Task<IEnumerable<Order>> GetByMerchantIdWithDetailsAsync(string merchantId, CancellationToken cancellationToken = default);
Task<IEnumerable<Order>> GetByDateRangeAsync(DateTime startDate, DateTime endDate, CancellationToken cancellationToken = default);
Task<IEnumerable<Order>> GetByStatusAsync(int statusId, CancellationToken cancellationToken = default);
Task<IEnumerable<Order>> GetByShippingStatusAsync(int shippingStatusId, CancellationToken cancellationToken = default);
Task<Order> AddAsync(Order order, CancellationToken cancellationToken = default);
Task<Order> UpdateAsync(Order order, CancellationToken cancellationToken = default);
Task<bool> DeleteAsync(Guid id, CancellationToken cancellationToken = default);
Task<bool> ExistsAsync(Guid id, CancellationToken cancellationToken = default);
Task UpdateStatusAsync(Guid orderId, int statusId, CancellationToken cancellationToken = default);
Task UpdateShippingStatusAsync(Guid orderId, int shippingStatusId, CancellationToken cancellationToken = default);
Task AssignMerchantAsync(Guid orderId, string merchantId, CancellationToken cancellationToken = default);
Task UnassignMerchantAsync(Guid orderId, CancellationToken cancellationToken = default);
}