Hide keyboard shortcuts

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

1# Serie Schemas 

2from marshmallow import fields 

3from src import ma 

4from src.model import SerieModel, SerieAdditionalModel 

5from src.utils import SQLAlchemyAutoSchema 

6from .genre_schema import GenreBase 

7 

8 

9class SerieMeta: 

10 model = SerieModel 

11 include_fk = True 

12 

13 

14class SerieBase(SQLAlchemyAutoSchema): 

15 rating = fields.Function(lambda obj: obj.content.rating) 

16 rating_count = fields.Function(lambda obj: obj.content.rating_count) 

17 popularity_score = fields.Function( 

18 lambda obj: obj.content.popularity_score) 

19 

20 serie_id = ma.Function(lambda obj: obj.serie_id) 

21 

22 class Meta(SerieMeta): 

23 pass 

24 

25 

26class SerieItem(SerieBase): 

27 genres = fields.Method("build_genres") 

28 

29 def build_genres(self, obj): 

30 return GenreBase.loads(obj.content.genres) 

31 

32 

33class SerieExtra(SerieItem): 

34 # Extra fields from join with 'recommended_application' 

35 reco_engine = fields.String(attribute="engine", default=None) 

36 reco_score = fields.Float(attribute="score", default=None) 

37 

38# ---- 

39 

40class SerieAdditionalMeta: 

41 model = SerieAdditionalModel 

42 include_fk = True 

43 

44class SerieAdditionalBase(SQLAlchemyAutoSchema): 

45 class Meta(SerieAdditionalMeta): 

46 pass