package cn.hmsoft.ltc.service.iface;

import java.sql.SQLException;

import cn.hmsoft.ltc.model.Course;
import javafx.collections.ObservableList;

/**
 * 课程管理接口类理
 * 
 * @author Administrator
 *
 */
public interface CourseService {
	/**
	 * 新增课程信息
	 * 
	 * @param user
	 * @throws SQLException 
	 */
	public Integer insertCourse(Course course) throws SQLException;

	/**
	 * 查询课程章节数
	 * 
	 * @param courseCode 课程编号
	 * @return
	 * @throws SQLException
	 */
	public int selectCourse(String courseCode) throws SQLException;

	/**
	 * 校验课程编号是否存在
	 * 
	 * @param courseCode
	 * @return true 不存在，false 存在
	 * @throws SQLException
	 */
	public boolean checkCode(String courseCode) throws SQLException;

	/**
	 * 查询课程信息
	 * 
	 * @return
	 * @throws SQLException
	 */
	public ObservableList<Course> selectCourse(Integer courseId, String schoolName) throws SQLException;

	/**
	 * 根据ID删除课程信息
	 * 
	 * @param id
	 * @return true 成功，false 失败
	 * @throws SQLException
	 */
	public boolean deleteCourse(int id) throws SQLException;

	/**
	 * 查询课程下拉框信息
	 * 
	 * @return
	 * @throws SQLException
	 */
	public ObservableList<Course> selectCourseComBobox() throws SQLException;

	/**
	 * 根据id查询课程信息
	 * 
	 * @param id
	 * @return
	 */
	public Course selectCourseById(Integer id) throws SQLException;
	
	/**
	 * 选择命题课程
	 * @return
	 * @throws SQLException
	 */
	public ObservableList<Course> selectThesisCourseSelectBox() throws SQLException ;
	
	/**
	 * 选择命题课程
	 * @return
	 * @throws SQLException
	 */
	public ObservableList<Course> selectSubjectCourseComBobox() throws SQLException ;
	
	/**
	 * 修改课程章节信息
	 * @param paperNo
	 * @param status
	 */
	public Course updateCourseById(Integer id, Integer chapterNumber)  throws SQLException;
	
	/**
	 * 修改课程校验信息   【教材是否校验】 0:未校验，1：校验
	 * @param id 课程id
	 */
	public void updateCourseById(Integer id)  throws SQLException;

}
