package com.sptg.estate.biz.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.sptg.common.core.beans.ResultBean;
import com.sptg.estate.api.dto.AgencyDto;
import com.sptg.estate.api.entity.Agency;
import org.springframework.stereotype.Service;

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

/**
 * title: AgencyServiceInterface
 * package: com.sptg.estate.biz.security
 * description: 社区 服务层接口
 */
@Service
public interface AgencyServiceInterface extends IService<Agency> {

    /**
     * 功能描述:社区列表查询
     *
     * @param agencyDto 社区业务对象（含分页及查询条件）
     * @return ResultBean<Page < Agency>>
     */
    ResultBean<Page<Agency>> showAgencyList(AgencyDto agencyDto);

    /**
     * 功能描述:添加社区
     *
     * @param agencyDto 社区业务对象
     * @return ResultBean<Boolean>
     */
    ResultBean<Agency> addAgency(AgencyDto agencyDto);

    /**
     * 功能描述:根据Id查找社区
     *
     * @param id 必填
     * @return Agency
     */
    Agency findAgencyById(Long id);


    /**
     * 功能描述:编辑社区
     *
     * @param agencyDto 社区业务对象
     * @return ResultBean<Boolean>
     */
    ResultBean<Boolean> updateAgency(AgencyDto agencyDto);

    /**
     * 功能描述:根据Id删除社区
     *
     * @param agencyDto 社区业务对象
     * @return ResultBean<Boolean>
     */
    ResultBean<Boolean> deleteAgency(AgencyDto agencyDto);


    /**
     * 功能描述:根据Id集合批量删除社区
     *
     * @param agencyDto 社区业务对象
     * @return ResultBean<Boolean>
     * @throws Exception
     */
    ResultBean<Boolean> deleteAgencyList(AgencyDto agencyDto) throws Exception;

    /**
     * 功能描述:根据位置查找社区
     *
     * @param agencyDto 社区业务对象
     * @return ResultBean<Agency>
     */
    ResultBean<Agency> findListByPosition(AgencyDto agencyDto);


    List<Agency> getListByCondition(AgencyDto agencyDto);


}
