using BankContracts.BindingModels;
using BankContracts.SearchModels;
using BankContracts.ViewModels;

namespace BankContracts.StoragesContracts
{
    public interface IPurchaseStorage
    {
        List<PurchaseViewModel> GetFullList();
        List<PurchaseViewModel> GetFilteredList(PurchaseSearchModel model);
        PurchaseViewModel? GetElement(PurchaseSearchModel model);
        PurchaseViewModel? Insert(PurchaseBindingModel model);
        PurchaseViewModel? Update(PurchaseBindingModel model);
        PurchaseViewModel? Delete(PurchaseBindingModel model);

        List<PaymentViewModel> GetPaymentsFromPurchaseAndOperation(PurchaseSearchModel modelPurchase, OperationSearchModel modelOperation);
    }
}
