package com.goafanti.common.dao;

import java.util.ArrayList;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.goafanti.common.model.Demand;
import com.goafanti.demand.bo.DemandInterestBo;
import com.goafanti.demand.bo.DemandListBo;
import com.goafanti.demand.bo.DemandManageDetailBo;
import com.goafanti.demand.bo.DemandRecommended;
import com.goafanti.portal.bo.DemandPortalDetailBo;
import com.goafanti.portal.bo.DemandPortalSimilarListBo;
import com.goafanti.portal.bo.DemandSearchDetailBo;

public interface DemandMapper {
	int deleteByPrimaryKey(String id);

	int insert(Demand record);

	int insertSelective(Demand record);

	Demand selectByPrimaryKey(String id);

	int updateByPrimaryKeySelective(Demand record);

	int updateByPrimaryKey(Demand record);

	DemandManageDetailBo selectUserDemandDetail(String id);

	int batchDeleteByPrimaryKey(List<String> id);

	DemandManageDetailBo selectOrgDemandDetail(String id);

	int updateReleaseDate(String id);

	void insertBatch(List<Demand> demandList);

	DemandSearchDetailBo selectDemandSearchDetail(String uid, String id);

	Integer findDemandNumByUid(String uid);

	DemandPortalDetailBo findOrgPortalDemandDetail(@Param("id")String id, @Param("uid")String uid);

	DemandPortalDetailBo findUserPortalDemandDetail(@Param("id")String id, @Param("uid")String uid);

	List<DemandPortalSimilarListBo> findByIndustryCategoryA(@Param("industryCategoryA") Integer industryCategoryA,
			@Param("id") String id);

	int updateEmployerId(String id);
	
	ArrayList<DemandListBo> selectDemandList (Integer boutique);
	
	List<DemandListBo> selectCsutomerLike(String uid);
		
	int countInterest(String demandId);

	List<DemandInterestBo> demandInterest(String uid);

	Demand selectDemandDetail(String id);

	DemandListBo selectAppByPrimaryKey(String id);

	List<DemandRecommended> getAppHomeRecommended();

	Demand selectDemandFollow(String id);
}