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# Book Schemas 

2from marshmallow import fields 

3from src import ma 

4from src.model import BookModel, BookAdditionalModel 

5from src.utils import SQLAlchemyAutoSchema 

6 

7 

8class BookMeta: 

9 model = BookModel 

10 include_fk = True 

11 

12 

13class BookBase(SQLAlchemyAutoSchema): 

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

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

16 popularity_score = fields.Function( 

17 lambda obj: obj.content.popularity_score) 

18 

19 class Meta(BookMeta): 

20 pass 

21 

22 

23class BookExtra(BookBase): 

24 # Extra fields from join with 'recommended_application' 

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

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

27 

28# ---- 

29 

30class BookAdditionalMeta: 

31 model = BookAdditionalModel 

32 include_fk = True 

33 

34class BookAdditionalBase(SQLAlchemyAutoSchema): 

35 class Meta(BookAdditionalMeta): 

36 pass