-
Notifications
You must be signed in to change notification settings - Fork 0
/
schema.graphql
121 lines (105 loc) · 4.42 KB
/
schema.graphql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# ████████╗██╗ ██╗██████╗ ███████╗███████╗
# ╚══██╔══╝╚██╗ ██╔╝██╔══██╗██╔════╝██╔════╝
# ██║ ╚████╔╝ ██████╔╝█████╗ ███████╗
# ██║ ╚██╔╝ ██╔═══╝ ██╔══╝ ╚════██║
# ██║ ██║ ██║ ███████╗███████║
# ╚═╝ ╚═╝ ╚═╝ ╚══════╝╚══════╝
#
type User {
id: ID!
email: String!
...TimeStamp
password: String!
username: String!
collections: [Collection!]!
}
type Collection {
id: ID!
title: String!
...TimeStamp
description: String!
user: User!
numerals: [Numeral!]!
}
type Numeral {
id: ID!
...TimeStamp
value: Int!
equations: [String!]
collection: Collection!
entries: [Entry]
comments: [Comment]
}
type Entry {
id: ID!
...TimeStamp
word: String!
numeral: Numeral!
language: Language!
pronunciation: String!
definition: String!
comments: [Comment]
see: [Numeral]
}
type Comment {
id: ID!
...TimeStamp
entry: Entry
numeral: Numeral
content: String!
see: [Numeral]
}
type Query {
User(userId: ID!)
Collection(id: ID): Collection
Numeral(id: ID, collectionId: ID, value: Int): Numeral
Entry(id: ID!, word: String): Entry
Entries(numeralId: ID, commentId: ID, limit: Int): [Entry]
# Comment
}
# ███████╗███╗ ██╗██╗ ██╗███╗ ███╗███████╗
# ██╔════╝████╗ ██║██║ ██║████╗ ████║██╔════╝
# █████╗ ██╔██╗ ██║██║ ██║██╔████╔██║███████╗
# ██╔══╝ ██║╚██╗██║██║ ██║██║╚██╔╝██║╚════██║
# ███████╗██║ ╚████║╚██████╔╝██║ ╚═╝ ██║███████║
# ╚══════╝╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝
#
enum Language {
HEBREW
GREEK
LATIN
ENGLISH
ARABIC
}
enum CommentType {
ENTRY
NUMERAL
}
# ███████╗██████╗ █████╗ ██████╗ ███╗ ███╗███████╗███╗ ██╗████████╗███████╗
# ██╔════╝██╔══██╗██╔══██╗██╔════╝ ████╗ ████║██╔════╝████╗ ██║╚══██╔══╝██╔════╝
# █████╗ ██████╔╝███████║██║ ███╗██╔████╔██║█████╗ ██╔██╗ ██║ ██║ ███████╗
# ██╔══╝ ██╔══██╗██╔══██║██║ ██║██║╚██╔╝██║██╔══╝ ██║╚██╗██║ ██║ ╚════██║
# ██║ ██║ ██║██║ ██║╚██████╔╝██║ ╚═╝ ██║███████╗██║ ╚████║ ██║ ███████║
# ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚══════╝
#
fragment TimeStamp {
createdAt: DateTime!
updatedAt: DateTime!
}
input CreateUserInput {
email: String!
password: String!
username: String!
}
input CreateCollectionInput {
title: String!
description: String!
}
input createNumeralInput {
value: Int!
collectionId: ID!
}
input CreateNumeralInput {
# I may not need this, as every new entry HAS to have a numeral associated with it that it adds up to.
# Auto create new numeral if one doesnt exist for that collection
}