package com.softwarebr.nunu.service.res;

import com.brframework.commondb.core.EntityService;
import com.softwarebr.nunu.domain.HotDemand;
import com.softwarebr.nunu.entity.res.PropertyApply;
import com.softwarebr.nunu.json.api.center.HotDemandResult;

import java.util.List;

/**
 * @date 2020-02-24 12:19:06
 * @author lilin
 */

public interface PropertyApplyService extends EntityService<PropertyApply, Long, Object> {


    /**
     * 公开申请
     * @param ids
     */
    void openPropertyApply(List<Long> ids);

    /**
     * 查询指定资源申请通过数据
     * @param resourceType 资源类型
     * @param targetId 资源对象id
     * @param proposer 申请人
     * @return
     */
    PropertyApply getPropertyApplyByMember( Integer resourceType,  Long targetId, Long proposer);

    /**
     * 保存资源申请
     *@param resourceType 资源类型
     * @param targetId 资源对象id
     * @param proposer 申请人
     * @param reason 原因
     */
    void saveProperApply(Integer resourceType,  Long targetId, Long proposer, String reason);

    /**
     * 热门需求创建
     * @param param
     */
    void hotItemCreate(HotDemand param);

    /**
     * 查询前5个热门需求
     * @return
     */
    List<HotDemandResult> getHotDemand();

    /**
     * 统计当前资源未审核人数
     * @param resourceType
     * @param targetId
     * @return
     */
    Long countByVerifyStatus(Integer resourceType, Long targetId);

    /**
     * 查询指定资源类型待审核的资源ID
     * @param resourceType 资源类型
     * @return
     */
    Long[] getAwaitVerifyResourceIds(Integer resourceType);

}