using MS.Component.Jwt.UserClaim;
using MS.Entities.AccountingService_Models;
using MS.Models;
using MS.Models.ViewModel;
using MS.WebCore.Core;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace MS.Services
{
    public interface IAccountService : IBaseService
    {
        Task<ExecuteResult<UserData>> Login(LoginViewModel viewModel);
        Task<ExecuteResult<UserData>> syncFromVersion(long versionNo,bool excludingCurrentBu, string specificHeader);

        Task AddEmployeeCardMonthlySummaryToRedisAsync(string buid, string date, string Car);
        Task AddCarRedisAsync();


        /// <summary>
        /// 获取全部buid 
        /// </summary>
        /// <returns></returns>
        Task<IEnumerable<string>> GetBuids();

        Task ClearhashValues(string key);
        void Getdate(string buid, string date, string Car);
        Task addredis(string buid);
        Task<ExecuteResult> GetTransactioninfo(string trx_sequence_no,
           string nozzle_no,
           string business_unit_info_id,
           string transaction_time);
        Task<ExecuteResult> GetBusinessUnits(string guid);
        Task<ExecuteResult> CardInvoiceClearWarnAsync();
        Task<ExecuteResult> CardInvoiceClearAsync();

        Task<ExecuteResult> ElectronicAccountInvoiceClearAsync();
        Task Upload(List<UploadTrx> uploadTrxes);
        Task SendSms();
        Task<List<UserIdAndName>> userIdAndName(string Buid, int page = 1, int pageSize = 1000);
        Task<List<UserIdAndName>> userIdAndNameRedis(string Buid, int page = 1, int pageSize = 1000);
    }
}