package com.yonge.cooleshow.api.feign;

import com.yonge.cooleshow.api.feign.fallback.TeacherFeignServiceFallback;
import com.yonge.cooleshow.common.constant.AppConstant;
import com.yonge.cooleshow.common.entity.HttpResponseResult;
import com.yonge.toolset.feign.config.FeignConfiguration;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;

@FeignClient(name = AppConstant.APPLICATION_TEACHER + AppConstant.SERVER, configuration = FeignConfiguration.class, fallback = TeacherFeignServiceFallback.class)
public interface TeacherFeignService {

    /***
     * 统计老师首页数据
     * @author liweifan
     * @updateTime 2022/3/28 15:34
     * @return: java.lang.Object
     */
    @GetMapping(value = "/task/queryTeacherTotal")
    Object queryTeacherTotal();

    /**
     * <p>定时将符合开售日期的未开售的直播课课程组修改为报名中状态-每隔10分钟执行一次
     * <p>定时将符合结束售卖日期的在售卖中的直播课课程组修改为取消或者成课状态状态-每隔10分钟执行一次
     */
    @GetMapping(value = "/task/opsCourseGroup")
    HttpResponseResult<Object> opsCourseGroup();

    /**
     * 定时任务-销毁房间-直播间
     * 每分钟执行一次
     */
    @GetMapping(value = "/task/destroyExpiredLiveRoom")
    HttpResponseResult<Object> destroyExpiredLiveRoom();

    /**
     * 定时任务-创建直播间-直播间
     * 每分钟执行一次
     */
    @GetMapping(value = "/task/createCourseLiveRoom")
    HttpResponseResult<Object> createCourseLiveRoom();

    /**
     * @Description: 课程提醒(每晚9点)
     * @Author: cy
     * @Date: 2022/5/6
     */
    @GetMapping("/task/courseRemind")
    HttpResponseResult<Object> courseRemind();

    /**
     * @Description: 更新课程状态
     * @Author: cy
     * @Date: 2022/5/17
     */
    @GetMapping("/task/courseStatus")
    HttpResponseResult<Object> courseStatus();

    /**
     * @Description: 更新课酬状态
     * @Author: cy
     * @Date: 2022/5/24
     */
    @GetMapping("/task/teacherSalary")
    HttpResponseResult<Object> teacherSalary();
}
