app.py 7.41 KB
Newer Older
wanli's avatar
wanli committed
1 2 3
# -*- coding: utf-8 -*-

from application.app import db, ma
4
from .base import PrimaryModel
wanli's avatar
wanli committed
5 6 7 8 9
from marshmallow import Schema, fields, INCLUDE, EXCLUDE

class AppModel(PrimaryModel):
    __tablename__ = 'evm_app'

wanli's avatar
wanli committed
10 11 12
    app_name = db.Column(db.String(70), index = True, nullable = False)
    app_icon = db.Column(db.String(200), nullable = False)
    app_version = db.Column(db.String(20), nullable = False)
13
    category = db.Column(db.String(50), nullable = False)
14
    launcher = db.Column(db.String(50), nullable = False)
15 16
    developer = db.Column(db.String(50), nullable = False)
    download_url = db.Column(db.String(200), nullable = False, default = '')
wanli's avatar
wanli committed
17
    app_file_size = db.Column(db.Integer, nullable = False)
18
    app_screen_size = db.Column(db.String(20), nullable = False)
wanli's avatar
wanli committed
19
    app_arch = db.Column(db.String(20), nullable = False, default = '')
20
    app_review = db.Column(db.Integer, nullable = False, default = 0)
21
    meta_data = db.Column(db.String(256), nullable = True)
wanli's avatar
wanli committed
22 23 24 25 26

    # __table_args__ = (
    #     db.Index('idx_xxx', 'xxx', mysql_using='btree'),
    # )

27
    def __init__(self, app_name, app_icon, app_version, category='', launcher='', developer=0, download_url='', meta_data='', app_file_size=0, app_screen_size='', app_arch='', app_review=0, create_by=None, create_at=None, update_by=None, update_at=None, remarks=""):
wanli's avatar
wanli committed
28 29 30 31
        self.app_name = app_name
        self.app_icon = app_icon
        self.app_version = app_version
        self.category = category
32
        self.launcher = launcher
wanli's avatar
wanli committed
33 34 35 36 37 38
        self.developer = developer
        self.download_url = download_url
        self.app_file_size = app_file_size
        self.app_screen_size = app_screen_size
        self.app_arch = app_arch
        self.app_review = app_review
39
        self.meta_data = meta_data
40 41 42 43 44
        self.create_by = create_by
        self.create_at = create_at
        self.update_by = update_by
        self.update_at = update_at
        self.remarks = remarks
wanli's avatar
wanli committed
45 46 47 48

    def __repr__(self):
        return '<AppModel %r>' % (self.app_name)

49
    def to_dict(self):
wanli's avatar
wanli committed
50
        return {
51
            'uuid': self.uuid,
wanli's avatar
wanli committed
52 53 54 55
            'app_name': self.app_name,
            'app_icon': self.app_icon,
            'app_version': self.app_version,
            'category': self.category,
56
            'launcher': self.launcher,
wanli's avatar
wanli committed
57 58 59 60 61
            'developer': self.developer,
            'download_url': self.download_url,
            'app_file_size': self.app_file_size,
            'app_screen_size': self.app_screen_size,
            'app_arch': self.app_arch,
62
            'meta_data': self.meta_data,
wanli's avatar
wanli committed
63
            'app_review': self.app_review,
wanli's avatar
wanli committed
64
            'remarks': self.remarks,
65 66 67 68
            "create_by": self.create_by,
            "update_by": self.update_by,
            "create_at": self.create_at.strftime("%Y-%m-%d %H:%M:%S") if self.create_at else None,
            "update_at": self.update_at.strftime("%Y-%m-%d %H:%M:%S") if self.update_at else None,
wanli's avatar
wanli committed
69 70 71 72 73 74
        }


class PostAppSchema(ma.SQLAlchemySchema):
    class Meta:
        # unknown = INCLUDE # 未知字段默认包含
wanli's avatar
wanli committed
75
        unknown = EXCLUDE # 未知字段默认排除
wanli's avatar
wanli committed
76 77
        model = AppModel

78
    meta_data = fields.String(required=False)
wanli's avatar
wanli committed
79
    app_name = ma.auto_field()
80
    app_icon = fields.String(required=False)
wanli's avatar
wanli committed
81 82
    app_version = ma.auto_field()
    category = ma.auto_field()
83
    launcher = fields.String(required=False)
84
    developer = fields.String(required=False)
wanli's avatar
wanli committed
85 86
    app_screen_size = ma.auto_field()
    app_arch = ma.auto_field()
87
    app_review = ma.auto_field(required=False)
88
    remarks = fields.String(required=False)
89 90
    logo = fields.Raw(required=False)
    fileList = fields.Raw(required=False)
