package com.emergency.avenue.storage.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.emergency.avenue.admin.api.vo.MaterialFailureVO;
import com.emergency.avenue.admin.api.vo.MaterialOutboundVO;
import com.emergency.avenue.common.core.util.R;
import com.emergency.avenue.storage.api.entity.MaterialMaintenance;
import com.emergency.avenue.storage.api.entity.MaterialMaintenanceStatus;
import com.emergency.avenue.storage.api.entity.MaterialView;
import com.emergency.avenue.storage.api.request.MaterialMaintenanceRequest;
import com.emergency.avenue.storage.api.response.MaterialMaintenanceResponse;

import java.util.List;

public interface MaterialMaintenanceService extends IService<MaterialMaintenance> {

	MaterialMaintenance getMaterialMaintenanceById(Integer id);

	R saveMaterialMaintenance(MaterialMaintenance materialMaintenance);

	R updateMaterialMaintenance(MaterialMaintenance materialMaintenance);

	Boolean removeByIdAndDetail(Long id);

	R saveInboundStatus(MaterialMaintenanceStatus materialMaintenanceStatus);

	R getTimeAndUnitPrice(MaterialView materialView);

	R getStatistics(MaterialMaintenanceRequest materialMaintenanceRequest);

	List<MaterialMaintenanceResponse> getStatisticsbyId(Integer id);

	List<MaterialFailureVO> getTimeAndUnitPriceForFailure(MaterialFailureVO materialFailureVO);

	List<MaterialOutboundVO>  getTimeAndUnitPriceForOutbound(MaterialOutboundVO materialOutboundOV);
}
