Coverage for src/dto/base.py : 100%
Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1from flask_restx import Namespace, fields, Model
3# Base objects
5UserBaseObj = Model("User Base", {
6 "uuid": fields.String,
7 "email": fields.String,
8 "username": fields.String,
9 "preferences_defined": fields.Boolean,
10})
12ProfileBaseObj = Model("Profile Base", {
13 "uuid": fields.String,
14 "profilename": fields.String,
15})
17ExternalBaseObj = Model("External service Base", {
18 "service_id": fields.Integer,
19 "service_name": fields.String,
20})
22GroupBaseObj = Model("Group base", {
23 "group_id": fields.Integer,
24 "name": fields.String,
25 "owner": fields.Nested(UserBaseObj),
26})
28GenreBaseObj = Model("Genre base", {
29 "genre_id": fields.Integer,
30 "name": fields.String,
31 "count": fields.Integer,
32})
34ApplicationBaseObj = Model("Application base", {
35 "content_id": fields.Integer,
36 "name": fields.String,
37 "categorie": fields.Nested(GenreBaseObj),
38 "rating": fields.Float,
39 "rating_count": fields.String,
40 "size": fields.String,
41 "installs": fields.String,
42 "type": fields.String,
43 "price": fields.String,
44 "content_rating": fields.String,
45 "last_updated": fields.String,
46 "current_version": fields.String,
47 "android_version": fields.String,
48})
50BookBaseObj = Model("Book base", {
51 "content_id": fields.Integer,
52 "isbn": fields.String,
53 "title": fields.String,
54 "author": fields.String,
55 "year_of_publication": fields.Integer,
56 "publisher": fields.String,
57 "image_url_s": fields.String,
58 "image_url_m": fields.String,
59 "image_url_l": fields.String,
60 "rating": fields.Float,
61 "rating_count": fields.Integer,
62})
64GameBaseObj = Model("Game base", {
65 "content_id": fields.Integer,
66 "steamid": fields.Integer,
67 "name": fields.String,
68 "short_description": fields.String,
69 "header_image": fields.String,
70 "website": fields.String,
71 "developers": fields.String,
72 "publishers": fields.String,
73 "price": fields.String,
74 "recommendations": fields.Integer,
75 "release_date": fields.String,
76 "rating": fields.Float,
77 "rating_count": fields.Integer,
78})
80MovieBaseObj = Model("Movie base", {
81 "content_id": fields.Integer,
82 "title": fields.String,
83 "language": fields.String,
84 "actors": fields.String,
85 "year": fields.String,
86 "producers": fields.String,
87 "director": fields.String,
88 "writer": fields.String,
89 "imdbid": fields.String,
90 "tmdbid": fields.String,
91 "rating": fields.Float,
92 "rating_count": fields.Integer,
93 "cover": fields.String,
94})
96TrackBaseObj = Model("Track base", {
97 "content_id": fields.Integer,
98 "title": fields.String,
99 "year": fields.Integer,
100 "artist_name": fields.String,
101 "release": fields.String,
102 "track_mmid": fields.String,
103 "recording_mbid": fields.String,
104 "rating": fields.Float,
105 "rating_count": fields.Integer,
106 "url": fields.String,
107 "covert_art_url": fields.String,
108})
110SerieBaseObj = Model("Serie base", {
111 "content_id": fields.Integer,
112 "imdbid": fields.String,
113 "title": fields.String,
114 "start_year": fields.Integer,
115 "end_year": fields.Integer,
116 "writers": fields.String,
117 "directors": fields.String,
118 "actors": fields.String,
119 "rating": fields.Float,
120 "rating_count": fields.Integer,
121})
123EpisodeBaseObj = Model("Episode base", {
124 "content_id": fields.Integer,
125 "imdbid": fields.String,
126 "title": fields.String,
127 "year": fields.Integer,
128 "genres": fields.String,
129 "season_number": fields.Integer,
130 "episode_number": fields.Integer,
131 "rating": fields.Float,
132 "rating_count": fields.Integer,
133})
135MetaUserContentBaseObj = Model("MetaUserContent base", {
136 "rating": fields.Integer,
137 "last_rating_date": fields.DateTime,
138 "review_see_count": fields.Integer,
139 "last_review_see_date": fields.DateTime,
140 "count": fields.Integer,
141 "last_count_increment": fields.DateTime,
142})
144MetaProfileContentBaseObj = Model("MetaProfileContent base", {
145 "rating": fields.Integer,
146 "last_rating_date": fields.DateTime,
147 "review_see_count": fields.Integer,
148 "last_review_see_date": fields.DateTime,
149 "count": fields.Integer,
150 "last_count_increment": fields.DateTime,
151})
153GenreBase2Obj = Model("Genre base 2", {
154 "name": fields.String,
155 "content_type": fields.String,
156})
158# Item object
160MetaProfileApplicationItemObj = Model.clone("Meta Profile Application Item", MetaProfileContentBaseObj, {
161 "application": fields.Nested(ApplicationBaseObj)
162})
164MetaProfileBookItemObj = Model.clone("Meta Profile Book Item", MetaProfileContentBaseObj, {
165 "book": fields.Nested(BookBaseObj)
166})
168MetaProfileGameItemObj = Model.clone("Meta Profile Game Item", MetaProfileContentBaseObj, {
169 "game": fields.Nested(GameBaseObj)
170})
172MetaProfileMovieItemObj = Model.clone("Meta Profile Movie Item", MetaProfileContentBaseObj, {
173 "movie": fields.Nested(MovieBaseObj)
174})
176MetaProfileSerieItemObj = Model.clone("Meta Profile Serie Item", MetaProfileContentBaseObj, {
177 "serie": fields.Nested(SerieBaseObj)
178})
180MetaProfileTrackItemObj = Model.clone("Meta Profile Track Item", MetaProfileContentBaseObj, {
181 "track": fields.Nested(TrackBaseObj)
182})
184UserItemObj = Model.clone("User Item", UserBaseObj, {
185 "groups": fields.List(fields.Nested(GroupBaseObj)),
186 "invitations": fields.List(fields.Nested(GroupBaseObj)),
187 "owned_groups": fields.List(fields.Nested(GroupBaseObj)),
188 "liked_genres": fields.List(fields.Nested(GenreBaseObj))
189})
191ProfileItemObj = Model.clone("Profile Item", ProfileBaseObj, {
192 "liked_genres": fields.List(fields.Nested(GenreBaseObj))
193})
195UserExportObj = Model.clone("User Export Item", UserItemObj, {
196 "meta_user_content": fields.List(fields.Nested(MetaUserContentBaseObj)),
197 "linked_services": fields.List(fields.Nested(ExternalBaseObj)),
198})
200GroupItemObj = Model.clone("Group Item", GroupBaseObj, {
201 "members": fields.List(fields.Nested(UserBaseObj)),
202 "invitations": fields.List(fields.Nested(UserBaseObj))
203})
205SerieItemObj = Model.clone("Serie Item", SerieBaseObj, {
206 "genres": fields.List(fields.Nested(GenreBaseObj)),
207})
209TrackItemObj = Model.clone("Track Item", TrackBaseObj, {
210 "genres": fields.List(fields.Nested(GenreBaseObj)),
211})
213MovieItemObj = Model.clone("Movie Item", MovieBaseObj, {
214 "genres": fields.List(fields.Nested(GenreBaseObj)),
215})
217GameItemObj = Model.clone("Game Item", GameBaseObj, {
218 "genres": fields.List(fields.Nested(GenreBaseObj)),
219})
221ResultBaseObj = Model("Result base", {
222 "score": fields.Float,
223 "engine": fields.String
224})
226ResultApplicationItemObj = Model.clone("Result Application Item", ResultBaseObj, {
227 "application": fields.Nested(ApplicationBaseObj)
228})
230ResultBookItemObj = Model.clone("Result Book Item", ResultBaseObj, {
231 "book": fields.Nested(BookBaseObj)
232})
234ResultGameItemObj = Model.clone("Result Game Item", ResultBaseObj, {
235 "game": fields.Nested(GameBaseObj)
236})
238ResultMovieItemObj = Model.clone("Result Movie Item", ResultBaseObj, {
239 "movie": fields.Nested(MovieBaseObj)
240})
242ResultSerieItemObj = Model.clone("Result Serie Item", ResultBaseObj, {
243 "serie": fields.Nested(SerieBaseObj)
244})
246ResultTrackItemObj = Model.clone("Result Track Item", ResultBaseObj, {
247 "track": fields.Nested(TrackBaseObj)
248})
250# Common Object
252messageObj = Model("Basic Response", {
253 "status": fields.Boolean,
254 "message": fields.String,
255})
257validationErrorObj = Model.clone("Validation error", messageObj, {
258 "errors": fields.List(fields.String),
259})
261paginationObj = Model("Pagination Object", {
262 "status": fields.Boolean,
263 "message": fields.String,
264 "content": fields.List(fields.Raw),
265 "number_of_elements": fields.Integer,
266 "page": fields.Integer,
267 "total_pages": fields.Integer,
268})
270# Additional Objects
272ApplicationAdditionalBaseObj = Model("Application additional base", {
273 "name": fields.String,
274 "size": fields.String,
275 "installs": fields.String,
276 "type": fields.String,
277 "price": fields.String,
278 "content_rating": fields.String,
279 "last_updated": fields.String,
280 "current_version": fields.String,
281 "android_version": fields.String,
282 "cover": fields.String,
283 "genres": fields.List(fields.Integer),
284})
286BookAdditionalBaseObj = Model("Book additional base", {
287 "isbn": fields.String,
288 "title": fields.String,
289 "author": fields.String,
290 "year_of_publication": fields.Integer,
291 "publisher": fields.String,
292 "image_url_s": fields.String,
293 "image_url_m": fields.String,
294 "image_url_l": fields.String
295})
297GameAdditionalBaseObj = Model("Game additional base", {
298 "steamid": fields.Integer,
299 "name": fields.String,
300 "short_description": fields.String,
301 "header_image": fields.String,
302 "website": fields.String,
303 "developers": fields.String,
304 "publishers": fields.String,
305 "price": fields.String,
306 "release_date": fields.String,
307 "genres": fields.List(fields.Integer),
308})
310MovieAdditionalBaseObj = Model("Movie additional base", {
311 "title": fields.String,
312 "language": fields.String,
313 "actors": fields.String,
314 "year": fields.String,
315 "producers": fields.String,
316 "director": fields.String,
317 "writer": fields.String,
318 "imdbid": fields.String,
319 "tmdbid": fields.String,
320 "cover": fields.String,
321 "plot_outline": fields.String,
322 "genres": fields.List(fields.Integer),
323})
325TrackAdditionalBaseObj = Model("Track additional base", {
326 "title": fields.String,
327 "year": fields.Integer,
328 "artist_name": fields.String,
329 "release": fields.String,
330 "track_mmid": fields.String,
331 "recording_mbid": fields.String,
332 "spotify_id": fields.Float,
333 "covert_art_url": fields.String,
334 "genres": fields.List(fields.Integer),
335})
337EpisodeAdditionalBaseObj = Model("Episode additional base", {
338 "title": fields.String,
339 "imdbid": fields.String,
340 "year": fields.Integer,
341 "season_number": fields.Integer,
342 "episode_number": fields.Integer,
343 "genres": fields.List(fields.Integer),
344})
346SerieAdditionalBaseObj = Model("Serie additional base", {
347 "title": fields.String,
348 "imdbid": fields.String,
349 "start_year": fields.Integer,
350 "end_year": fields.Integer,
351 "writers": fields.String,
352 "directors": fields.String,
353 "actors": fields.String,
354 "cover": fields.String,
355 "episodes": fields.List(fields.Nested(EpisodeAdditionalBaseObj)),
356 "genres": fields.List(fields.Integer),
357})