package com.cim.idm.mwmsextend.checkrecord.management;

import java.util.List;
import java.util.Map;

import com.cim.idm.framework.data.EventInfo;
import com.cim.idm.framework.exception.IDMFrameDBErrorSignal;
import com.cim.idm.framework.exception.ext.DuplicateNameSignal;
import com.cim.idm.framework.exception.ext.FrameworkErrorSignal;
import com.cim.idm.framework.exception.ext.NotFoundSignal;
import com.cim.idm.framework.orm.service.CommonService;
import com.cim.idm.mwmsextend.checkrecord.management.data.CheckRecord;
import com.cim.idm.mwmsextend.checkrecord.management.data.CheckRecordKey;
import com.cim.idm.mwmsextend.checkrecord.management.info.CreateInfo;
import com.cim.idm.mwmsextend.checkrecord.management.info.RemoveInfo;
import com.cim.idm.mwmsextend.checkrecord.management.info.SetEventInfo;
import com.cim.idm.wmspackage.materialpacking.management.data.MaterialPackingKey;

public interface CheckRecordService extends CommonService<CheckRecordKey,CheckRecord>{
	
	public CheckRecord create(EventInfo eventInfo,CreateInfo createInfo) throws NotFoundSignal,
			DuplicateNameSignal, FrameworkErrorSignal;
	
	public CheckRecord[] create(EventInfo eventInfo,List<CreateInfo> createInfoList) throws NotFoundSignal,
			DuplicateNameSignal, FrameworkErrorSignal;
	
	public List<CheckRecord> select(String condition, Object[] bindSet) throws NotFoundSignal, IDMFrameDBErrorSignal;
	
	public CheckRecord remove(CheckRecordKey key, EventInfo eventInfo,RemoveInfo removeInfo) throws NotFoundSignal, DuplicateNameSignal,
			FrameworkErrorSignal;
	
	public CheckRecord[] remove(List<CheckRecordKey> key, EventInfo eventInfo,List<RemoveInfo> removeInfo) throws NotFoundSignal, DuplicateNameSignal,
	FrameworkErrorSignal;
	
	public CheckRecord setEvent(CheckRecordKey key,EventInfo eventInfo, SetEventInfo setEventInfo)throws NotFoundSignal, DuplicateNameSignal, FrameworkErrorSignal;

	public CheckRecord[] setEvent(List<CheckRecordKey> key,EventInfo eventInfo, SetEventInfo setEventInfo)throws NotFoundSignal, DuplicateNameSignal, FrameworkErrorSignal;

	public CheckRecord[] setEvent(List<CheckRecordKey> key,EventInfo eventInfo, List<SetEventInfo> setEventInfo)throws NotFoundSignal, DuplicateNameSignal, FrameworkErrorSignal;
}
