package com.younike.system.mapper;

import java.util.List;
import com.younike.system.domain.PublishQuote;
import com.younike.system.domain.vo.PublishQuoteVo;
import com.younike.system.param.PublishQuoteParam;

/**
 * 需求报价Mapper接口
 *
 * @author elev
 * @date 2022-01-20
 */
public interface PublishQuoteMapper {
    /**
     * 查询需求报价
     *
     * @param quoteId 需求报价主键
     * @return 需求报价
     */
    PublishQuote selectPublishQuoteByQuoteId(Long quoteId);

    /**
     * 查询需求报价列表
     *
     * @param publishQuote 需求报价
     * @return 需求报价集合
     */
    List<PublishQuote> selectPublishQuoteList(PublishQuote publishQuote);

    /**
     * 新增需求报价
     *
     * @param publishQuote 需求报价
     * @return 结果
     */
    int insertPublishQuote(PublishQuote publishQuote);

    /**
     * 修改需求报价
     *
     * @param publishQuote 需求报价
     * @return 结果
     */
    int updatePublishQuote(PublishQuote publishQuote);

    /**
     * 删除需求报价
     *
     * @param quoteId 需求报价主键
     * @return 结果
     */
    int deletePublishQuoteByQuoteId(Long quoteId);

    /**
     * 批量删除需求报价
     *
     * @param quoteIds 需要删除的数据主键集合
     * @return 结果
     */
    int deletePublishQuoteByQuoteIds(Long[] quoteIds);

    /**
     * 获取发布需求详细信息(报价集合（包含留言）)
     * @param publishId
     * @return
     */
    List<PublishQuoteVo> getQuoteList(Long publishId);

    /**
     * 根据报价人id以及需求id查询数据
     * @param param
     * @return
     */
    PublishQuote selectPublishQuote(PublishQuoteParam param);

    /**
     * 查询报价详情
     * @param quoteId
     * @return
     */
    PublishQuoteVo selectQuoteByQuoteId(Long quoteId);
}
