package com.reyun.service;

import com.reyun.model.Account;
import com.reyun.model.CampaignGroup;

import java.math.BigInteger;
import java.util.List;

public interface CampaignGroupService {

	/**
	 * 创建活动组
	 * @param appid
	 * @param resource
	 * @param accountid
	 * @param campaigns
	 * @return
	 */
	CampaignGroup create(Long appid,CampaignGroup resource,Long accountid,String campaigns);
	
	/**
	 * 判断推广活动组是否重复
	 * @param app
	 * @param name
	 * @return
	 */
	BigInteger hasExistName(Long app, String name);
	
	/**
	 * 删除推广活动组
	 * @param id
	 */
	CampaignGroup delete(Long id,Long accountid);
	
	/**
	 * 根据id获取推广活动组
	 * @param id
	 * @return
	 */
	CampaignGroup findOneById(Long id);
	
	/**
	 * 修改推广活动组的信息
	 * @param campaigns
	 * @param campaignGroup
	 * @return
	 */
	CampaignGroup update(String campaigns,CampaignGroup campaignGroup);
	
	/**
	 * 获取当前用户下的推广活动组列表
	 * @param accountid
	 * @return
	 */
	List<CampaignGroup> listCamgroupByAccountAndApp(Long appid,Long accountid);

	/**
	 * 获取某个活动组下的推广活动
 	 * @param groupid
	 * @return
	 */
	List<Long> listCamCamgroupMapByGroupid(Long groupid);

    /**
     * 获取活动组下的推广活动
     */
    List<Long> listCampaignIdByGroupIds(List<Long> campaignGroupIdList);
	
	/**
	 * 名字获取渠道组
	 * @param name
	 * @return
	 */
	CampaignGroup findByName(Long app, String name);

	List<CampaignGroup> findByKeyword(Long app, String keyword, Long account);

	List<CampaignGroup> findAllByKeyword(Long app, String keyword, Account account, Boolean subscribe);

	/**
	 * 验证是否重名
	 */
	boolean valiad(CampaignGroup resource);

    boolean nameValiad(CampaignGroup resource, Account loginAccount);


}

//
//=======
//package com.reyun.service;
//
//import com.reyun.model.Account;
//import com.reyun.model.CampaignGroup;
//
//import java.math.BigInteger;
//import java.util.List;
//
//public interface CampaignGroupService {
//
//	/**
//	 * 创建活动组
//	 * @param appid
//	 * @param resource
//	 * @param accountid
//	 * @param campaigns
//	 * @return
//	 */
//	CampaignGroup create(Long appid,CampaignGroup resource,Long accountid,String campaigns);
//
//	/**
//	 * 判断推广活动组是否重复
//	 * @param app
//	 * @param name
//	 * @return
//	 */
//	BigInteger hasExistName(Long app, String name);
//
//	/**
//	 * 删除推广活动组
//	 * @param id
//	 */
//	CampaignGroup delete(Long id,Long accountid);
//
//	/**
//	 * 根据id获取推广活动组
//	 * @param id
//	 * @return
//	 */
//	CampaignGroup findOneById(Long id);
//
//	/**
//	 * 修改推广活动组的信息
//	 * @param campaigns
//	 * @param campaignGroup
//	 * @return
//	 */
//	CampaignGroup update(String campaigns,CampaignGroup campaignGroup);
//
//	/**
//	 * 获取当前用户下的推广活动组列表
//	 * @param accountid
//	 * @return
//	 */
//	List<CampaignGroup> listCamgroupByAccountAndApp(Long appid,Long accountid);
//
//	/**
//	 * 获取某个活动组下的推广活动
// 	 * @param groupid
//	 * @return
//	 */
//	List<Long> listCamCamgroupMapByGroupid(Long groupid);
//
//    /**
//     * 获取活动组下的推广活动
//     */
//    List<Long> listCampaignIdByGroupIds(List<Long> campaignGroupIdList);
//
//	/**
//	 * 名字获取渠道组
//	 * @param name
//	 * @return
//	 */
//	CampaignGroup findByName(Long app, String name);
//
//	List<CampaignGroup> findByKeyword(Long app, String keyword, Long account);
//
//	List<CampaignGroup> findAllByKeyword(Long app, String keyword, Account account);
//
//	/**
//	 * 验证是否重名
//	 */
//	boolean valiad(CampaignGroup resource);
//
//    boolean nameValiad(CampaignGroup resource, Account loginAccount);
//
//
//}
//>>>>>>> v_tran_merge_java