class RoleData(db.Model, Serializer): __tablename__ = 'role' id = db.Column('role_id', db.Integer, primary_key=True) name = db.Column('name', db.Unicode(255)) description = db.Column('description', db.Unicode(255)) timestamp = db.Column('timestamp', db.TIMESTAMP, server_default=db.func.current_timestamp(), nullable=False) permissions = db.relationship('PermissionData', secondary=role_permission, lazy='dynamic', backref=db.backref('roles', lazy='dynamic')) journey_versions = db.relationship('JourneyVersionData', secondary=journey_version_role, lazy='dynamic', backref=db.backref('roles', lazy='dynamic')) def __init__(self, args): for arg in args: setattr(self, arg, args[arg]) def serialize(self): return { 'id': self.id, 'name': self.name, 'description': self.description }
class User(db.Model): id = db.Column(db.Integer, primary_key=True) user_name = db.Column(db.Unicode(__VARCHAR_LEN__)) password = db.Column(db.Unicode(__VARCHAR_LEN__)) first_name = db.Column(db.Unicode(__VARCHAR_LEN__)) last_name = db.Column(db.Unicode(__VARCHAR_LEN__)) email = db.Column(db.Unicode(__VARCHAR_LEN__)) company_id = db.Column(db.ForeignKey('company.id')) company = db.relationship(Company, backref=db.backref('users', lazy='dynamic'))
class UserData(db.Model, Serializer): __tablename__ = "user" id = db.Column('user_id', db.Integer, primary_key=True) firstname = db.Column('firstname', db.String(50), nullable=False, server_default=u'') lastname = db.Column('lastname', db.String(50), server_default=u'') email = db.Column('email', db.Unicode(255), server_default=u'', nullable=False, unique=True) username = db.Column('username', db.Unicode(255), nullable=False, server_default=u'', unique=True) password = db.Column('password', db.Unicode(255), nullable=False, server_default='') created_at = db.Column('user_creationDate', db.TIMESTAMP, server_default=db.func.current_timestamp(), nullable=False) status = db.Column('status', db.String(10), nullable=False, server_default='active') role_id = db.Column(db.Integer, db.ForeignKey('role.role_id')) def __init__(self, args): for arg in args: setattr(self, arg, args[arg])
class Notification(db.Model): __tablename__ = 'Notification' notification_id = db.Column(UUID(as_uuid=True), default=uuid.uuid4, primary_key=True) sender_id = db.Column(UUID(as_uuid=True), db.ForeignKey('User.user_id'), nullable=False) receiver_id = db.Column(UUID(as_uuid=True), db.ForeignKey('User.user_id'), nullable=False) #event_id = db.Column(UUID(as_uuid=True), db.ForeignKey('Event.event_id'), nullable=False) created_at = db.Column(db.DateTime, default=datetime.utcnow, nullable=False) type = db.Column(db.Unicode(250)) info = db.Column(db.Unicode(2500)) read = db.Column(db.Boolean, default=False) sender = db.relationship('User', lazy=True, foreign_keys=[sender_id]) receiver = db.relationship('User', lazy=True, foreign_keys=[receiver_id]) '''def __init__(self, sender_id, receiver_id, event_id, type, info):
class Notification(db.Model): __tablename__ = 'Notification' notification_id = db.Column(db.Integer, primary_key=True) #sender_id = db.Column(db.Integer, db.ForeignKey('user.user_id'), nullable=False) #receiver_id = db.Column(db.Integer, db.ForeignKey('user.user_id'), nullable=False) #event_id = db.Column(db.Integer, db.ForeignKey('event.event_id'), nullable=False) sender_id = db.Column(db.Integer, nullable=False) # STUB receiver_id = db.Column(db.Integer, nullable=False) # STUB event_id = db.Column(db.Integer, nullable=False) # STUB created_at = db.Column(db.DateTime, default=datetime.utcnow, nullable=False) type = db.Column(db.Unicode(250)) info = db.Column(db.Unicode(2500)) def __init__(self, sender_id, receiver_id, event_id, type, info): self.sender_id = sender_id self.receiver_id = receiver_id self.event_id = event_id self.type = type self.info = info
class User(db.Model): __tablename__ = 'User' user_id = db.Column(UUID(as_uuid=True), default=uuid.uuid4, primary_key=True) email = db.Column(db.Unicode(254), unique=True, nullable=False) _password = db.Column('password', db.String(255), nullable=False) name = db.Column(db.Unicode(120), nullable=False) registered_events = db.relationship('Event', lazy=True) notifications_sent = db.relationship('Notification', lazy='dynamic', foreign_keys='Notification.sender_id') notifications_received = db.relationship('Notification', lazy='dynamic', foreign_keys='Notification.receiver_id') #registrations_sent = db.relationship('Registration', lazy='dynamic', foreign_keys='Registration.sender_id') registrations_received = db.relationship('Registration', lazy='dynamic', foreign_keys='Registration.register_id') roles = db.relationship('Role', lazy='dynamic') sessions = db.relationship('Session', lazy='dynamic') @classmethod def schema(cls): class Schema(SQLAlchemySchema): class Meta: model = User name = auto_field() roles = Nested(Role.schema(), many=True) if (not hasattr(cls, '_schema')): cls._schema = Schema() return cls._schema @property def password(self): return self._password @password.setter def password(self, password): self._password = ph.hash(password) def verify_password(self, password): try: return ph.verify(self._password, password) except (VerifyMismatchError): return False def dump(self): return User.schema().dump(self)
class PermissionData(db.Model, Serializer): __tablename__ = "permission" id = db.Column('permission_id', db.Integer, primary_key=True) name = db.Column('name', db.Unicode(255)) description = db.Column('description', db.Unicode(255)) short_name = db.Column('short_name', db.Unicode(255)) timestamp = db.Column('timestamp', db.TIMESTAMP, server_default=db.func.current_timestamp(), nullable=False) def __init__(self, args): for arg in args: setattr(self, arg, args[arg]) def serialize(self): return { 'id': self.id, 'name': self.name, 'short_name': self.short_name, 'description': self.description }
class Sign(db.Model): id = db.Column(db.Integer, primary_key=True) px = db.Column(db.Float) pz = db.Column(db.Float) ix = db.Column(db.Float) iy = db.Column(db.Float) iz = db.Column(db.Float) iry = db.Column(db.Float) iw = db.Column(db.Float) ih = db.Column(db.Float) cx = db.Column(db.Float) cz = db.Column(db.Float) crx = db.Column(db.Float) cry = db.Column(db.Float) img_url = db.Column(db.Unicode(__VARCHAR_LEN__)) reports = db.Column(db.Unicode(__VARCHAR_LEN__)) owner_id = db.Column(db.ForeignKey('user.id')) owner = db.relationship(User, backref=db.backref('signs', lazy='dynamic')) company_id = db.Column(db.ForeignKey('company.id')) company = db.relationship(Company, backref=db.backref('signs', lazy='dynamic')) # # class Person(db.Model): # id = db.Column(db.Integer, primary_key=True) # name = db.Column(db.Unicode) # birth_date = db.Column(db.Date) # # # class Article(db.Model): # id = db.Column(db.Integer, primary_key=True) # title = db.Column(db.Unicode) # published_at = db.Column(db.DateTime) # author_id = db.Column(db.Integer, db.ForeignKey('person.id')) # author = db.relationship(Person, backref=db.backref('articles', # lazy='dynamic'))
class UserInstagram(db.Model): __tablename__ = 'users_instagram' id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.BigInteger(), nullable=False, unique=True) name = db.Column(db.Unicode(255), nullable=False, server_default=u'', unique=False) follows = db.Column(db.Integer(), nullable=True, server_default=0) def to_dict(self): row = {} for c in self.__table__.columns: row[c.name] = getattr(self, c.name) return row @staticmethod def add_db(raw, image=None): obj = UserInstagram() for r in raw: if r not in ('id', ): if r in UserInstagram.__table__.columns: setattr(obj, r, raw[r]) db.session.add(obj) db.session.commit() return obj @staticmethod def get_by_user_id(user_id): obj = UserInstagram.query.filter_by(user_id=user_id).first() return obj @staticmethod def add_if_not_exists(raw): user = UserInstagram.get_by_user_id(raw['user_id']) if not user: user = UserInstagram.add_db(raw) return user, False return user, True
class Company(db.Model): id = db.Column(db.Integer, primary_key=True) company_name = db.Column(db.Unicode(__VARCHAR_LEN__))