package com.softwarebr.nunu.service.res;

import com.softwarebr.nunu.dto.res.PropertyParamDTO;
import com.softwarebr.nunu.entity.res.Property;
import com.brframework.commondb.core.EntityService;
import com.softwarebr.nunu.json.api.center.PropertyDetailsResult;

/**
 * @date 2020-02-21 11:49:00
 * @author lilin
 */

public interface PropertyService extends EntityService<Property, Long, Object> {

    /**
     * 查询招聘详情
     * @param id 招聘资源ID
     * @param memberId 当前查看详情用户
     * @return
     */
    PropertyDetailsResult getPropertyDetails(Long id, Long memberId);

    /**
     * 修改载体出售/出租状态
     * @param propertyId
     * @param status
     */
    void updateStatus(Long propertyId, Integer status);

    /**
     * 载体资源审核
     * @param id
     * @param verify 审核结果
     * @param verifyRemark 审核备注
     */
    void propertyVerify(Long id, Integer verify, String verifyRemark);

    /**
     * 载体资源保存
     * @param publisher 发布者 -1为平台
     * @param propertyParamDTO 参数数据
     * @return
     */
    Property saveProperty(Long publisher, PropertyParamDTO propertyParamDTO);

    /**
     * 载体资源修改
     * @param propertyId 载体资源Id
     * @param propertyParamDTO 参数数据
     */
    void updateProperty(Long propertyId, PropertyParamDTO propertyParamDTO);

    /**
     * 载体资源删除
     * @param propertyId
     */
    void removePropertyById(Long propertyId);

    /**
     * 载体资源上架
     * @param propertyId 载体资源Id
     */
    void propertyUpperShelf(Long propertyId);

    /**
     * 载体资源下架
     * @param propertyId 载体资源Id
     */
    void propertyLowerShelf(Long propertyId);

    /**
     * 载体资源推荐至首页
     * @param propertyId 载体资源Id
     */
    void propertyIndexYes(Long propertyId);

    /**
     * 载体资源取消推荐至首页
     * @param propertyId 载体资源Id
     */
    void propertyIndexNo(Long propertyId);
}