class PlantLineageGenerationSchema(Schema): class Meta: type_ = 'plantlineagegenerations' self_view = 'plantlineagegeneration_detail' self_view_kwargs = {'id': '<id>'} self_view_many = 'plantlineagegeneration_list' id = fields.Str(dump_only=True) created = fields.Date() modified = fields.Date() generationslot = fields.Integer(attribute='generation_slot') isorigin = fields.Boolean(attribute='is_origin') plantlineage = Relationship( attribute='plant_lineage', self_view='plantlineagegeneration_plantlineage', self_view_kwargs={'id': '<id>'}, related_view='plantlineage_detail', related_view_kwargs={'id': '<id>'}, schema='PlantLineageSchema', type_='plantlineages') plantgeneration = Relationship( attribute='plant_generation', self_view='plantlineagegeneration_plantgeneration', self_view_kwargs={'id': '<id>'}, related_view='plantgeneration_detail', related_view_kwargs={'id': '<id>'}, schema='PlantGenerationSchema', type_='plantgenerations')
class GeokretSchemaPublic(Schema): class Meta: type_ = 'geokret' self_view = 'v1.geokret_details' self_view_kwargs = {'id': '<id>'} self_view_many = 'v1.geokrety_list' inflect = dasherize ordered = True id = fields.Str(dump_only=True) name = fields.Str(required=True) description = fields.Str() missing = fields.Boolean(dump_only=True) distance = fields.Integer(dump_only=True) caches_count = fields.Integer(dump_only=True) pictures_count = fields.Integer(dump_only=True) average_rating = fields.Float(dump_only=True) created_on_date_time = fields.Date(dump_only=True) updated_on_date_time = fields.Date(dump_only=True) owner = Relationship(attribute='owner', self_view='v1.geokret_owner', self_view_kwargs={'id': '<id>'}, related_view='v1.user_details', related_view_kwargs={'id': '<owner_id>'}, schema='UserSchemaPublic', type_='user') holder = Relationship(attribute='holder', self_view='v1.geokret_holder', self_view_kwargs={'id': '<id>'}, related_view='v1.user_details', related_view_kwargs={'id': '<holder_id>'}, schema='UserSchemaPublic', type_='user')
class PlantSchema(Schema): class Meta: type_ = 'plants' self_view = 'plant_detail' self_view_kwargs = {'id': '<id>'} self_view_many = 'plant_list' id = fields.Str(dump_only=True) created = fields.Date() modified = fields.Date() friendlyname = fields.String(attribute='friendly_name', required=True) latinname = fields.String(attribute='latin_name') droughttolerant = fields.Boolean(attribute='drought_tolerant') medicinal = fields.Boolean() edible = fields.Boolean() imagelarge = fields.String(attribute='image_large') imagesmall = fields.String(attribute='image_small') types = Relationship(attribute='type', self_view='plant_type', self_view_kwargs={'id': '<id>'}, related_view='type_detail', related_view_kwargs={'id': '<id>'}, schema='TypeSchema', type_='types') woodtypes = Relationship(attribute='wood_type', self_view='plant_type', self_view_kwargs={'id': '<id>'}, related_view='woodtype_detail', related_view_kwargs={'id': '<id>'}, schema='WoodTypeSchema', type_='woodtypes') lifespans = Relationship(attribute='lifespan', self_view='plant_type', self_view_kwargs={'id': '<id>'}, related_view='lifespan_detail', related_view_kwargs={'id': '<id>'}, schema='LifespanSchema', type_='lifespans') leafcycles = Relationship(attribute='leaf_cycle', self_view='plant_type', self_view_kwargs={'id': '<id>'}, related_view='leafcycle_detail', related_view_kwargs={'id': '<id>'}, schema='LeafCycleSchema', type_='leafcycles') plantnotes = Relationship(self_view='plant_notes', self_view_kwargs={'id': '<id>'}, related_view='plantnote_list', related_view_kwargs={'id': '<id>'}, many=True, schema='PlantNoteSchema', type_='plantnotes') plantlineages = Relationship(self_view='plant_lineages', self_view_kwargs={'id': '<id>'}, related_view='plantlineage_list', related_view_kwargs={'id': '<id>'}, many=True, schema='PlantLineageSchema', type_='plantlineages')
class DatedBadgeSchema(Schema): class Meta: type_ = 'dated-badges' kwargs = {'id': '<id>'} id = fields.Str(required=True, dump_only=True) start_date = fields.Date(required=True) end_date = fields.Date(required=True)
class DeptEmpSchema(Schema): id = fields.Str(dump_only=True) dept_no = fields.Str(dump_only=True) from_date = fields.Date() to_date = fields.Date() class Meta: type_ = 'dept_emp'
class PlantingPhysicalSourceSchema(Schema): class Meta: type_ = 'plantingphysicalsources' self_view = 'plantingphysicalsource_detail' self_view_kwargs = {'id': '<id>'} self_view_many = 'plantingphysicalsource_list' id = fields.Str(dump_only=True) created = fields.Date() modified = fields.Date() enum = fields.String(required=True) name = fields.String(required=True)
class MoveCommentSchema(Schema): @validates('comment') def validate_comment_blank(self, data): data = characterentities.decode(data).replace('\x00', '').strip() if not data: raise UnprocessableEntity("Comment cannot be blank", {'pointer': '/data/attributes/comment'}) @validates('type') def validate_type_value(self, data): if data not in MOVE_COMMENT_TYPES_LIST: raise UnprocessableEntity("Comment type is invalid", {'pointer': '/data/attributes/type'}) class Meta: type_ = 'move-comment' self_view = 'v1.move_comment_details' self_view_kwargs = {'id': '<id>'} self_view_many = 'v1.move_comment_list' inflect = dasherize ordered = True id = fields.Integer(as_string=True, dump_only=True) comment = fields.Str(required=True) type = fields.Integer(allow_none=False) created_on_datetime = fields.Date(dump_only=True) updated_on_datetime = fields.Date(dump_only=True) author = Relationship( attribute='author', self_view='v1.move_comment_author', self_view_kwargs={'id': '<id>'}, related_view='v1.user_details', related_view_kwargs={'move_comment_id': '<id>'}, schema='UserSchema', type_='user', include_resource_linkage=True, ) move = Relationship( attribute='move', self_view='v1.move_comment_move', self_view_kwargs={'id': '<id>'}, related_view='v1.move_details', related_view_kwargs={'move_comment_id': '<id>'}, schema='NewsSchema', type_='move', include_resource_linkage=True, required=True, )
class EmployeesSchema(Schema): id = fields.Str(dump_only=True) birth_date = fields.Date(required=True) hire_date = fields.Date(required=True) first_name = fields.Str(required=True) gender = fields.Str() department = Relationship( related_view='department_detail', include_data=True, type_='departments' ) class Meta: type_ = 'employees'
class BadgeSchema(Schema): @validates('name') def validate_title_blank(self, data): data = characterentities.decode(data).replace('\x00', '').strip() if not data: raise UnprocessableEntity("Badge name cannot be blank", {'pointer': '/data/attributes/name'}) class Meta: type_ = 'badge' self_view = 'v1.badge_details' self_view_kwargs = {'id': '<id>'} self_view_many = 'v1.badges_list' inflect = dasherize strict = True ordered = True dateformat = "%Y-%m-%dT%H:%M:%S" id = fields.Integer(as_string=True, dump_only=True) name = fields.Str(required=True) description = fields.Str(allow_none=True) filename = fields.Str(dump_only=True) created_on_datetime = fields.Date(dump_only=True) upload_url = fields.Str(dump_only=True) author = Relationship(attribute='author', self_view='v1.badge_author', self_view_kwargs={'id': '<id>'}, related_view='v1.user_details', related_view_kwargs={'badge_author_id': '<id>'}, schema='UserSchema', type_='user', include_resource_linkage=True)
class UserBadges(Schema): class Meta: type_ = 'my-badges' self_view = 'generateBadges.get_badges' kwargs = {'id': '<id>'} id = fields.Str(required=True, dump_only=True) badge_name = fields.Str(required=True) image = fields.Str(required=True) csv = fields.Str(required=True) badge_id = fields.Str(required=True) text_color = fields.Str(required=True) badge_size = fields.Str(required=True) download_link = fields.Str(required=True) created_at = fields.Date(required=True) image_link = fields.Str(required=True) paper_size = fields.Str(required=True) user_id = fields.Relationship( self_url='/api/upload/get_file', self_url_kwargs={'file_id': '<id>'}, related_url='/user/register', related_url_kwargs={'id': '<id>'}, include_resource_linkage=True, type_='User' )
class AllGenBadges(Schema): class Meta: type_ = 'all-badges' kwargs = {'id': '<id>'} id = fields.Date(required=True, dump_only=True) cnt = fields.Str(required=True)
class NewsCommentSchema(Schema): class Meta: type_ = 'news-comment' self_view = 'v1.news_comment_details' self_view_kwargs = {'id': '<id>'} self_view_many = 'v1.news_comments_list' inflect = dasherize ordered = True id = fields.Str(dump_only=True) comment = fields.Str() icon = fields.Integer(dump_only=True) created_on_date = fields.Date(dump_only=True) author = Relationship(attribute='author', self_view='v1.news_comments_author', self_view_kwargs={'id': '<id>'}, related_view='v1.user_details', related_view_kwargs={'id': '<author_id>'}, schema='UserSchema', type_='user', required=True) news = Relationship(attribute='news', self_view='v1.news_comments_news', self_view_kwargs={'id': '<id>'}, related_view='v1.news_details', related_view_kwargs={'id': '<news_id>'}, schema='NewsSchema', type_='news', required=True)
class FeatureRequestSchema(Schema): class Meta: type_ = 'feature_request' self_view = 'feature_request_detail' self_view_kwargs = {'id': '<id>'} self_view_many = 'feature_request_list' id = fields.Integer(as_string=True, dump_only=True) title = fields.Str(requried=True) description = fields.Str(requried=True) client = Relationship(attribute='client', self_view='client_detail', self_view_kwargs={'id': '<id>'}, schema='ClientSchema', type_='client') client_priority = Relationship(attribute='client_priority', self_view='priority_detail', self_view_kwargs={'id': '<id>'}, schema='PrioritySchema', type_='priority') target_date = fields.Date(requried=True) product_area = Relationship(attribute='product_area', self_view='product_area_detail', self_view_kwargs={'id': '<id>'}, schema='ProductAreaSchema', type_='product_area')
class MatchSchema(Schema): id = fields.Integer() instatid = fields.Integer() league_id = fields.Integer() league_instatid = fields.Integer() league = fields.String() country = fields.String() home_team_id = fields.Integer() guest_team_id = fields.Integer() home_team_instatid = fields.Integer() guest_team_instatid = fields.Integer() season = fields.String() match_date = fields.String() upload_time = fields.Date() home_team = fields.String() guest_team = fields.String() match_result = fields.String() # self links def get_top_level_links(self, data, many): if many: self_link = "/data/" else: self_link = "/data/{}".format(data['id']) return {'self': self_link} class Meta: type_ = 'data'
class NewsSubscriptionSchema(Schema): class Meta: type_ = 'news-subscription' self_view = 'v1.news_subscription_details' self_view_kwargs = {'id': '<id>'} self_view_many = 'v1.news_subscriptions_list' inflect = dasherize strict = True ordered = True id = fields.Integer(as_string=True, dump_only=True) subscribed_on_datetime = fields.Date(dump_only=True) user = Relationship( attribute='user', self_view='v1.news_subscription_user', self_view_kwargs={'id': '<id>'}, related_view='v1.user_details', related_view_kwargs={'news_subscription_id': '<id>'}, schema='UserSchema', type_='user', include_resource_linkage=True, ) news = Relationship( attribute='news', self_view='v1.news_subscription_news', self_view_kwargs={'id': '<id>'}, related_view='v1.news_details', related_view_kwargs={'news_subscription_id': '<id>'}, schema='NewsSchema', type_='news', required=True, include_resource_linkage=True, )
class SearchedUserSchema(Schema): class Meta: type_ = 'all-users' id = fields.Str(required=True, dump_only=True) username = fields.Str(required=True) email = fields.Str(required=True) password = fields.Str(required=True) created_at = fields.Date(required=True) photoURL = fields.Str(required=True) deleted_at = fields.Date() isAdmin = fields.Bool() isUser = fields.Bool() isSales = fields.Bool() lastLoginIp = fields.Str(allow_none=True) lastLoginDate = fields.Str(allow_none=True)
class AllUserStat(Schema): class Meta: type_ = 'admin-stat-users' kwargs = {'id': '<id>'} id = fields.Date(required=True, dump_only=True) superAdmin = fields.Str(required=True) registered = fields.Str(required=True)
class PlantGenerationSchema(Schema): class Meta: type_ = 'plantgenerations' self_view = 'plantgeneration_detail' self_view_kwargs = {'id': '<id>'} self_view_many = 'plantgeneration_list' id = fields.Str(dump_only=True) created = fields.Date() modified = fields.Date() plantings = Relationship(self_view='plantgeneration_plantings', self_view_kwargs={'id': '<id>'}, related_view='planting_list', related_view_kwargs={'id': '<id>'}, many=True, schema='PlantingSchema', type_='plantings')
class AllUsersSchema(Schema): class Meta: type_ = 'all-users' self_views = 'admin.show_all_users' kwargs = {'id': '<id>'} id = fields.Str(required=True, dump_only=True, attribute='User.id') username = fields.Str(required=True, attribute='User.username') email = fields.Str(required=True, attribute='User.email') password = fields.Str(required=True, attribute='User.password') created_at = fields.Date(required=True, attribute='User.created_at') photoURL = fields.Str(required=True, attribute='User.photoURL') deleted_at = fields.Date(attribute='User.deleted_at') isAdmin = fields.Bool(attribute='Permissions.isAdmin') isUser = fields.Bool(attribute='Permissions.isUser') isSales = fields.Bool(attribute='Permissions.isSales') lastLoginIp = fields.Str(allow_none=True, attribute='User.last_login_ip') lastLoginDate = fields.DateTime(allow_none=True, attribute='User.last_login_date')
class ExchangeSchema(Schema): id = fields.Str(dump_only=True) currency_from = fields.String() currency_to = fields.String() date = fields.Date() value = fields.String() class Meta: type_ = 'currency_exchange'
class PlantingNotesSchema(Schema): class Meta: type_ = 'plantingnotes' self_view = 'plantingnote_detail' self_view_kwargs = {'id': '<id>'} self_view_many = 'plantingnote_list' id = fields.Str(dump_only=True) created = fields.Date() modified = fields.Date() notedate = fields.Date(attribute='note_date') note = fields.String() planting = Relationship(self_view='plantingnote_planting', self_view_kwargs={'id': '<id>'}, related_view='planting_detail', related_view_kwargs={'id': '<id>'}, schema='PlantingSchema', type_='plantings')
class MomentSchema(Schema): id = fields.Str(dump_only=True) event_date = fields.Date(required=True) details = fields.Str(required=True, validate=not_blank) class Meta: type_ = 'moment' self_url = '/moment/{id}' self_url_kwargs = {'id': '<id>'} self_url_many = '/moments'
class LifespanSchema(Schema): class Meta: type_ = 'lifespans' self_view = 'lifespan_detail' self_view_kwargs = {'id': '<id>'} self_view_many = 'lifespan_list' id = fields.Str(dump_only=True) created = fields.Date() modified = fields.Date() enum = fields.String(required=True) name = fields.String(required=True) plants = Relationship(self_view='lifespan_plant', self_view_kwargs={'id': '<id>'}, related_view='plant_detail', related_view_kwargs={'id': '<id>'}, many=True, schema='PlantSchema', type_='plants')
class PlantHarvestNoteSchema(Schema): class Meta: type_ = 'plantharvestnotes' self_view = 'plantharvestnote_detail' self_view_kwargs = {'id': '<id>'} self_view_many = 'plantharvestnote_list' id = fields.Str(dump_only=True) created = fields.Date() modified = fields.Date() notedate = fields.Date(attribute='note_date') note = fields.String() plantharvest = Relationship(attribute='plant_harvest', self_view='harvestnote_harvest', self_view_kwargs={'id': '<id>'}, related_view='plantharvest_detail', related_view_kwargs={'id': '<id>'}, schema='PlantHarvestSchema', type_='plantharvests')
class AdminReportSchema(Schema): class Meta: type_ = 'admin-reports' id = fields.Date(required=True, dump_only=True) mailSentCount = fields.Int(as_string=True) badgeCount = fields.Int(as_string=True) badgeDeletionCount = fields.Int(as_string=True) userCreationCount = fields.Int(as_string=True) userDeletionCount = fields.Int(as_string=True)
class AdminMailStat(Schema): class Meta: type_ = 'admin-stat-mails' kwargs = {'id': '<id>'} id = fields.Date(required=True, dump_only=True) lastDayCount = fields.Str(required=True, default='0') lastThreeDays = fields.Str(required=True, default='0') lastSevenDays = fields.Str(required=True, default='0') lastMonth = fields.Str(required=True, default='0')
class UserSchemaPublic(Schema): class Meta: type_ = 'user' self_view = 'v1.user_details' self_view_kwargs = {'id': '<id>'} self_view_many = 'v1.users_list' inflect = dasherize ordered = True id = fields.Str(dump_only=True) name = fields.Str(required=True) language = fields.Str() country = fields.Str(dump_only=True) join_date_time = fields.Date(dump_only=True) # statpic = Relationship() news = Relationship(self_view='v1.user_news', self_view_kwargs={'id': '<id>'}, related_view='v1.news_list', related_view_kwargs={'author_id': '<id>'}, many=True, schema='NewsSchema', type_='news') news_comments = Relationship( self_view='v1.user_news_comments', self_view_kwargs={'id': '<id>'}, related_view='v1.news_comments_list', related_view_kwargs={'author_id': '<id>'}, many=True, schema='NewsCommentSchema', type_='news-comment', # include_resource_linkage=True ) geokrety_owned = Relationship( self_view='v1.user_geokrety_owned', self_view_kwargs={'id': '<id>'}, related_view='v1.geokrety_list', related_view_kwargs={'owner_id': '<id>'}, many=True, schema='GeokretSchemaPublic', type_='geokret', ) geokrety_held = Relationship( self_view='v1.user_geokrety_held', self_view_kwargs={'id': '<id>'}, related_view='v1.geokrety_list', related_view_kwargs={'holder_id': '<id>'}, many=True, schema='GeokretSchemaPublic', type_='geokret', )
class PlantHarvestSchema(Schema): class Meta: type_ = 'plantharvests' self_view = 'plantharvest_detail' self_view_kwargs = {'id': '<id>'} self_view_many = 'plantharvest_list' id = fields.Str(dump_only=True) created = fields.Date() modified = fields.Date() startdate = fields.Date(attribute='start_date') finishdate = fields.Date(attribute='finish_date') gramsharvested = fields.Integer(attribute='grams_harvested') plantgeneration = Relationship(attribute='plant_generation', self_view='harvest_plantgeneration', self_view_kwargs={'id': '<id>'}, related_view='plantgeneration_detail', related_view_kwargs={'id': '<id>'}, schema='PlantGenerationSchema', type_='plantgenerations')
class user_schema(Schema): # not_blank = validate.Length(min=1, error='Field cannot be blank') id = fields.Integer(dump_only=True) userid = fields.String() email = fields.String() password = fields.String() firstname = fields.String() lastname = fields.String() birthdate = fields.Date() class Meta: type_ = 'users'
class Person(Schema): id = fields.Integer() name = fields.String() kids_name = fields.String(attribute='name') age = fields.Integer() birth_date = fields.Date() updated_at = fields.DateTime() student = fields.Relationship(schema='Student') class Meta: inflect = dasherize type_ = 'people'