package com.yunhai.agent.tool.defs; import com.yunhai.agent.tool.ToolDef; import com.yunhai.agent.tool.ToolParam; import java.util.ArrayList; import java.util.List; /** * 教师专业发展模块工具 —— 后端 Profession,前缀 /api/profession、/api/moudule、/api/points、/api/stats。 */ public final class ProfessionTools { public static final String MODULE = "profession"; private ProfessionTools() { } public static List defs() { List list = new ArrayList<>(); list.add(ToolDef.of("profession.homeRecords", MODULE, "栏目最新记录", "各栏目最新发布的记录块(专业发展首页内容)。", "GET", "/api/profession/HomeModuleRecords") .p(ToolParam.optional("size", "integer", "每栏取几条").dft("6")) .readAt("/home")); list.add(ToolDef.of("profession.list", MODULE, "专业发展记录列表", "后台口径的专业发展记录分页查询,可按栏目/教师/时间筛选。", "GET", "/api/profession/ProfessionList") .p(ToolParam.optional("pageIndex", "integer", "页码").dft("1"), ToolParam.optional("pageSize", "integer", "每页条数").dft("10"), ToolParam.optional("keyword", "string", "标题关键词"), ToolParam.optional("moduleId", "integer", "栏目 id"), ToolParam.optional("starttime", "string", "开始时间 yyyy-MM-dd"), ToolParam.optional("endtime", "string", "结束时间 yyyy-MM-dd")) .readAt("/module/list")); list.add(ToolDef.of("profession.moduleRecords", MODULE, "栏目文章列表", "某个栏目下的文章分页(附同校其他栏目)。", "GET", "/api/profession/ModuleRecordList") .p(ToolParam.required("moduleId", "integer", "栏目 id"), ToolParam.optional("pageIndex", "integer", "页码").dft("1"), ToolParam.optional("pageSize", "integer", "每页条数").dft("10")) .readAt("/module/list")); list.add(ToolDef.of("profession.myRecords", MODULE, "我的栏目文章", "查询我在某栏目下发表的文章。", "GET", "/api/profession/MyModuleRecordList") .p(ToolParam.required("moduleId", "integer", "栏目 id"), ToolParam.optional("pageIndex", "integer", "页码").dft("1"), ToolParam.optional("pageSize", "integer", "每页条数").dft("10")) .readAt("/timeline")); list.add(ToolDef.of("profession.detail", MODULE, "记录详情", "查看一条专业发展记录的详情。", "GET", "/api/profession/ProfessionDetail") .p(ToolParam.required("SerID", "integer", "记录 id")) .readAt("/module/list")); list.add(ToolDef.of("profession.moduleTree", MODULE, "栏目树", "专业发展的栏目树(含我的栏目),发布记录时选栏目用。", "GET", "/api/moudule/ModuleTree") .readAt("/record/new")); list.add(ToolDef.of("profession.myPoints", MODULE, "我的积分", "查询我的专业发展积分与来源明细。", "GET", "/api/profession/MyPoints") .readAt("/timeline")); list.add(ToolDef.of("profession.pointsRank", MODULE, "积分排行", "积分排行榜。", "GET", "/api/profession/PointsRank") .p(ToolParam.optional("top", "integer", "取前几名").dft("8")) .readAt("/home")); list.add(ToolDef.of("profession.publish", MODULE, "发布专业发展记录", "发布一条专业发展记录(教案/学习资料/反思等)。调用前必须确认栏目 moduleId、标题与内容。", "POST_FORM", "/api/profession/Create") .p(ToolParam.required("moduleId", "integer", "栏目 id,来自 profession.moduleTree") .label("所属栏目").optionsFrom("profession.moduleTree"), ToolParam.required("title", "string", "记录标题") .label("记录标题").eg("2026年秋季公开课教学设计"), ToolParam.optional("content", "string", "记录正文") .label("记录正文").as("textarea")) .write("/record/new")); return list; } }