using LittleShop.Client.Models;

namespace LittleShop.Client.Services;

public interface ICustomerService
{
    Task<ApiResponse<Customer>> GetCustomerByIdAsync(Guid id);
    Task<ApiResponse<Customer>> GetCustomerByTelegramUserIdAsync(long telegramUserId);
    Task<ApiResponse<Customer>> CreateCustomerAsync(CreateCustomerRequest request);
    Task<ApiResponse<Customer>> GetOrCreateCustomerAsync(CreateCustomerRequest request);
    Task<ApiResponse<Customer>> UpdateCustomerAsync(Guid id, UpdateCustomerRequest request);
    Task<ApiResponse<bool>> BlockCustomerAsync(Guid id, string reason);
    Task<ApiResponse<bool>> UnblockCustomerAsync(Guid id);
}