using Application.DTOs.OrderDTOs; namespace Application.Abstractions.Interfaces { public interface IOrderService { Task CreateOrderAsync(int senderId, CreateOrderDTO orderDto); Task GetOrderByIdAsync(int orderId); Task> GetAllOrdersAsync(); Task> GetUserOrdersAsync(int userId); Task> GetSentOrdersAsync(int senderId); Task> GetReceivedOrdersAsync(int recipientId); Task> GetOrdersByStatusAsync(OrderStatus status); Task UpdateOrderStatusAsync(int orderId, OrderStatus newStatus); Task AssignRobotToOrderAsync(int orderId, int robotId); Task CancelOrderAsync(int orderId, int userId); Task DeleteOrderAsync(int orderId); Task ExecuteOrderAsync(int orderId, int userId); Task CalculateDeliveryPriceAsync(double weight); Task AdminUpdateOrderAsync(AdminUpdateOrderDTO updateDto); } }