package com.cooleshow.teacher.api;

import com.cooleshow.base.data.net.BaseResponse;
import com.cooleshow.teacher.bean.CourseCommentListBean;
import com.cooleshow.teacher.bean.CourseTableDataBean;
import com.cooleshow.teacher.bean.LiveCourseListBean;
import com.cooleshow.teacher.bean.ReceivedCommentListBean;
import com.cooleshow.teacher.bean.SparringCourseCommentBean;
import com.cooleshow.teacher.bean.SparringCourseHomeworkBean;
import com.cooleshow.teacher.bean.SparringCourseListBean;
import com.cooleshow.teacher.bean.TeacherUserInfo;
import com.cooleshow.teacher.bean.VideoCourseListBean;
import com.cooleshow.usercenter.bean.UserInfo;

import java.util.List;
import java.util.Objects;

import io.reactivex.rxjava3.core.Observable;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Path;

import static com.cooleshow.base.common.BaseConstant.AUTH_GROUP;
import static com.cooleshow.base.common.BaseConstant.TEACHER_GROUP;

/**
 * Author by pq, Date on 2022/4/21.
 */
public interface APIService {
    /**
     * 根据月份获取老师该月有课的日期
     *
     * @param
     * @return
     */
    @POST(TEACHER_GROUP + "courseSchedule/queryCourseSchedule")
    Observable<BaseResponse<List<String>>> getCourseScheduleDateByMonth(@Body RequestBody body);

    /**
     * 根据日期获取老师当日排课
     *
     * @param
     * @return
     */
    @POST(TEACHER_GROUP + "courseSchedule/queryCourseUser")
    Observable<BaseResponse<CourseTableDataBean>> getCourseSchedulesWithDate(@Body RequestBody body);

    /**
     * 查询陪练课
     *
     * @param
     * @return
     */
    @POST(TEACHER_GROUP + "courseSchedule/queryTeacherPracticeCourse")
    Observable<BaseResponse<SparringCourseListBean>> getSparringCourses(@Body RequestBody body);


    /**
     * 查询个人信息
     *
     * @param
     * @return
     */
    @GET(TEACHER_GROUP + "homework/detail/{courseId}")
    Observable<BaseResponse<SparringCourseHomeworkBean>> getSparringCourseHomework(@Path("courseId") String courseId);


    /**
     * 查询课程评价信息
     *
     * @param
     * @return
     */
    @POST(TEACHER_GROUP + "courseReplied/selectReplied")
    Observable<BaseResponse<SparringCourseCommentBean>> getSparringCourseComment(@Body RequestBody body);

    /**
     * 提交陪练课老师评价
     *
     * @param
     * @return
     */
    @POST(TEACHER_GROUP + "courseReplied/replied")
    Observable<BaseResponse<Object>> submitSparringCourseComment(@Body RequestBody body);

    /**
     * 提交陪练课老师布置作业
     *
     * @param
     * @return
     */
    @POST(TEACHER_GROUP + "homework/decorate")
    Observable<BaseResponse<Object>> submitSparringCourseHomework(@Body RequestBody body);

    /**
     * 提交陪练课老师作业点评
     *
     * @param
     * @return
     */
    @POST(TEACHER_GROUP + "homework/review")
    Observable<BaseResponse<Object>> submitSparringCourseHomeworkComment(@Body RequestBody body);
    /**
     * 查询直播课
     *
     * @param
     * @return
     */
    @POST(TEACHER_GROUP + "courseSchedule/queryTeacherLiveCourse")
    Observable<BaseResponse<LiveCourseListBean>> getLiveCourses(@Body RequestBody body);


    /**
     * 查询视频课
     *
     * @param
     * @return
     */
    @POST(TEACHER_GROUP + "videoLessonGroup/page")
    Observable<BaseResponse<VideoCourseListBean>> getVideoCourses(@Body RequestBody body);

    /**
     * 查询个人信息
     *
     * @param
     * @return
     */
    @GET(AUTH_GROUP + "api/queryUserInfo")
    Observable<BaseResponse<UserInfo>> getUserInfo();

    /**
     * 查询老师个人信息
     *
     * @param
     * @return
     */
    @GET(TEACHER_GROUP + "teacher/queryUserInfo")
    Observable<BaseResponse<TeacherUserInfo>> getTeacherUserInfo();

    /**
     * 查询我收到的评价
     *
     * @param
     * @return
     */
    @POST(TEACHER_GROUP + "courseReplied/myReplied")
    Observable<BaseResponse<ReceivedCommentListBean>> getReceivedComment(@Body RequestBody body);


    /**
     * 查询课后评价
     *
     * @param
     * @return
     */
    @POST(TEACHER_GROUP + "courseSchedule/queryTeacherPracticeCourse")
    Observable<BaseResponse<CourseCommentListBean>> getCourseCommentList(@Body RequestBody body);
}
