package com.seer.teach.teacher.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.seer.teach.teacher.common.llm.resp.GradeSubjectResult;
import com.seer.teach.teacher.common.resp.SubjectResp;
import com.seer.teach.teacher.module.entity.SubjectsEntity;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author Sir-G
 * @since 2025-05-28
 */
public interface SubjectsService extends IService<SubjectsEntity> {

    /**
     * 获取用户拥有的科目
     * @return 用户拥有的科目列表，每个科目以键值对形式表示
     */
    List<Map<String, Object>> getUserOwnedSubjects();

    /**
     * 获取科目列表
     * @return 科目实体列表
     */
    List<SubjectsEntity> getSubjectList();

    /**
     * 根据年级ID获取该年级阶段下的科目ID与科目名称映射关系
     *
     * @param gradeId 年级ID，用于筛选对应年级阶段的科目信息
     * @return 返回科目ID作为键、科目名称作为值的映射关系，如果未找到对应数据则返回空Map
     */
    Map<Integer, String> getSubjectIdsByGradeStage(Integer gradeId);


        /**
     * 获取当前用户的所有学科信息
     *
     * @return 学科信息列表，包含用户所属的所有学科的详细信息
     */
    List<SubjectResp> getUserSubjects();

    /**
     * 获取年级科目列表
     *
     * @return 年级科目响应对象列表，包含该年级的所有科目信息
     */
    List<GradeSubjectResult> getGradeSubjects();



}
