package shop.alien.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import shop.alien.entity.store.CommentAppeal;
import shop.alien.entity.store.vo.CommentAppealVo;

import java.util.List;

/**
 * 评论申诉表 Mapper 接口
 *
 * @author system
 * @since 2025-01-XX
 */
@Mapper
public interface CommentAppealMapper extends BaseMapper<CommentAppeal> {

    /**
     * 查询申诉历史列表（包含评价和用户信息）
     *
     * @param status    申诉状态
     * @param lawyerUserId 律师用户ID
     * @return 申诉历史列表
     */
    List<CommentAppealVo> getAppealHistoryList(@Param("status") Integer status,
                                                @Param("lawyerUserId") Integer lawyerUserId);

    /**
     * 根据ID查询申诉详情（包含评价和用户信息）
     *
     * @param id 申诉ID
     * @return 申诉详情
     */
    CommentAppealVo getAppealDetailById(@Param("id") Integer id);

    /**
     * 分页查询申诉列表（中台使用，支持多条件筛选）
     *
     * @param page         分页对象
     * @param status       申诉状态
     * @param orderNumber  评价单号（模糊查询）
     * @param userName     用户姓名（模糊查询）
     * @param userPhone    用户电话
     * @param lawyerName   律师姓名
     * @param lawyerPhone  律师电话
     * @param startTime    开始时间
     * @param endTime      结束时间
     * @return 分页结果
     */
    com.baomidou.mybatisplus.core.metadata.IPage<CommentAppealVo> getAppealPageWithFilters(
            com.baomidou.mybatisplus.core.metadata.IPage<CommentAppealVo> page,
            @Param("status") Integer status,
            @Param("orderNumber") String orderNumber,
            @Param("userName") String userName,
            @Param("userPhone") String userPhone,
            @Param("lawyerName") String lawyerName,
            @Param("lawyerPhone") String lawyerPhone,
            @Param("startTime") String startTime,
            @Param("endTime") String endTime);
}


