package cn.com.qmth.examcloud.core.questions.service;

import cn.com.qmth.examcloud.api.commons.security.bean.UserDataRule;
import cn.com.qmth.examcloud.core.questions.dao.entity.CourseProperty;
import cn.com.qmth.examcloud.core.questions.dao.entity.dto.CoursePropertyDto;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * @author weiwenhai
 * @describle 课程属性
 * @date 2017.11.2
 */
public interface CoursePropertyService {

    /**
     * 查询所有课程属性
     */
    List<CourseProperty> findAllByOrgId(Long orgId);

    /**
     * 查询所有课程属性带分页
     */
    Page<CourseProperty> findList(CoursePropertyDto dto, Pageable pageable, UserDataRule userDataRule);

    /**
     * 保存课程属性
     */
    void saveCourseProperty(CoursePropertyDto dto);

    /**
     * 根据课程id查询所有课程属性
     */
    List<CourseProperty> findAllByCourseId(Long courseId);

    /**
     * 根据课程code查询所有课程属性
     */
    List<CourseProperty> findAllByCourseCode(String courseCode);

    /**
     * 根据课程code查询所有开启的课程属性
     */
    List<CourseProperty> findByEnable(String courseCode, Boolean enable);

    /**
     * 批量启用/批量禁用
     */
    void updateCoursePropertyStatus(List<String> coursePropertyIds, Boolean enable);

    /**
     * 启用/禁用
     */
    void updateCoursePropertyStatus(String coursePropertyId, Boolean enable);

}