package com.starry.admin.modules.order.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.starry.admin.modules.order.module.entity.PlayOrderEvaluateInfoEntity;
import com.starry.admin.modules.order.module.vo.PlayOrderEvaluateQueryVo;
import com.starry.admin.modules.order.module.vo.PlayOrderEvaluateReturnVo;
import java.util.List;

/**
 * 订单评价信息Service接口
 *
 * @author admin
 * @since 2024-05-07
 */
public interface IPlayOrderEvaluateInfoService extends IService<PlayOrderEvaluateInfoEntity> {

    /**
     * 查询订单评价信息
     *
     * @param id
     *            订单评价信息主键
     * @return 订单评价信息
     */
    PlayOrderEvaluateInfoEntity selectPlayOrderEvaluateInfoById(String id);

    /**
     * 查询顾客对订单的评价内容
     *
     * @param customId
     *            顾客ID
     * @param orderId
     *            订单ID
     * @return boolean true:已评价，false:未评价
     **/
    PlayOrderEvaluateInfoEntity queryCustomToOrderEvaluateInfo(String customId, String orderId);

    /**
     * 查询订单评价列表
     *
     * @param entity
     *            订单评价对象
     * @return 订单评价列表
     */
    List<PlayOrderEvaluateInfoEntity> selectByList(PlayOrderEvaluateInfoEntity entity);

    /**
     * 分页查询订单评价列表
     *
     * @param vo
     *            订单评价查询对象
     * @return 订单评价列表
     */
    IPage<PlayOrderEvaluateReturnVo> selectByPage(PlayOrderEvaluateQueryVo vo);

    /**
     * 查询订单评价信息列表
     *
     * @param playOrderEvaluateInfo
     *            订单评价信息
     * @return 订单评价信息集合
     */
    IPage<PlayOrderEvaluateInfoEntity> selectPlayOrderEvaluateInfoByPage(
            PlayOrderEvaluateInfoEntity playOrderEvaluateInfo);

    /**
     * 新增订单评价信息
     *
     * @param playOrderEvaluateInfo
     *            订单评价信息
     * @return 结果
     */
    boolean create(PlayOrderEvaluateInfoEntity playOrderEvaluateInfo);

    /**
     * 修改订单评价信息
     *
     * @param playOrderEvaluateInfo
     *            订单评价信息
     * @return 结果
     */
    boolean update(PlayOrderEvaluateInfoEntity playOrderEvaluateInfo);

    /**
     * 批量删除订单评价信息
     *
     * @param ids
     *            需要删除的订单评价信息主键集合
     * @return 结果
     */
    int deletePlayOrderEvaluateInfoByIds(String[] ids);

    /**
     * 删除订单评价信息信息
     *
     * @param id
     *            订单评价信息主键
     * @return 结果
     */
    int deletePlayOrderEvaluateInfoById(String id);
}
