Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Current »

В схеме указаны обязательные поля для того или иного метода.

Тут небольшие пояснения (остальной функционал на откуп разработчика):

Объекты

На карточке студента хочется видеть его потоки, куда он записывался, и статус:

  • Возврат денег (refund > 0)

  • Учился (graduate = false, учился, но не сдал экзамены, сертификат не получил)

  • Выпустился (graduate = true)

Сделала через промежуточный объект Student_on_Flow , который связывает конкретный поток и конкретного студента, и вот для этой связки уже идет вся инфа.

Методы Query

В целом описаны в комментариях, тут те, по которым могут быть вопросы:

  1. getStudent — информация по конкретному студенту. На какие потоки записывался, какие окончил итд (в студенте же есть  courses: [Student_on_Flow])

  2.  # Возвращает количество выпускников и возвратников по тренеру в разрезе потоков

getStatsByTrainer(trainer_id: ID!): String

Возвращает в виде:

(Flow.name) — записалось 10 студентов (вообще все), возвратов 4 (где refund > 0), выпускников 3

Остальное вроде в комментариях описано

Методы Мутации (CRUD)

  1. Создать новые данные — студента, тренера, курс или конкретный поток. При создании потока поле «name» формируется автоматически: Course.name - Flow.number (например, SQL - 1)

  1. Записать студента на курс

Создать связку студент - поток курса. По факту объект Student_on_Flow , где пока refund = 0 и graduate = false

Вообще желательно, чтобы можно было записать студентов пачкой (несколько человек указать)

  1. Возврат денег студенту за курс

Указали студента и поток, за который возврат + сумма возврата. Она не должна быть больше, чем Student_on_Flow.paid, но может быть меньше (отучился половину и потом ушел)

  1. Выпустить студентов (курс закончился, надо указать тех, кто выпустился)

Указали студента и поток — ему проставилось graduate = true

Желательно также возможность указать целую пачку, но не знаю как это в схеме отражается. Или это просто Н запросов мутации подряд идут?

  1. Удалить студента / тренера / курс / поток — по идее можно вообще один метод сделать, и там указывать кого тебе надо удалить или удалять пачкой) ну или разбить его тогда на DeleteStudent, DeleteTrainer…

  • No labels