package com.iotechn.unimall.admin.api.market;


import com.iotechn.unimall.core.annotation.HttpMethod;
import com.iotechn.unimall.core.annotation.HttpOpenApi;
import com.iotechn.unimall.core.annotation.HttpParam;
import com.iotechn.unimall.core.annotation.HttpParamType;
import com.iotechn.unimall.core.annotation.param.NotNull;
import com.iotechn.unimall.core.exception.ServiceException;
import com.iotechn.unimall.data.domain.market.MarketCase;
import com.iotechn.unimall.data.model.Page;
import java.util.Date;

/**
 * 关注Service接口
 * 
 * @author jlb
 * @date 2023-02-03
 */
@HttpOpenApi(group = "admin.unimall.marketCase", description = "关注")
public interface IMarketCaseService{
	@HttpMethod(description = "新增")
	public Boolean add(@NotNull @HttpParam(name = "marketCase", type = HttpParamType.COMMON, description = "关注") MarketCase marketCase,
						   @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;

	@HttpMethod(description = "列表")
	public Page<MarketCase> list(
								@HttpParam(name = "concernedId", type = HttpParamType.COMMON, description = "被关注人id") String concernedId,
							@HttpParam(name = "followersId", type = HttpParamType.COMMON, description = "关注人id") String followersId,
					@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
		@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)
		throws ServiceException;

	@HttpMethod(description = "删除")
	public Boolean delete(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = " ")String id)throws ServiceException;

	@HttpMethod(description = "修改")
	public Boolean update(@NotNull @HttpParam(name = "marketCase", type = HttpParamType.COMMON, description = "关注") MarketCase marketCase,
						  @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;

	@HttpMethod(description = "查询")
	public MarketCase get(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = " ")Long id)throws ServiceException;
	
	@HttpMethod(description = "导出excl表", permission = "admin:unimall:marketCase:export",permissionParentName = "宠物管理", permissionName = "关注管理")
	public String export(@HttpParam(name = "concernedId", type = HttpParamType.COMMON, description = "被关注人id") String concernedId,
							@HttpParam(name = "followersId", type = HttpParamType.COMMON, description = "关注人id") String followersId,
				@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
	@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)throws ServiceException;
	
}
