using LittleShop.DTOs; using LittleShop.Models; namespace LittleShop.Services; public interface ICustomerMessageService { Task CreateMessageAsync(CreateCustomerMessageDto createMessageDto); Task GetMessageByIdAsync(Guid id); Task> GetCustomerMessagesAsync(Guid customerId); Task> GetOrderMessagesAsync(Guid orderId); Task> GetPendingMessagesAsync(string platform = "Telegram"); Task MarkMessageAsSentAsync(Guid messageId, string? platformMessageId = null); Task MarkMessageAsDeliveredAsync(Guid messageId); Task MarkMessageAsFailedAsync(Guid messageId, string reason); Task GetMessageThreadAsync(Guid threadId); Task> GetActiveThreadsAsync(); Task ValidateCustomerExistsAsync(Guid customerId); Task ValidateOrderBelongsToCustomerAsync(Guid orderId, Guid customerId); Task CreateCustomerToAdminMessageAsync(CustomerMessage message); }