class Estado(db.Model): __tablename__ = 'pines' id = db.Column(db.BigInteger().with_variant(sqlite.INTEGER(), 'sqlite'), primary_key=True, autoincrement=True) pin = db.Column(db.Integer, nullable=False, unique=True) laston = db.Column(db.DateTime(timezone=True), server_default=func.now()) lastoff = db.Column(db.DateTime(timezone=True), server_default=func.now()) curval = db.Column(db.Integer, nullable=False, default=0)
class Channels(db.Model): id = db.Column(db.Integer, primary_key=True) channel_id = db.Column(db.String(50), nullable=False, unique=True) title = db.Column(db.String(200)) description = db.Column(db.String(1000), nullable=True) homeUrl = db.Column(db.String(200)) publishedAt = db.Column(db.DateTime()) thumbnails_path = db.Column(db.String(100)) subscriberCount = db.Column(db.Integer, nullable=True) videoCount = db.Column(db.Integer, nullable=True) commentCount = db.Column(db.Integer, nullable=True) viewCount = db.Column(db.Integer, nullable=True) def __init__(self, channel_id, title, description, homeUrl, publishedAt, thumbnails_path, subscriberCount, videoCount, commentCount, viewCount): self.channel_id = channel_id self.title = title self.description = description self.homeUrl = homeUrl self.publishedAt = publishedAt self.thumbnails_path = thumbnails_path self.subscriberCount = subscriberCount self.videoCount = videoCount self.commentCount = commentCount self.viewCount = viewCount def __repr__(self): return '<Subscription %r>' % self.title
class Videos(db.Model): __tablename__ = 'yt_videos' id = db.Column(db.Integer, primary_key=True) video_id = db.Column(db.String(100), nullable=False, unique=True) video_url = db.Column(db.String(100), nullable=False, unique=True) video_embed_url = db.Column(db.String(100), nullable=False, unique=True) channel_id = db.Column(db.String(50)) title = db.Column(db.String(200)) publishedAt = db.Column(db.DateTime()) video_path = db.Column(db.String(200)) description = db.Column(db.String(500)) tvlogo = db.Column(db.Integer, nullable=True) protest = db.Column(db.Integer, nullable=True) uploader = db.Column(db.String(100)) show_img_path = db.Column(db.String(100)) tvlogo_img_path = db.Column(db.String(100)) protest_img_path = db.Column(db.String(100)) viewCount = db.Column(db.Integer, nullable=True) likeCount = db.Column(db.Integer, nullable=True) commentCount = db.Column(db.Integer, nullable=True) def __init__(self, video_id, video_url, video_embed_url, channel_id, uploader, title=None, publishedAt=None, video_path=None, description=None, tvlogo=None, protest=None, show_img_path=None, tvlogo_img_path=None, protest_img_path=None, viewCount=None, likeCount=None, commentCount=None): self.video_id = video_id self.video_url = video_url self.video_embed_url = video_embed_url self.channel_id = channel_id self.uploader = uploader self.title = title self.publishedAt = publishedAt self.video_path = video_path self.description = description self.tvlogo = tvlogo self.protest = protest self.show_img_path = show_img_path self.tvlogo_img_path = tvlogo_img_path self.protest_img_path = protest_img_path self.viewCount = viewCount self.likeCount = likeCount self.commentCount = commentCount def __repr__(self): return '<Video %r>' % self.video_id
class Historial(db.Model): __tablename__ = 'historial' id = db.Column(db.BigInteger().with_variant(sqlite.INTEGER(), 'sqlite'), primary_key=True, autoincrement=True) ts = db.Column(db.DateTime(timezone=True), server_default=func.now()) trigger = db.Column(db.String(50)) mensaje = db.Column(db.String(50))
class artpieces(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String()) email = db.Column(db.String()) submit_date = db.Column(db.DateTime()) art = db.Column(db.String()) status = db.Column(db.String()) picture = db.Column(db.LargeBinary()) def __repr__(self): return '<%r: %r>' % (self.id, self.title)
class PlayList(db.Model): id = db.Column(db.Integer, primary_key=True) playlist_id = db.Column(db.String(100), nullable=False, unique=True) channel_id = db.Column(db.String(50), nullable=False, unique=True) publishedAt = db.Column(db.DateTime()) title = db.Column(db.String(200)) def __init__(self, playlist_id, channel_id, publishedAt, title, description): self.playlist_id = playlist_id self.channel_id = channel_id self.publishedAt = publishedAt self.title = title self.description = description def __repr__(self): return '<playlist %r>' % self.playlist_id
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) # User authentication information username = db.Column(db.String(50), nullable=False, unique=True) password = db.Column(db.String(255), nullable=False, server_default='') reset_password_token = db.Column(db.String(100), nullable=False, server_default='') # User email information email = db.Column(db.String(255), nullable=False, unique=True) confirmed_at = db.Column(db.DateTime()) # User information active = db.Column('is_active', db.Boolean(), nullable=False, server_default='0') finished_role_selection = db.Column('finished_role_selection', db.Boolean(), default=False) first_name = db.Column(db.String(100), nullable=False, server_default='') last_name = db.Column(db.String(100), nullable=False, server_default='') # user_types are: teacher, student, general # user_type = db.Column(db.String(100), nullable=False,server_default='general') roles = db.relationship('Role', secondary='user_roles', backref=db.backref('users', lazy='dynamic')) episodes = db.relationship('Episode', secondary=episodes, backref=db.backref('users', lazy='dynamic')) teachers = db.relationship('User', secondary=teachers, primaryjoin=(teachers.c.student_id == id), secondaryjoin=(teachers.c.teacher_id == id), backref=db.backref('students', lazy="dynamic"), lazy="dynamic") def addTeacher(self, teacher): if not self.has_teacher(teacher): self.teachers.append(teacher) return self def removeTeacher(self, teacher): if self.has_teacher(teacher): self.teachers.remove(teacher) return self def has_teacher(self, teacher): return self.teachers.filter(teachers.c.teacher_id == teacher.id).count() > 0