namespace MyOffice.Services.Account;

using AutoMapper;
using Microsoft.Extensions.Logging;

using Identity;
using Data.Repositories.Account;
using Data.Repositories.Currency;
using Data.Repositories.Item;
using Item;

public partial class AccountService
{
	private ILogger<AccountService> _logger;
	private readonly IMapper _mapper;
	private readonly IAccountCategoryRepository _accountCategoryRepository;
	private readonly IAccountAccessRepository _accountAccessRepository;
	private readonly IAccountAccessInviteRepository _accountAccessInviteRepository;
	private readonly IAccountRepository _accountRepository;
	private readonly ICurrencyRepository _currencyRepository;
	private readonly IAccountAccountCategoryRepository _accountAccountCategoryRepository;
	private readonly IMotionRepository _motionRepository;
	private readonly IItemRepository _itemRepository;
	private readonly IItemGlobalRepository _itemGlobalRepository;
	private readonly ItemService _itemService;
	private readonly IContextProvider _contextProvider;

	public AccountService(
		ILogger<AccountService> logger,
		IMapper mapper,
		IAccountCategoryRepository accountCategoryRepository,
		IAccountAccessRepository accountAccessRepository,
		IAccountAccessInviteRepository accountAccessInviteRepository,
		IAccountRepository accountRepository,
		ICurrencyRepository currencyRepository,
		IAccountAccountCategoryRepository accountAccountCategoryRepository,
		IMotionRepository motionRepository,
		IItemRepository itemRepository,
		IItemGlobalRepository itemGlobalRepository,
		ItemService itemService,
		IContextProvider contextProvider
	)
	{
		_logger = logger;
		_mapper = mapper;
		_accountCategoryRepository = accountCategoryRepository;
		_accountAccessRepository = accountAccessRepository;
		_accountAccessInviteRepository = accountAccessInviteRepository;
		_accountRepository = accountRepository;
		_currencyRepository = currencyRepository;
		_accountAccountCategoryRepository = accountAccountCategoryRepository;
		_motionRepository = motionRepository;
		_itemRepository = itemRepository;
		_itemGlobalRepository = itemGlobalRepository;
		_itemService = itemService;
		_contextProvider = contextProvider;
	}
}
