@@ -8,75 +8,219 @@ const { Schema, model } = mongoose;
8
8
* @class WaifuSchema
9
9
*/
10
10
const WaifuSchema = new Schema ( {
11
+ /**
12
+ * The unique identifier for the Waifu.
13
+ * @type {Number }
14
+ */
11
15
_id : { type : Number , required : true } ,
12
- names : {
16
+
17
+ /**
18
+ * The name details of the Waifu.
19
+ * @type {Object }
20
+ */
21
+ name : {
13
22
/**
14
- * The English name of the waifu .
23
+ * The first name of the Waifu .
15
24
* @type {String }
16
25
*/
17
- en : { type : String , required : true } ,
26
+ first : { type : String , required : true } ,
18
27
19
28
/**
20
- * The Japanese name of the waifu .
29
+ * The middle name of the Waifu .
21
30
* @type {String }
22
31
*/
23
- jp : { type : String } ,
32
+ middle : String ,
24
33
25
34
/**
26
- * Alternative name or alias of the waifu .
35
+ * The last name of the Waifu .
27
36
* @type {String }
28
37
*/
29
- alt : { type : String } ,
30
- } ,
31
- from : {
38
+ last : { type : String , required : true } ,
39
+
32
40
/**
33
- * The name of the source or origin of the waifu .
41
+ * The full name of the Waifu .
34
42
* @type {String }
35
43
*/
36
- name : { type : String } ,
44
+ full : { type : String , required : true } ,
37
45
38
46
/**
39
- * The type or category of the source from which the waifu originates .
47
+ * The native name of the Waifu .
40
48
* @type {String }
41
49
*/
42
- type : { type : String } ,
50
+ native : String ,
51
+
52
+ /**
53
+ * The user-preferred name of the Waifu.
54
+ * @type {String }
55
+ */
56
+ userPreferred : { type : String , required : true } ,
43
57
} ,
58
+
44
59
/**
45
- * Array of image URLs associated with the waifu .
46
- * @type {Array }
60
+ * The image URL associated with the Waifu .
61
+ * @type {Object }
47
62
*/
48
- images : [ String ] ,
49
-
50
- statistics : {
63
+ image : {
51
64
/**
52
- * The number of favorites received by the waifu .
53
- * @type {Number }
65
+ * The URL for the large image .
66
+ * @type {String }
54
67
*/
55
- fav : { type : Number } ,
68
+ large : String ,
69
+ medium : String ,
70
+ } ,
56
71
72
+ /**
73
+ * The number of favorites for the Waifu.
74
+ * @type {Number }
75
+ */
76
+ favourites : { type : Number , required : true } ,
77
+
78
+ /**
79
+ * The URL of the Waifu's profile.
80
+ * @type {String }
81
+ */
82
+ siteUrl : { type : String , required : true } ,
83
+
84
+ /**
85
+ * The description of the Waifu.
86
+ * @type {String }
87
+ */
88
+ description : { type : String , required : true } ,
89
+
90
+ /**
91
+ * The age range of the Waifu.
92
+ * @type {String }
93
+ */
94
+ age : String ,
95
+
96
+ /**
97
+ * The gender of the Waifu.
98
+ * @type {String }
99
+ */
100
+ gender : { type : String , required : true } ,
101
+
102
+ /**
103
+ * The blood type of the Waifu.
104
+ * @type {String }
105
+ */
106
+ bloodType : String ,
107
+
108
+ /**
109
+ * The date of birth of the Waifu.
110
+ * @type {Object }
111
+ */
112
+ dateOfBirth : {
57
113
/**
58
- * The number of times the waifu is loved .
114
+ * The year of birth .
59
115
* @type {Number }
60
116
*/
61
- love : { type : Number } ,
117
+ year : Number ,
62
118
63
119
/**
64
- * The number of times the waifu is disliked or hated .
120
+ * The month of birth .
65
121
* @type {Number }
66
122
*/
67
- hate : { type : Number } ,
123
+ month : Number ,
68
124
69
125
/**
70
- * The number of upvotes received by the waifu .
126
+ * The day of birth .
71
127
* @type {Number }
72
128
*/
73
- upvote : { type : Number } ,
129
+ day : Number ,
130
+ } ,
74
131
132
+ /**
133
+ * The media information associated with the Waifu.
134
+ * @type {Object }
135
+ */
136
+ media : {
75
137
/**
76
- * The number of downvotes received by the waifu .
77
- * @type {Number }
138
+ * The list of media nodes .
139
+ * @type {Array }
78
140
*/
79
- downvote : { type : Number } ,
141
+ nodes : [
142
+ {
143
+ /**
144
+ * The unique identifier for the media.
145
+ * @type {Number }
146
+ */
147
+ id : { type : Number , required : true } ,
148
+
149
+ /**
150
+ * The unique identifier for the media on MyAnimeList.
151
+ * @type {Number }
152
+ */
153
+ idMal : { type : Number , required : true } ,
154
+
155
+ /**
156
+ * The cover image URL for the media (medium size).
157
+ * @type {Object }
158
+ */
159
+ coverImage : {
160
+ medium : { type : String , required : true } ,
161
+ } ,
162
+
163
+ /**
164
+ * The banner image URL for the media.
165
+ * @type {String }
166
+ */
167
+ bannerImage : String ,
168
+
169
+ /**
170
+ * The title information for the media.
171
+ * @type {Object }
172
+ */
173
+ title : {
174
+ /**
175
+ * The romaji title of the media.
176
+ * @type {String }
177
+ */
178
+ romaji : { type : String , required : true } ,
179
+
180
+ /**
181
+ * The English title of the media.
182
+ * @type {String }
183
+ */
184
+ english : { type : String , required : true } ,
185
+
186
+ /**
187
+ * The native title of the media.
188
+ * @type {String }
189
+ */
190
+ native : { type : String , required : true } ,
191
+
192
+ /**
193
+ * The user-preferred title of the media.
194
+ * @type {String }
195
+ */
196
+ userPreferred : { type : String , required : true } ,
197
+ } ,
198
+
199
+ /**
200
+ * The list of synonyms for the media title.
201
+ * @type {Array }
202
+ */
203
+ synonyms : [ String ] ,
204
+
205
+ /**
206
+ * The popularity rank of the media.
207
+ * @type {Number }
208
+ */
209
+ popularity : Number ,
210
+
211
+ /**
212
+ * The type of the media (e.g., ANIME, MANGA).
213
+ * @type {String }
214
+ */
215
+ type : { type : String , required : true } ,
216
+
217
+ /**
218
+ * The format of the media (e.g., TV, MOVIE).
219
+ * @type {String }
220
+ */
221
+ format : { type : String , required : true } ,
222
+ } ,
223
+ ] ,
80
224
} ,
81
225
} ) ;
82
226
0 commit comments