using Fuel.Core.Transactions.Dto;
using FuelServer.Core.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Fuel.Core.Models;

namespace Fuel.Application.Service
{
    public interface ITransactionsService
    {
         Task<ServiceResponse> CreateTransactions(UploadTransactions uploadTransactions);

        Task<ServiceResponse> GetTransactionsAsync(RequestModel input);
        Task<ServiceResponse> GetPrepaymentTransactionsAsync(RequestModel input);
        Task<ServiceResponse> CommitPayment(int trxId, string AuthCode);
        Task<ServiceResponse> GetMiniProgramTransactionsUnpaidAsync(TransactionsInput input);
        Task<ServiceResponse> GetMiniProgramTransactionsUnpaidNozzleAsync(long NozzleId);
        Task<ServiceResponse> GetMiniProgramTransactionsPaidAsync(TransactionsInput input);
        Task<ServiceResponse> RefundTrx(int trxId,
            decimal? OriginalQty = null);
        Task<ServiceResponse> Redeem(int trxId, decimal OriginalQty, decimal FuelItemPumpTotalizerVolume);
        Task<ServiceResponse> UnifiedOrder(int trxId);
        Task<ServiceResponse> WXFindOrders(DateTime? dateTime, int pageNum, int lineCount);
        Task SendMessage(int trxId, string orderType);
    }
}