package com.happy.service;

import com.happy.Model.BookingComment;
import com.happy.Model.FileInfo;
import com.happy.dto.IPage;
import com.happy.vo.*;
import com.happy.Model.HotelCoupon;
import com.happy.dto.BookCommentDto;
import com.happy.dto.IPage;

import java.util.List;

public interface BookingCommentService {


    int orderRate(BookingComment bookingComment, List<String> pictureList);

    IPage evaluatePage(int status, String hotelId, int page, int rows);

    int replyComment(BookingComment bookingComment);

    EvaluatePageVo evaluateScore(String hotelId);

    List<CommentVo> commentVoList(String bookingCommentId);

    /**
     * 描述：查询订单下的所有评论 根据订单id与comment_parent_id为空查询
     *
     * @param bookId 订单Id
     * @return 返回订单下所有最大级的评价
     */
    BookCommentDto getById(String bookId);

    /**
     * 分页查询
     *
     * @return 返回所有
     */
    IPage<BookingComment> queryPage(String sqlx, String sql, int page, int rows);

    /**
     * 评价列表详情
     *
     * @param id 订单id
     * @return 订单和房型
     */
    BookCommentDto getByBookingId(Integer id);

    /**
     * 回复弹窗 保存同时并修改当前回复信息状态为已回复
     *
     * @param bookingComment 回复内容
     * @return 影响数量
     */
    int insterCommpent(BookingComment bookingComment);

    BookingComment queryById(String id);

    int update(BookingComment bookingComment);

    CommentDetailsVo commentDetails(String bookingId,Integer status);

    IPage<PersonageCommentVo> personageComment(int status, String usersId, int page, int rows);

    PersonageDetailsVo personageDetails(String bookingCommentId);

    //待评级数量，已评价数量
    PersonageCommentCountVo personageCommentCount(String usersId);

    BookingComment getBycommentId(String commentId);

}
