diff --git a/schema/operations/ProjectMapGetStudentGraphTemplate.gql b/schema/operations/ProjectMapGetStudentGraphTemplate.gql index 55f0462..fe6ff9d 100644 --- a/schema/operations/ProjectMapGetStudentGraphTemplate.gql +++ b/schema/operations/ProjectMapGetStudentGraphTemplate.gql @@ -7,10 +7,19 @@ query ProjectMapGetStudentGraphTemplate($studentId: UUID, $stageGroupId: Int) { target sourceHandle targetHandle + data { + sourceGap + targetGap + points { + x + y + } + } } nodes { id label + handles position { x y diff --git a/schema/schema.gql b/schema/schema.gql index 9ae9ca5..ea575af 100644 --- a/schema/schema.gql +++ b/schema/schema.gql @@ -21530,6 +21530,36 @@ type GoalReviewInfo { checkDurationMinutes: Int! } +"""Краткая информация о проекте""" +type GoalShortInfo { + """Идентификатор проекта""" + goalId: ID + + """Название проекта""" + goalName: String +} + +"""Краткая информация об источнике проекте""" +type GoalSourceShortInfo { + """Идентификатор источника проекта""" + goalSourceId: ID + + """Название источника проекта""" + goalSourceName: String +} + +"""Типы источников проектов""" +enum GoalSourceTypeEnum { + """""" + STUDY_PROGRAM + + """""" + COURSE + + """""" + STAGE_PLAN +} + """Статус модуля""" enum GoalStatus { """Зарегистрирован""" @@ -21963,44 +21993,32 @@ type HolyGraph { graph: HolyGraphJSON } -"""Связи между элементами графа""" -type HolyGraphEdge { - """Ид связи""" - id: String! - - """id группы-источника""" - source: String! - - """id группы-приемника""" - target: String! +"""Контекст графа по заданным источникам""" +type HolyGraphContentBunch { + """Тип источников проектов""" + contentBunchType: HolyGraphContentBunchTypeEnum! - """id точки выхода""" - sourceHandle: String! - - """id точки входа""" - targetHandle: String! -} - -"""Контекст графа глобального плана""" -type HolyGraphGlobalPlan { - """Id глобального плана""" - globalPlanId: Int + """Перечень Id источников проектов""" + contentBunchIds: [Int!]! """Id параллели""" stageId: Int - """Id предмета""" - subjectId: Int + """Учебные модули заданных источников""" + items: [HolyGraphContentBunchItem!]! +} - """Статус плана""" - planStatus: PlanStatusEnum +"""Источник проектов""" +type HolyGraphContentBunchEntity { + """Id источника проектов""" + id: Int! - """Учебные модули глобального плана""" - items: [HolyGraphGlobalPlanItem!]! + """Наименование источника проектов""" + name: String } """Учебные модули глобального плана""" -type HolyGraphGlobalPlanItem { +type HolyGraphContentBunchItem { """Тип связанной сущности""" entityType: HolyGraphItemEntityType @@ -22017,6 +22035,54 @@ type HolyGraphGlobalPlanItem { course: HolyGraphItemCourseInfo } +"""""" +enum HolyGraphContentBunchTypeEnum { + """Учебная программа""" + STUDY_PROGRAM + + """Курс""" + COURSE + + """Глобальный план""" + GLOBAL_PLAN +} + +"""Связи между элементами графа""" +type HolyGraphEdge { + """Ид связи""" + id: String! + + """id группы-источника""" + source: String! + + """id группы-приемника""" + target: String! + + """id точки выхода""" + sourceHandle: String! + + """id точки входа""" + targetHandle: String! + + """Тип связи""" + type: String! + + """Траектория связи""" + data: HolyGraphEdgeData! +} + +"""Траектория связи графа""" +type HolyGraphEdgeData { + """Расстояние до источника""" + sourceGap: Int! + + """Расстояние до назначения""" + targetGap: Int! + + """Координаты точек траектории связи""" + points: [HolyGraphPointPosition!]! +} + """Детальная информация о курсе""" type HolyGraphItemCourseInfo { """Id проекта""" @@ -22128,6 +22194,12 @@ type HolyGraphMutations { """Комментарий""" comment: String + + """Тип источников проектов""" + contentBunchType: HolyGraphContentBunchTypeEnum! + + """Перечень Id источников проектов""" + contentBunchIds: [Int!]! ): HolyGraph """ @@ -22161,6 +22233,12 @@ type HolyGraphMutations { """Граф""" graph: JsonNode! + + """Тип источников проектов""" + contentBunchType: HolyGraphContentBunchTypeEnum + + """Перечень Id источников проектов""" + contentBunchIds: [Int] ): Int """Удалить черновик графа для указанной параллели""" @@ -22183,6 +22261,9 @@ type HolyGraphNode { """Координаты группы""" position: HolyGraphNodePosition! + + """Точки входа/выхода""" + handles: [String!]! } """Элементы групп графа""" @@ -22227,6 +22308,15 @@ type HolyGraphNodePosition { y: Int! } +"""Координаты точек траектории связи""" +type HolyGraphPointPosition { + """""" + x: Int! + + """""" + y: Int! +} + """""" type HolyGraphQueries { """Получить список параллелей, имеющих опубликованный граф""" @@ -22247,11 +22337,26 @@ type HolyGraphQueries { emptyIfNotExist: Boolean ): HolyGraphJSON - """Получить контекст графа глобального плана""" - getGlobalPlanGraph( - """Id глобального плана""" - globalPlanId: Int - ): HolyGraphGlobalPlan + """Получить источники проектов по типу""" + getContentBunchesByType( + """Тип источников проектов""" + contentBunchType: HolyGraphContentBunchTypeEnum! + + """Id параллели""" + stageId: Int! + ): [HolyGraphContentBunchEntity!]! + + """Получить контекст графа по заданным источникам""" + getContentBunchGraph( + """Тип источников проектов""" + contentBunchType: HolyGraphContentBunchTypeEnum! + + """Перечень Id источников проектов""" + contentBunchIds: [Int!]! + + """Id параллели""" + stageId: Int! + ): HolyGraphContentBunch """Получить граф прогресса студента""" getStudentStateGraph( @@ -22324,8 +22429,11 @@ type HolyGraphStage { """Наименование параллели""" stageName: String! - """Id глобального плана""" - globalPlanId: Int + """Тип источников проектов""" + contentBunchType: HolyGraphContentBunchTypeEnum! + + """Перечень Id источников проектов""" + contentBunchIds: [Int!]! """Дата последнего изменения""" updateTs: DateTime @@ -37027,6 +37135,12 @@ type School21Queries { """S21. Возвращает план на параллель по идентификатору""" getS21StagePlan(stagePlanId: ID!): S21StagePlan! + """S21. Возвращает список источников проектов по типу источника""" + getGoalSources(schoolId: UUID!, stageSubjectGroupId: ID, goalSourceType: GoalSourceTypeEnum!): [GoalSourceShortInfo!]! + + """S21. Возвращает список проектов по типу и Id источника""" + getGoalsByGoalSourceId(schoolId: UUID!, stageSubjectGroupId: ID, goalSourceType: GoalSourceTypeEnum!, goalSourceId: ID!): [GoalShortInfo!]! + """ S21. Возвращает план на параллель по идентификатору c групповыми проектами """ @@ -37074,6 +37188,9 @@ type School21Queries { """S21. Запрос отчета по командам""" loadStudentsTeamS21Report(stageId: ID!, stageSubjectGroupId: ID, goalId: ID, timeZone: String, schoolId: UUID): ReportExcelFile! + """S21. Запрос отчета по командам""" + loadStudentsTeamS21ReportV2(schoolId: UUID!, stageSubjectGroupId: ID, goalSourceType: GoalSourceTypeEnum!, goalSourceId: ID!, goalId: ID, timeZone: String): ReportExcelFile! + """S21. Получение отчета по проведенным мероприятиям""" getEventsReport(from: DateTime!, to: DateTime!, eventCodes: [String!]!, timeZone: String, schoolId: UUID): ReportExcelFile!