From 9763972575247f9901cabdfc146950df52041cfa Mon Sep 17 00:00:00 2001 From: coolneng Date: Tue, 28 Apr 2020 20:49:13 +0200 Subject: [PATCH] Fix database models --- .gitignore | 2 +- Pipfile | 10 ++ src/Pipfile.lock => Pipfile.lock | 134 ++++++++++++++++++++++--- {src/app => app}/__init__.py | 2 +- {src/database => app}/models.py | 49 ++++----- {src/app => app}/routes.py | 2 +- app/schema.py | 101 +++++++++++++++++++ {src/external => app}/twilio.py | 0 src/config.py => config.py | 0 {src/database => database}/__init__.py | 0 {src/database => database}/crud.py | 8 +- src/Pipfile | 19 ---- src/database/schema.py | 92 ----------------- 13 files changed, 261 insertions(+), 158 deletions(-) rename src/Pipfile.lock => Pipfile.lock (68%) rename {src/app => app}/__init__.py (88%) rename {src/database => app}/models.py (92%) rename {src/app => app}/routes.py (94%) create mode 100644 app/schema.py rename {src/external => app}/twilio.py (100%) rename src/config.py => config.py (100%) rename {src/database => database}/__init__.py (100%) rename {src/database => database}/crud.py (95%) delete mode 100644 src/Pipfile delete mode 100644 src/database/schema.py diff --git a/.gitignore b/.gitignore index 5567198..ac4a47f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -src/constants.py +constants.py assets/db_schema.sql diff --git a/Pipfile b/Pipfile index b5846df..5dd4349 100644 --- a/Pipfile +++ b/Pipfile @@ -6,6 +6,16 @@ verify_ssl = true [dev-packages] [packages] +twilio = "*" +flask = "*" +pymysql = "*" +flask-praetorian = "*" +flask-sqlalchemy = "*" +flask-migrate = "*" +flask-marshmallow = "*" +marshmallow = "*" +pytest = "*" +marshmallow-sqlalchemy = "*" [requires] python_version = "3.8" diff --git a/src/Pipfile.lock b/Pipfile.lock similarity index 68% rename from src/Pipfile.lock rename to Pipfile.lock index 72c6323..03acab4 100644 --- a/src/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "f45ecdf6d0ebe7b78d400e7fc1df90d2dbabf6e9f1c146e4768f215652c06008" + "sha256": "80fd792f6fec6ea79a6795b929139827dcf748408d6b337e8f1b5dc2cff36302" }, "pipfile-spec": 6, "requires": { @@ -22,6 +22,13 @@ ], "version": "==1.4.2" }, + "attrs": { + "hashes": [ + "sha256:08a96c641c3a74e44eb59afb61a24f2cb9f4d7188748e76ba4bb5edfa3cb7d1c", + "sha256:f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72" + ], + "version": "==19.3.0" + }, "blinker": { "hashes": [ "sha256:471aee25f3992bd325afa3772f1063dbdbbca947a041b8b89466dc00d606f8b6" @@ -49,6 +56,13 @@ ], "version": "==7.1.1" }, + "deprecated": { + "hashes": [ + "sha256:0cf37d293a96805c6afd8b5fc525cb40f23a2cac9b2d066ac3bd4b04e72ceccc", + "sha256:55b41a15bda04c6a2c0d27dd4c2b7b81ffa6348c9cad8f077ac1978c59927ab9" + ], + "version": "==1.2.9" + }, "flask": { "hashes": [ "sha256:4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060", @@ -59,10 +73,10 @@ }, "flask-buzz": { "hashes": [ - "sha256:b3347ae16b0716c4beab40fa4722771080c31e3c25925afc1c974d0df8382e48", - "sha256:eb2d4dbb42bfa9a46f174a026caa0b49b9cc582fb79377b52425551e586d4e1c" + "sha256:5d1158170c62c62a55e294f531091b261e5f9b272f9e4054e497e0fb68a6cf45", + "sha256:bd15f6c28807cad1fa7bdfa997f6722ac234271f72a0f7976d6100d64af864b9" ], - "version": "==0.1.14" + "version": "==0.1.15" }, "flask-mail": { "hashes": [ @@ -109,6 +123,12 @@ ], "version": "==2.9" }, + "inflection": { + "hashes": [ + "sha256:18ea7fb7a7d152853386523def08736aa8c32636b047ade55f7578c4edeb16ca" + ], + "version": "==0.3.1" + }, "itsdangerous": { "hashes": [ "sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19", @@ -118,10 +138,10 @@ }, "jinja2": { "hashes": [ - "sha256:93187ffbc7808079673ef52771baa950426fd664d3aad1d0fa3e95644360e250", - "sha256:b0eaf100007721b5c16c1fc1eecb87409464edc10469ddc9a22a27a99123be49" + "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0", + "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035" ], - "version": "==2.11.1" + "version": "==2.11.2" }, "mako": { "hashes": [ @@ -176,6 +196,28 @@ "index": "pypi", "version": "==3.5.1" }, + "marshmallow-sqlalchemy": { + "hashes": [ + "sha256:9301c6fd197bd97337820ea1417aa1233d0ee3e22748ebd5821799bc841a57e8", + "sha256:dde9e20bcb710e9e59f765a38e3d6d17f1b2d6b4320cbdc2cea0f6b57f70d08c" + ], + "index": "pypi", + "version": "==0.22.3" + }, + "more-itertools": { + "hashes": [ + "sha256:5dd8bcf33e5f9513ffa06d5ad33d78f31e1931ac9a18f33d37e77a180d393a7c", + "sha256:b1ddb932186d8a6ac451e1d95844b382f55e12686d51ca0c68b6f61f2ab7a507" + ], + "version": "==8.2.0" + }, + "packaging": { + "hashes": [ + "sha256:3c292b474fda1671ec57d46d739d072bfd495a4f51ad01a055121d81e952b7a3", + "sha256:82f77b9bee21c1bafbf35a84905d604d5d1223801d639cf3ed140bd651c08752" + ], + "version": "==20.3" + }, "passlib": { "hashes": [ "sha256:68c35c98a7968850e17f1b6892720764cc7eed0ef2b7cb3116a89a28e43fe177", @@ -207,12 +249,26 @@ ], "version": "==2.1.0" }, + "pluggy": { + "hashes": [ + "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0", + "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d" + ], + "version": "==0.13.1" + }, + "py": { + "hashes": [ + "sha256:5e27081401262157467ad6e7f851b7aa402c5852dbcb3dae06768434de5752aa", + "sha256:c20fdd83a5dbc0af9efd622bee9a5564e278f6380fffcacc43ba6f43db2813b0" + ], + "version": "==1.8.1" + }, "py-buzz": { "hashes": [ - "sha256:4b7a89bebad927c69e069ca43399a1b965c15f3b08998cf0d68101cc059efad8", - "sha256:d5147db6aab9ff52060f2810648003a6b4bdc91b8b16b50c23668ece632e15c2" + "sha256:07ff75c14182cb07d88372b6dc5e74e3588174189c8fd43b262317d38b8e49bd", + "sha256:21f72d3e160eb403dce76f9011c4614f3e0608bb7f91673e9fb7bfee7859a9a0" ], - "version": "==0.3.7" + "version": "==1.0.3" }, "pyjwt": { "hashes": [ @@ -229,6 +285,21 @@ "index": "pypi", "version": "==0.9.3" }, + "pyparsing": { + "hashes": [ + "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1", + "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b" + ], + "version": "==2.4.7" + }, + "pytest": { + "hashes": [ + "sha256:0e5b30f5cb04e887b91b1ee519fa3d89049595f428c1db76e73bd7f17b09b172", + "sha256:84dde37075b8805f3d1f392cc47e38a0e59518fb46a431cfdaf7cf1ce805f970" + ], + "index": "pypi", + "version": "==5.4.1" + }, "python-dateutil": { "hashes": [ "sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c", @@ -274,23 +345,48 @@ }, "sqlalchemy": { "hashes": [ - "sha256:7224e126c00b8178dfd227bc337ba5e754b197a3867d33b9f30dc0208f773d70" + "sha256:083e383a1dca8384d0ea6378bd182d83c600ed4ff4ec8247d3b2442cf70db1ad", + "sha256:0a690a6486658d03cc6a73536d46e796b6570ac1f8a7ec133f9e28c448b69828", + "sha256:114b6ace30001f056e944cebd46daef38fdb41ebb98f5e5940241a03ed6cad43", + "sha256:128f6179325f7597a46403dde0bf148478f868df44841348dfc8d158e00db1f9", + "sha256:13d48cd8b925b6893a4e59b2dfb3e59a5204fd8c98289aad353af78bd214db49", + "sha256:211a1ce7e825f7142121144bac76f53ac28b12172716a710f4bf3eab477e730b", + "sha256:2dc57ee80b76813759cccd1a7affedf9c4dbe5b065a91fb6092c9d8151d66078", + "sha256:3e625e283eecc15aee5b1ef77203bfb542563fa4a9aa622c7643c7b55438ff49", + "sha256:43078c7ec0457387c79b8d52fff90a7ad352ca4c7aa841c366238c3e2cf52fdf", + "sha256:5b1bf3c2c2dca738235ce08079783ef04f1a7fc5b21cf24adaae77f2da4e73c3", + "sha256:6056b671aeda3fc451382e52ab8a753c0d5f66ef2a5ccc8fa5ba7abd20988b4d", + "sha256:68d78cf4a9dfade2e6cf57c4be19f7b82ed66e67dacf93b32bb390c9bed12749", + "sha256:7025c639ce7e170db845e94006cf5f404e243e6fc00d6c86fa19e8ad8d411880", + "sha256:7224e126c00b8178dfd227bc337ba5e754b197a3867d33b9f30dc0208f773d70", + "sha256:7d98e0785c4cd7ae30b4a451416db71f5724a1839025544b4edbd92e00b91f0f", + "sha256:8d8c21e9d4efef01351bf28513648ceb988031be4159745a7ad1b3e28c8ff68a", + "sha256:bbb545da054e6297242a1bb1ba88e7a8ffb679f518258d66798ec712b82e4e07", + "sha256:d00b393f05dbd4ecd65c989b7f5a81110eae4baea7a6a4cdd94c20a908d1456e", + "sha256:e18752cecaef61031252ca72031d4d6247b3212ebb84748fc5d1a0d2029c23ea" ], "version": "==1.3.16" }, "twilio": { "hashes": [ - "sha256:39b949c671f1b29259c85569de58e6a4c8b04e13aba08d2d20ddba9d7c304573" + "sha256:620d7c9ef9e09c67a690ad02fdf76f502e5115227a56369e5f235d8a6b717c69" ], "index": "pypi", - "version": "==6.38.0" + "version": "==6.38.1" }, "urllib3": { "hashes": [ - "sha256:2f3db8b19923a873b3e5256dc9c2dedfa883e33d87c690d9c7913e1f40673cdc", - "sha256:87716c2d2a7121198ebcb7ce7cccf6ce5e9ba539041cfbaeecfb641dc0bf6acc" + "sha256:3018294ebefce6572a474f0604c2021e33b3fd8006ecd11d62107a5d2a963527", + "sha256:88206b0eb87e6d677d424843ac5209e3fb9d0190d0ee169599165ec25e9d9115" ], - "version": "==1.25.8" + "version": "==1.25.9" + }, + "wcwidth": { + "hashes": [ + "sha256:cafe2186b3c009a04067022ce1dcd79cb38d8d65ee4f4791b8888d6599d1bbe1", + "sha256:ee73862862a156bf77ff92b09034fc4825dd3af9cf81bc5b360668d425f3c5f1" + ], + "version": "==0.1.9" }, "werkzeug": { "hashes": [ @@ -298,6 +394,12 @@ "sha256:6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c" ], "version": "==1.0.1" + }, + "wrapt": { + "hashes": [ + "sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7" + ], + "version": "==1.12.1" } }, "develop": {} diff --git a/src/app/__init__.py b/app/__init__.py similarity index 88% rename from src/app/__init__.py rename to app/__init__.py index 0f8819b..87481be 100644 --- a/src/app/__init__.py +++ b/app/__init__.py @@ -10,4 +10,4 @@ db = SQLAlchemy(app) migrate = Migrate(app, db) ma = Marshmallow(app) -from app import routes, models +from app import routes, models, schema diff --git a/src/database/models.py b/app/models.py similarity index 92% rename from src/database/models.py rename to app/models.py index ebf2e2c..3e67fc4 100644 --- a/src/database/models.py +++ b/app/models.py @@ -1,4 +1,5 @@ from app import db +from sqlalchemy import text class Users(db.Model): @@ -71,16 +72,16 @@ class Cities(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) name = db.Column(db.String(255)) image = db.Column(db.String(255)) - status = db.Column(db.mysql.ENUM("1", "0")) + status = db.Column(db.Enum("1", "0")) created = db.Column(db.DateTime, nullable=False, server_default=db.func.now()) - updated = db.Column(db.DateTime, nullable=False, onupdate=db.func.now()) + modified = db.Column(db.DateTime, nullable=False, onupdate=db.func.now()) - def __init__(self, name, image, status, created, updated): + def __init__(self, name, image, status, created, modified): self.name = name self.image = image self.status = status self.created = created - self.updated = updated + self.modified = modified class Games(db.Model): @@ -91,7 +92,7 @@ class Games(db.Model): price = db.Column(db.String(100)) description = db.Column(db.Text) user_id = db.Column(db.Integer) - gender = db.Column(db.mysql.ENUM("1", "2", "3")) + gender = db.Column(db.Enum("1", "2", "3")) city_id = db.Column(db.Integer) venue_id = db.Column(db.Integer) sports_id = db.Column(db.Integer) @@ -101,14 +102,14 @@ class Games(db.Model): no_of_already_player = db.Column(db.Integer) payment_mode = db.Column(db.Integer) card_id = db.Column(db.Integer) - status = db.Column(db.Integer, server_default=1) - game_status = db.Column(db.Integer, server_default=0) + status = db.Column(db.Integer, server_default=text("1")) + game_status = db.Column(db.Integer, server_default=text("0")) cancel_status = db.Column(db.Integer) cancel_date = db.Column(db.DateTime) - noti_status = db.Column(db.Integer, server_default=0) - conduct_status = db.Column(db.Integer, server_default=1) + noti_status = db.Column(db.Integer, server_default=text("0")) + conduct_status = db.Column(db.Integer, server_default=text("1")) created = db.Column(db.DateTime, nullable=False, server_default=db.func.now()) - updated = db.Column(db.DateTime, nullable=False, onupdate=db.func.now()) + modified = db.Column(db.DateTime, nullable=False, onupdate=db.func.now()) def __init__( self, @@ -188,7 +189,7 @@ class Payments(db.Model): self.status = status -class PlayerAvailabilities: +class PlayerAvailabilities(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) game_id = db.Column(db.Integer) player_id = db.Column(db.Integer) @@ -204,7 +205,7 @@ class PlayerAvailabilities: self.status = status -class PlayerCancelGames: +class PlayerCancelGames(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) player_id = db.Column(db.Integer) game_id = db.Column(db.Integer) @@ -218,7 +219,7 @@ class PlayerCancelGames: self.game_id = game_id -class PurchaseGames: +class PurchaseGames(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) game_id = db.Column(db.Integer) user_id = db.Column(db.Integer) @@ -234,7 +235,7 @@ class PurchaseGames: self.pay_mode = pay_mode -class Sports: +class Sports(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) name = db.Column(db.String(255)) spanish_name = db.Column(db.String(100)) @@ -250,10 +251,10 @@ class Sports: self.status = status -class Teams: +class Teams(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) user_id = db.Column(db.Integer) - team_id = db.Column(db.mysql.ENUM("1", "2")) + team_id = db.Column(db.Enum("1", "2")) game_id = db.Column(db.Integer) status = db.Column(db.Integer) created = db.Column(db.DateTime, nullable=False, server_default=db.func.now()) @@ -268,11 +269,11 @@ class Teams: self.status = status -class UserRatings: +class UserRatings(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) game_id = db.Column(db.Integer) user_id = db.Column(db.Integer) - player_id = db.Column(db.mysql.ENUM("1", "2")) + player_id = db.Column(db.Enum("1", "2")) rating = db.Column(db.String(100)) created = db.Column(db.DateTime, nullable=False, server_default=db.func.now()) modified = db.Column(db.DateTime, nullable=False, onupdate=db.func.now()) @@ -286,13 +287,13 @@ class UserRatings: self.user_type = user_type -class VenueImages: +class VenueImages(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) venue_id = db.Column(db.Integer) user_id = db.Column(db.Integer) image = db.Column(db.String(255)) created = db.Column(db.DateTime, nullable=False, server_default=db.func.now()) - modified = db.Column(db.DateTime, nullable=False, onupdate=db.func.now()) + updated = db.Column(db.DateTime, nullable=False, onupdate=db.func.now()) def __init__( self, venue_id, user_id, image, @@ -302,7 +303,7 @@ class VenueImages: self.image = image -class Venues: +class Venues(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) user_id = db.Column(db.Integer) address = db.Column(db.Text) @@ -324,12 +325,12 @@ class Venues: self.sports_id = sports_id -class ViewNews: +class ViewNews(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) news_id = db.Column(db.Integer) user_id = db.Column(db.Integer) created = db.Column(db.DateTime, nullable=False, server_default=db.func.now()) - modified = db.Column(db.DateTime, nullable=False, onupdate=db.func.now()) + updated = db.Column(db.DateTime, nullable=False, onupdate=db.func.now()) def __init__( self, news_id, user_id, @@ -338,7 +339,7 @@ class ViewNews: self.user_id = user_id -class WebBookings: +class WebBookings(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) name = db.Column(db.String(255)) email = db.Column(db.String(255)) diff --git a/src/app/routes.py b/app/routes.py similarity index 94% rename from src/app/routes.py rename to app/routes.py index 01cc1bc..604ea50 100644 --- a/src/app/routes.py +++ b/app/routes.py @@ -1,6 +1,6 @@ from flask import request, jsonify, make_response from database.crud import insert_data, verify_otp -from external.twilio import send_otp +from app.twilio import send_otp from app import app diff --git a/app/schema.py b/app/schema.py new file mode 100644 index 0000000..e4b438d --- /dev/null +++ b/app/schema.py @@ -0,0 +1,101 @@ +from app import ma +from app.models import * +from marshmallow import fields +from marshmallow.validate import Length, Range + + +class UsersSchema(ma.Schema): + full_name = fields.Str(required=True, validate=Length(max=255)) + email = fields.Email(required=True, validate=Length(max=255)) + password = fields.Str(validate=Length(max=255)) + gender = fields.Integer(required=True, validate=Range(min=1, max=2)) + mobile = fields.Str(required=True, validate=Length(max=13)) + user_image = fields.Str(validate=Length(max=255)) + user_type = fields.Integer(required=True, validate=Range(min=1, max=2)) + lang_type = fields.Integer(required=True, validate=Range(min=1, max=2)) + device_type = fields.Integer(required=True, validate=Range(min=1, max=2)) + device_id = fields.Str(required=True) + + +class CitiesSchema(ma.SQLAlchemyAutoSchema): + class Meta: + model = Cities + load_instance = True + include_relationships = True + + +class GamesSchema(ma.SQLAlchemyAutoSchema): + class Meta: + model = Games + load_instance = True + include_relationships = True + + +class PlayerAvailabilitiesSchema(ma.SQLAlchemyAutoSchema): + class Meta: + model = PlayerAvailabilities + load_instance = True + include_relationships = True + + +class PlayerCancelGamesSchema(ma.SQLAlchemyAutoSchema): + class Meta: + model = PlayerCancelGames + load_instance = True + include_relationships = True + + +class PurchaseGamesSchema(ma.SQLAlchemyAutoSchema): + class Meta: + model = PurchaseGames + load_instance = True + include_relationships = True + + +class SportsSchema(ma.SQLAlchemyAutoSchema): + class Meta: + model = Sports + load_instance = True + include_relationships = True + + +class TeamsSchema(ma.SQLAlchemyAutoSchema): + class Meta: + model = Teams + load_instance = True + include_relationships = True + + +class UserRatingsSchema(ma.SQLAlchemyAutoSchema): + class Meta: + model = UserRatings + load_instance = True + include_relationships = True + + +class VenueImagesSchema(ma.SQLAlchemyAutoSchema): + class Meta: + model = VenueImages + load_instance = True + include_relationships = True + + +class VenuesSchema(ma.SQLAlchemyAutoSchema): + class Meta: + model = Venues + load_instance = True + include_relationships = True + + +class ViewNewsSchema(ma.SQLAlchemyAutoSchema): + class Meta: + model = ViewNews + load_instance = True + include_relationships = True + + +class WebBookingsSchema(ma.SQLAlchemyAutoSchema): + class Meta: + model = WebBookings + load_instance = True + include_relationships = True diff --git a/src/external/twilio.py b/app/twilio.py similarity index 100% rename from src/external/twilio.py rename to app/twilio.py diff --git a/src/config.py b/config.py similarity index 100% rename from src/config.py rename to config.py diff --git a/src/database/__init__.py b/database/__init__.py similarity index 100% rename from src/database/__init__.py rename to database/__init__.py diff --git a/src/database/crud.py b/database/crud.py similarity index 95% rename from src/database/crud.py rename to database/crud.py index a735280..b5b1b81 100644 --- a/src/database/crud.py +++ b/database/crud.py @@ -1,8 +1,8 @@ -from app import db -from database.models import * -from database.schema import * -from marshmallow import ValidationError from datetime import datetime +from app import db +from app.models import * +from app.schema import * +from marshmallow import ValidationError def insert_data(schema, data): diff --git a/src/Pipfile b/src/Pipfile deleted file mode 100644 index 70abf3b..0000000 --- a/src/Pipfile +++ /dev/null @@ -1,19 +0,0 @@ -[[source]] -name = "pypi" -url = "https://pypi.org/simple" -verify_ssl = true - -[dev-packages] - -[packages] -twilio = "*" -flask = "*" -pymysql = "*" -flask-praetorian = "*" -flask-sqlalchemy = "*" -flask-migrate = "*" -flask-marshmallow = "*" -marshmallow = "*" - -[requires] -python_version = "3.8" diff --git a/src/database/schema.py b/src/database/schema.py deleted file mode 100644 index 94d904e..0000000 --- a/src/database/schema.py +++ /dev/null @@ -1,92 +0,0 @@ -from app import ma -from database.models import * -from marshmallow.validate import Length, Range - - -class UsersSchema(ma.Schema): - full_name = ma.fields.Str(required=True, validate=Length(max=255)) - email = ma.fields.Email(required=True, validate=Length(max=255)) - password = ma.fields.Str(validate=Length(max=255)) - gender = ma.fields.Integer(required=True, validate=Range(min=1, max=2)) - mobile = ma.fields.Str(required=True, validate=Length(max=13)) - user_image = ma.fields.Str(validate=Length(max=255)) - user_type = ma.fields.Integer(required=True, validate=Range(min=1, max=2)) - lang_type = ma.fields.Integer(required=True, validate=Range(min=1, max=2)) - device_type = ma.fields.Integer(required=True, validate=Range(min=1, max=2)) - device_id = ma.fields.Str(required=True) - - class Meta: - model = Users - include_fk = True - - -class CitiesSchema(ma.Schema): - class Meta: - model = Cities - include_fk = True - - -class GamesSchema(ma.Schema): - class Meta: - model = Games - include_fk = True - - -class PlayerAvailabilitiesSchema(ma.Schema): - class Meta: - model = PlayerAvailabilities - include_fk = True - - -class PlayerCancelGamesSchema(ma.Schema): - class Meta: - model = PlayerCancelGames - include_fk = True - - -class PurchaseGamesSchema(ma.Schema): - class Meta: - model = PurchaseGames - include_fk = True - - -class SportsSchema(ma.Schema): - class Meta: - model = Sports - include_fk = True - - -class TeamsSchema(ma.Schema): - class Meta: - model = Teams - include_fk = True - - -class UserRatingsSchema(ma.Schema): - class Meta: - model = UserRatings - include_fk = True - - -class VenueImagesSchema(ma.Schema): - class Meta: - model = VenueImages - include_fk = True - - -class VenuesSchema(ma.Schema): - class Meta: - model = Venues - include_fk = True - - -class ViewNewsSchema(ma.Schema): - class Meta: - model = ViewNews - include_fk = True - - -class WebBookingsSchema(ma.Schema): - class Meta: - model = WebBookings - include_fk = True