package com.fs.course.service;

import java.util.List;
import com.fs.course.domain.FsUserCourseNote;
import com.fs.course.param.FsUserCourseListUParam;
import com.fs.course.param.FsUserCourseNoteUParam;
import com.fs.course.vo.FsUserCourseMyNoteListUVO;
import com.fs.course.vo.FsUserCourseNoteListUVO;
import com.fs.course.vo.FsUserCourseNoteUVO;

/**
 * 课堂笔记Service接口
 *
 * @author fs
 * @date 2024-05-15
 */
public interface IFsUserCourseNoteService
{
    /**
     * 查询课堂笔记
     *
     * @param noteId 课堂笔记主键
     * @return 课堂笔记
     */
    public FsUserCourseNote selectFsUserCourseNoteByNoteId(Long noteId);

    /**
     * 查询课堂笔记列表
     *
     * @param fsUserCourseNote 课堂笔记
     * @return 课堂笔记集合
     */
    public List<FsUserCourseNote> selectFsUserCourseNoteList(FsUserCourseNote fsUserCourseNote);

    /**
     * 新增课堂笔记
     *
     * @param fsUserCourseNote 课堂笔记
     * @return 结果
     */
    public int insertFsUserCourseNote(FsUserCourseNote fsUserCourseNote);

    /**
     * 修改课堂笔记
     *
     * @param fsUserCourseNote 课堂笔记
     * @return 结果
     */
    public int updateFsUserCourseNote(FsUserCourseNote fsUserCourseNote);

    /**
     * 批量删除课堂笔记
     *
     * @param noteIds 需要删除的课堂笔记主键集合
     * @return 结果
     */
    public int deleteFsUserCourseNoteByNoteIds(Long[] noteIds);

    /**
     * 删除课堂笔记信息
     *
     * @param noteId 课堂笔记主键
     * @return 结果
     */
    public int deleteFsUserCourseNoteByNoteId(Long noteId);

    List<FsUserCourseMyNoteListUVO> selectFsUserCourseMyNoteListUVO(FsUserCourseNoteUParam param);

    List<FsUserCourseMyNoteListUVO> selectSaveNoteListUVO(FsUserCourseNoteUParam param);

    FsUserCourseNoteUVO selectFsUserCourseNoteUVOByNoteId(Long noteId);

    List<FsUserCourseNoteListUVO> selectFsUserCourseNoteListUVO(FsUserCourseNoteUParam param);

    int updateLikes(Long noteId, Integer type);
}
