class ElectoralRoll(db.Model): ''' Contains Master Details ''' __tablename__ = 'ElectoralRoll' voterId = db.Column(db.Integer, nullable=False, primary_key=True) name = db.Column(db.String(100), nullable=False) branch = db.Column(db.String(100), nullable=False) year = db.Column(db.Integer, nullable=False) email = db.Column(db.String(256), nullable=False, unique=True) contact = db.Column(db.String(10), nullable=False, unique=True) def __repr__(self): return 'ElectoralRoll: < ' + self.voterId + ':' + self.name + ':' + self.branch + ':' + self.year + ':' + self.email + ':' + self.contact + '>' def __init__(self, voterId, name, branch, year, email, contact): self.voterId = voterId self.name = name self.branch = branch self.year = year self.email = email self.contact = contact def as_dict(self): return { c.name: getattr(self, c.name) for c in self.__tablename__.columns }
class Coordinator(db.Model): __tablename__ = 'Coordinator' userId = db.Column(db.String(10), db.ForeignKey('User.pecfestId'), primary_key=True) password = db.Column(db.String(10), nullable=False) level = db.Column(db.String(10), nullable=False) def __str__(self): return "[" + self.userId + "] " + self.level
class Participant(db.Model): __tablename__ = 'Participant' pecfestId = db.Column(db.String(10), primary_key=True) firstName = db.Column(db.String(256), nullable=False) lastName = db.Column(db.String(256), nullable=False) collegeName = db.Column(db.String(256), nullable=False) emailId = db.Column(db.String(100), nullable=False) mobileNumber = db.Column(db.String(10), nullable=False) gender = db.Column(db.String(10), nullable=False) accomodation = db.Column(db.String(10), nullable=False) verified = db.Column(db.Integer, nullable=False) smsCounter = db.Column(db.Integer, default=0) password = db.Column(db.String(300), nullable=False) def __repr__(self): return 'User: <' + self.pecfestId + ':' + self.password + '>' def set_password(self, password): self.password = generate_password_hash(password) def check_password(self, password): return check_password_hash(self.password, password) def as_dict(self): return { c.name: getattr(self, c.name) for c in self.__tablename__.columns }
class SentSMS(db.Model): __tablename__ = 'sent_sms' id = db.Column(db.Integer, primary_key=True) smsId = db.Column(db.String(255), nullable=False) mobile = db.Column(db.String(10), nullable=False) smsType = db.Column(db.Integer, nullable=False) # 1 for pending, 2 for delivered, 3 for rejected status = db.Column(db.Integer, nullable=False)
class Notifications(db.Model): __tablename__ = 'Notifications' notificationId = db.Column(db.String(10), primary_key=True) notificationTitle = db.Column(db.String(100), nullable=False) notificationDetails = db.Column(db.String(4096), nullable=True) eventId = db.Column(db.Integer, db.ForeignKey('Event.eventId'), nullable=False) notificationType = db.Column(db.String(10), nullable=False) notif_rel = relationship('Event')
class OTPs(db.Model): __tablename__ = 'OTPs' mobile = db.Column(db.String(10), primary_key=True) otp = db.Column(db.String(6), nullable=False) def __repr__(self): return 'ID: <' + self.mobile + ':' + self.otp + '>' def as_dict(self): return { c.name: getattr(self, c.name) for c in self.__tablename__.columns }
class Elections(db.Model): ''' Contains Details of all elections ''' __tablename__ = "Elections" electionId = db.Column(db.Integer, nullable=False, primary_key=True, autoincrement=True) electionName = db.Column(db.String(1000), nullable=False) description = db.Column(db.Text, nullable=True) startTime = db.Column(db.DateTime, nullable=False) endTime = db.Column(db.DateTime, nullable=False) hostId = db.Column(db.Integer, nullable=False) def __repr__(self): return 'Electons: < ' + self.hostId + ':' + self.electionId + ':' + self.electionName + ':' + self.description + ':' + self.startTime + ':' + self.endTime + '>' def __init__(self, hostId, electionId, electionName, description, startTime, endTime): self.electionId = electionId self.electionName = electionName self.description = description self.startTime = startTime self.endTime = endTime self.hostId = hostId def as_dict(self): return { c.name: getattr(self, c.name) for c in self.__tablename__.columns }
class User(db.Model): ''' Contain details of a user. ''' __tablename__ = 'User' pecfestId = db.Column(db.String(10), primary_key=True) name = db.Column(db.String(256), nullable=False) college = db.Column(db.String(256), nullable=False) email = db.Column(db.String(100), nullable=False) mobile = db.Column(db.String(10), nullable=False) gender = db.Column(db.String(10), nullable=False) accomodation = db.Column(db.String(255), nullable=False) verified = db.Column(db.Integer, nullable=False) smsCounter = db.Column(db.Integer, default=0) def __repr__(self): return 'User: <' + self.pecfestId + ':' + self.name + '>' def as_dict(self): return { c.name: getattr(self, c.name) for c in self.__tablename__.columns }
class EventRegistration(db.Model): __tablename__ = 'Registration' id = db.Column(db.Integer, primary_key=True) eventId = db.Column(db.Integer, db.ForeignKey('Event.eventId'), nullable=False) memberId = db.Column(db.String(10), db.ForeignKey('User.pecfestId'), nullable=False) leaderId = db.Column(db.String(10), db.ForeignKey('User.pecfestId'), nullable=False) def as_dict(self): return { c.name: getattr(self, c.name) for c in self.__tablename__.columns }
class Candidate(db.Model): ''' Info about candidates ''' __tablename__ = "Candidate" voterId = db.Column(db.Integer, db.ForeignKey('ElectoralRoll.voterId'), nullable=False) electionId = db.Column(db.Integer, db.ForeignKey('Elections.electionId'), nullable=False) name = db.Column(db.String(100), nullable=False) manifesto = db.Column(db.Text, nullable=True) uId = db.Column(db.Integer, primary_key=True, autoincrement=True) def __repr__(self): return 'Candidate: < ' + str(self.electionId) + ':' + str( self.uId) + ':' + str( self.voterId) + ':' + self.name + ':' + self.manifesto + '>' def __init__(self, electionId, voterId, name, manifesto): self.voterId = voterId self.name = name self.manifesto = manifesto self.electionId = electionId def as_dict(self): return { c.name: getattr(self, c.name) for c in self.__tablename__.columns } def get_uId(self): return self.uId def get_voterId(self): return self.voterId def get_name(self): return self.name def get_manifesto(self): return self.manifesto
class Session(db.Model): __tablename__ = 'Session' sessionKey = db.Column(db.String(10), primary_key=True) userId = db.Column(db.String(10), nullable=False)
class Event(db.Model): __tablename__ = 'Event' eventId = db.Column(db.Integer, primary_key=True, nullable=False) name = db.Column(db.String(100), unique=True, nullable=False) coordinators = db.Column(db.String(4096)) location = db.Column(db.String(200)) day = db.Column(db.Integer) time = db.Column(db.String(50)) prize = db.Column(db.String(256)) minSize = db.Column(db.Integer, default=0) maxSize = db.Column(db.Integer, default=0) eventType = db.Column(db.Integer, nullable=False) category = db.Column(db.Integer, default=0) clubId = db.Column(db.String(10), default=0) details = db.Column(db.String(4096)) shortDescription = db.Column(db.String(300)) imageUrl = db.Column(db.String(255), default='') rulesList = db.Column(db.String(4096)) pdfUrl = db.Column(db.String(255), nullable=False) def __repr__(self): return 'Event: <' + self.eventName + '>' def as_dict(self): return { c.name: getattr(self, c.name) for c in self.__tablename__.columns }
class Notifications(db.Model): __tablename__ = 'Notifications' token = db.Column(db.String(50), primary_key=True)