using LittleShop.Client.Configuration;
using LittleShop.Client.Services;
using Microsoft.Extensions.Options;

namespace LittleShop.Client;

public interface ILittleShopClient
{
    IAuthenticationService Authentication { get; }
    ICatalogService Catalog { get; }
    IOrderService Orders { get; }
    ICustomerService Customers { get; }
    IMessageService Messages { get; }
}

public class LittleShopClient : ILittleShopClient
{
    public IAuthenticationService Authentication { get; }
    public ICatalogService Catalog { get; }
    public IOrderService Orders { get; }
    public ICustomerService Customers { get; }
    public IMessageService Messages { get; }
    
    public LittleShopClient(
        IAuthenticationService authenticationService,
        ICatalogService catalogService,
        IOrderService orderService,
        ICustomerService customerService,
        IMessageService messageService)
    {
        Authentication = authenticationService;
        Catalog = catalogService;
        Orders = orderService;
        Customers = customerService;
        Messages = messageService;
    }
}