using SessionCompanion.Database.Tables;
using SessionCompanion.Services.Base;
using SessionCompanion.ViewModels.CharacterViewModels;
using SessionCompanion.ViewModels.ClassViewModels;
using SessionCompanion.ViewModels.RaceViewModels;
using SessionCompanion.ViewModels.UniversalModels;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;

namespace SessionCompanion.Services.Interfaces
{
    public interface ICharacterService : IServiceBase<CharacterViewModel, Character>
    {
        Task<IEnumerable<CharacterBasicStatsViewModel>> GetBasicCharactersData(List<int> charactersId);
        Task<IEnumerable<CharacterForLoginViewModel>> GetUserLoginCharacters(int userId);
        Task<List<UniversalStatisticViewModel>> GetCharacterStatistics(int characterId);
        Task<CharacterBasicInfoViewModel> GetBasicCharacterbasicInfo(int characterId);
        Task<IEnumerable<CharacterFromTemplatesSimpleViewModel>> GetCharactersFromTemplate(List<RaceViewModel> raceViewModels, List<ClassViewModel> classViewModels);
        Task CreateCharactersFromTemplate(int characterId, int userId, string newName);
    }
}