using ComputerStoreContracts.BindingModels;
using ComputerStoreContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ComputerStoreContracts.StoragesContracts;

public interface IComponentStorageContract
{
    List<ComponentViewModel> GetFullList();
    List<ComponentViewModel> GetFilteredList(ComponentBindingModel model);
    ComponentViewModel GetElement(ComponentBindingModel model);
    ComponentViewModel Insert(ComponentBindingModel model);
    ComponentViewModel Update(ComponentBindingModel model);
    ComponentViewModel Delete(ComponentBindingModel model);
    List<ProductViewModel> GetProductsByComponent(int componentId, int userId);
    List<ComponentRequestAssemblyReportViewModel> GetComponentsReport(DateTime startDate, DateTime endDate, int userId);
}
