Skip to content

Instantly share code, notes, and snippets.

@ifndefdeadmau5
Created January 19, 2023 02:38
Show Gist options
  • Save ifndefdeadmau5/00a4a1091f2a634db7f3e1d1b69b648f to your computer and use it in GitHub Desktop.
Save ifndefdeadmau5/00a4a1091f2a634db7f3e1d1b69b648f to your computer and use it in GitHub Desktop.
refine-schema.graphql
scalar DateTime
scalar Date
type Tag {
name: String
}
interface Sortable {
orderId: Int!
}
type User {
id: ID!
email: String!
name: String!
birth: String!
phoneNumber: String
parentPhoneNumber: String
}
interface Markable {
isMarked: Boolean!
}
interface Scorable {
assignedPoint: Float!
}
interface Taggable {
tags: [Tag!]!
}
# 학습 현황
interface LearningStatus {
id: ID!
startedAt: DateTime
finishedAt: DateTime
learningState: LearningState
}
enum LearningState {
UNLEARNED
PARTLY_LEARNED
FINISHED
}
type WordTestReviewActivity implements LearningStatus {
id: ID!
startedAt: DateTime
finishedAt: DateTime
learningState: LearningState!
orderId: Int!
tags: [Tag!]!
multipleChoiceQuestion: MultipleChoiceQuestion!
isCorrect: Boolean!
word: String!
source: String
audioURL: String!
# partOfSpeech: PartOfSpeech!
}
interface WordActivity {
word: String!
wordId: ID!
source: String
audioURL: String!
}
type WordMemorizationReviewActivity implements LearningStatus & WordActivity {
id: ID!
startedAt: DateTime
finishedAt: DateTime
learningState: LearningState!
orderId: Int!
tags: [Tag!]!
word: String!
wordId: ID!
source: String
# partOfSpeech: PartOfSpeech!
# items: [WordMemoryWordItem!]!
audioURL: String!
}
type ChoiceItem {
value: String!
isCorrectAnswer: Boolean!
}
type MultipleChoiceQuestion {
choiceItems: [ChoiceItem!]!
userChoices: [Int!]!
hasMultipleChoices: Boolean!
}
# SAI
type ReviewWordTestUnit {
id:ID!
orderId:Int!
reviewActivities: [WordTestReviewActivity!]!
}
type ReviewWordMemorizationUnit {
id:ID!
orderId:Int!
reviewActivities: [WordMemorizationReviewActivity!]!
}
### thinking...
type ReviewUnit {
id:ID!
orderId:Int!
reviewActivities: [ReviewActivity!]!
}
union ReviewModule = WordReviewModule
union ReviewActivity = WordMemorizationReviewActivity |
interface ProgressRate {
completeRate: Int!
}
type WordReviewModule implements ProgressRate {
id: ID!
completeRate: Int!
reviewUnits:[ReviewWordTestUnit!]!
}
enum ReviewModuleType {
Question
Sentence
Word
}
# type StudyActivityInstanceMathQuestion {
# source: String
# questionText: ProseMirrorContent!
# subQuestions: [StudyActivityInstanceSubQuestionType!]!
# isCorrect: Boolean!
# commonQuestionTitle: String!
# }
# """영어문제 스터디 액티비티 문제 SA metadata"""
# type StudyActivityInstanceQuestion {
# source: String
# audioUrl: String
# videoUrl: String @deprecated(reason: "2022-07 subQuestion 하위로 이동되어 삭제될 대상입니다.")
# questionText: ProseMirrorContent!
# subQuestions: [StudyActivityInstanceSubQuestionType!]!
# translation: String
# isCorrect: Boolean!
# commonQuestionTitle: String
# metaSentenceIds: [ID!]
# }
type Query {
wordTestReviewActivity(id: ID!): WordTestReviewActivity!
wordMemorizationReviewActivity(id: ID!): WordMemorizationReviewActivity!
reviewModule(id: ID!): ReviewModule!
reviewModules(dueDate: Date): [ReviewModule!]! # User > Student 의 하위 타입으로
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment