import json from uuid import uuid4 from application import db class User(db.Model): __tablename__ = 'users' user_id = db.Column(db.String(32), primary_key=True) collections = db.relationship('Collection', backref='user') @classmethod def get_or_create(cls, user_id): user = cls.query.filter_by(user_id=user_id).first() if not user: user = cls() user.user_id = user_id collection = Collection() collection.collection_id = uuid4().hex collection.name = 'default' collection.upcs = [] user.collections = [collection] db.session.add(user) db.session.commit() return user class Collection(db.Model): __tablename__ = 'collections' collection_id = db.Column(db.String(32), primary_key=True) user_id = db.Column(db.String(32), db.ForeignKey('users.user_id')) name = db.Column(db.String) items = db.relationship('Item', backref='collection') #upcs = db.relationship('Upc', backref='collection') ''' class Upc(db.Model): __tablename__ = 'upcs' collection_id = db.Column( db.String(32), db.ForeignKey('collections.collection_id'), primary_key=True) upc = db.Column(db.String, primary_key=True) ''' class Item(db.Model): __tablename__ = 'items' collection_id = db.Column( db.String(32), db.ForeignKey('collections.collection_id'), primary_key=True) data = db.Column(db.String) @property def json_data(self): return json.loads(self.data)