wanli's avatar
wanli committed
91 92 93 94 95 96

postAppSchema = PostAppSchema()

class DeleteAppSchema(ma.SQLAlchemySchema):
    class Meta:
        # unknown = INCLUDE # 未知字段默认包含
wanli's avatar
wanli committed
97
        unknown = EXCLUDE # 未知字段默认排除
wanli's avatar
wanli committed
98 99 100 101 102 103 104 105
        model = AppModel


deleteAppSchema = DeleteAppSchema()

class GetListAppSchema(ma.SQLAlchemySchema):
    class Meta:
        # unknown = INCLUDE # 未知字段默认包含
wanli's avatar
wanli committed
106
        unknown = EXCLUDE # 未知字段默认排除
wanli's avatar
wanli committed
107 108
        model = AppModel

109 110 111
    uuid = fields.String(required=False, nullable=True)
    page = fields.Integer(required=False, default=1, nullable=True)
    pageSize = fields.Integer(required=False, default=15, nullable=True)
112
    scope = fields.String(required=False, nullable=True)
113 114 115
    app_name = fields.String(required=False, nullable=True)
    app_icon = fields.String(required=False, nullable=True)
    app_version = fields.String(required=False, nullable=True)
116
    algorithm = fields.String(required=False, nullable=True)
117
    category = fields.String(required=False, nullable=True)
118
    launcher = fields.String(required=False, nullable=True)
119
    app_arch = fields.String(required=False, nullable=True)
120
    meta_data = fields.String(required=False, nullable=True)
121 122 123 124 125 126
    download_url = fields.String(required=False, nullable=True)
    app_file_size = fields.Integer(required=False, nullable=True)
    app_screen_size = fields.String(required=False, nullable=True)
    app_review = fields.Integer(required=False, nullable=True)
    create_at = fields.DateTime(required=False, nullable=True)
    update_at = fields.DateTime(required=False, nullable=True)
127
    remarks = fields.String(required=False)
wanli's avatar
wanli committed
128 129

getListAppSchema = GetListAppSchema()
130
getListAppsSchema = GetListAppSchema(many=True)
wanli's avatar
wanli committed
131 132 133 134

class GetAppSchema(ma.SQLAlchemySchema):
    class Meta:
        # unknown = INCLUDE # 未知字段默认包含
wanli's avatar
wanli committed
135
        unknown = EXCLUDE # 未知字段默认排除
wanli's avatar
wanli committed
136 137
        model = AppModel

wanli's avatar
wanli committed
138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
    id = fields.Integer(required=False, nullable=True)
    uuid = fields.String(required=False, nullable=True)
    app_name = fields.String(required=False, nullable=True)
    app_icon = fields.String(required=False, nullable=True)
    app_version = fields.String(required=False, nullable=True)
    algorithm = fields.String(required=False, nullable=True)
    category = fields.String(required=False, nullable=True)
    launcher = fields.String(required=False, nullable=True)
    app_arch = fields.String(required=False, nullable=True)
    meta_data = fields.String(required=False, nullable=True)
    download_url = fields.String(required=False, nullable=True)
    app_file_size = fields.Integer(required=False, nullable=True)
    app_screen_size = fields.String(required=False, nullable=True)
    app_review = fields.Integer(required=False, nullable=True)
    create_at = fields.DateTime(required=False, nullable=True)
    update_at = fields.DateTime(required=False, nullable=True)
    remarks = fields.String(required=False)
wanli's avatar
wanli committed
155 156 157 158 159 160

getAppSchema = GetAppSchema()

class PutAppSchema(ma.SQLAlchemySchema):
    class Meta:
        # unknown = INCLUDE # 未知字段默认包含
wanli's avatar
wanli committed
161
        unknown = EXCLUDE # 未知字段默认排除
wanli's avatar
wanli committed
162 163
        model = AppModel

164 165 166 167 168 169 170 171 172 173 174 175
    app_name = fields.String(required=False, nullable=True)
    app_icon = fields.String(required=False, nullable=True)
    app_version = fields.String(required=False, nullable=True)
    category = fields.String(required=False, nullable=True)
    launcher = fields.String(required=False, nullable=True)
    app_arch = fields.String(required=False, nullable=True)
    download_url = fields.String(required=False, nullable=True)
    app_file_size =  fields.Integer(required=False, nullable=True)
    app_screen_size =  fields.String(required=False, nullable=True)
    meta_data = fields.String(required=False, nullable=True)
    app_review = fields.Integer(required=False, nullable=True)
    remarks = fields.String(required=False, nullable=True)
wanli's avatar
wanli committed
176 177

putAppSchema = PutAppSchema()