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

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.starry.admin.modules.custom.module.entity.PlayCustomLeaveMsgEntity;
import com.starry.admin.modules.custom.module.vo.PlayCustomLeaveMsgQueryVo;
import com.starry.admin.modules.custom.module.vo.PlayCustomLeaveMsgReturnVo;

/**
 * 顾客留言Service接口
 *
 * @author admin
 * @since 2024-05-07
 */
public interface IPlayCustomLeaveMsgService extends IService<PlayCustomLeaveMsgEntity> {
    /**
     * 查询顾客留言
     *
     * @param id
     *            顾客留言主键
     * @return 顾客留言
     */
    PlayCustomLeaveMsgEntity selectPlayCustomLeaveMsgById(String id);

    /**
     * 查询当前用户不允许留言的原因
     *
     * @param customId
     *            顾客ID
     * @return 没有权限原因
     */
    String queryNoMessagesAllowedReason(String customId);

    /**
     * 分页查询顾客留言列表
     *
     * @param vo
     *            顾客留言分页查询对象
     * @return 顾客留言集合
     */
    IPage<PlayCustomLeaveMsgReturnVo> selectByPage(PlayCustomLeaveMsgQueryVo vo);

    /**
     * 查询顾客留言列表
     *
     * @param playCustomLeaveMsg
     *            顾客留言
     * @return 顾客留言集合
     */
    IPage<PlayCustomLeaveMsgEntity> selectPlayCustomLeaveMsgByPage(PlayCustomLeaveMsgEntity playCustomLeaveMsg);

    /**
     * 新增顾客留言
     *
     * @param playCustomLeaveMsg
     *            顾客留言
     * @return 结果
     */
    boolean create(PlayCustomLeaveMsgEntity playCustomLeaveMsg);

    /**
     * 修改顾客留言
     *
     * @param playCustomLeaveMsg
     *            顾客留言
     * @return 结果
     */
    boolean update(PlayCustomLeaveMsgEntity playCustomLeaveMsg);

    /**
     * 批量删除顾客留言
     *
     * @param ids
     *            需要删除的顾客留言主键集合
     * @return 结果
     */
    int deletePlayCustomLeaveMsgByIds(String[] ids);

    /**
     * 删除顾客留言信息
     *
     * @param id
     *            顾客留言主键
     * @return 结果
     */
    int deletePlayCustomLeaveMsgById(String id);
}
