class Appoinment(db.Model): id = db.Column(db.Integer, primary_key=True) appoinment_date = db.Column(db.String(50), nullable=True) doctor_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False) appoinment_status = db.Column(db.Integer, nullable=False, default=0)
class User_details(db.Model): id = db.Column(db.Integer, primary_key=True) place_id = db.Column(db.Integer, db.ForeignKey('place.id'), nullable=False) gender = db.Column(db.String(50), nullable=False) age = db.Column(db.String(50), nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False) address = db.Column(db.String(150), nullable=False) contact = db.Column(db.String(50), nullable=False) image = db.Column(db.String(150), nullable=True)
class Post(db.Model): id = db.Column(db.Integer,index=True,primary_key=True) groupIdPosted = db.Column(db.Integer,db.ForeignKey("group.id"),index=True) content = db.Column(db.Text,index=True) datetime = db.Column(db.DateTime,default=datetime.utcnow) visibility = db.Column(db.String(10),index=True) owner = db.Column(db.String(10),index=True) __mapper_args__={ "polymorphic_on" : "owner" }
class Hospital(db.Model): id = db.Column(db.Integer, primary_key=True) hospital_name = db.Column(db.String(50), nullable=False) hospital_address = db.Column(db.String(50), nullable=False) hospital_contact = db.Column(db.String(50), nullable=False) hospital_email = db.Column(db.String(50), nullable=False) place_id = db.Column(db.Integer, db.ForeignKey('place.id'), nullable=False) hospital_of_doctor = db.relationship( 'DoctorDetails', backref='doctorDetails', foreign_keys='DoctorDetails.hospital_id')
class DoctorDetails(db.Model): id = db.Column(db.Integer, primary_key=True) place_id = db.Column(db.Integer, db.ForeignKey('place.id'), nullable=False) doctor_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False) doctor_gender = db.Column(db.String(150), nullable=False) doctor_address = db.Column(db.String(150), nullable=False) doctor_contact = db.Column(db.String(50), nullable=False) doctor_specialization = db.Column(db.Integer, db.ForeignKey('specialization.id'), nullable=False) doctor_department = db.Column(db.Integer, db.ForeignKey('department.id'), nullable=False) doctor_registration = db.Column(db.String(50), nullable=False) doctor_image = db.Column(db.String(150), nullable=True) hospital_id = db.Column(db.Integer, db.ForeignKey('hospital.id'), nullable=False) doctor_status = db.Column(db.Integer, default=0)
class Place(db.Model): id = db.Column(db.Integer, primary_key=True) district_id = db.Column(db.Integer, db.ForeignKey('district.id'), nullable=False) place_name = db.Column(db.String(50), nullable=False) hospital_place = db.relationship('Hospital', backref='Place', foreign_keys='Hospital.place_id') doctors = db.relationship('DoctorDetails', backref='DoctorPlace', foreign_keys='DoctorDetails.place_id') userdetails = db.relationship('User_details', backref='UserDetailsPlace', foreign_keys='User_details.place_id') def __str__(self): return "{}".format((self.place_name))
class UserProfile(db.Model): id = db.Column(db.Integer,db.ForeignKey("user.id")) #Thsi will take care of usn for Students,faculty ids ... collegeId = db.Column(db.Integer,index=True,unique=True,primary_key= True) firstName = db.Column(db.String(30),index=True) lastName = db.Column(db.String(30),index=True) dob = db.column(db.Date) #Assuming only one contact.If there are more than 1 contacts we need to denormalize it and shit... contact = db.Column(db.Integer,index=True,unique=True) bio = db.Column(db.Text,index=True) interests = db.Column(db.Text,index=True) skills = db.Column(db.Text,index=True) userType = db.Column(db.String(20),index=True) __mapper_args__ = { 'polymorphic_on' : userType } def __repr__(self): return '<UserProfile {}>'.format(self.firstName)
class UserRoles(db.Model): id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('users.id', ondelete='CASCADE')) role_id = db.Column(db.Integer, db.ForeignKey('roles.id', ondelete='CASCADE'))
class UserBlocked(db.Model): id = db.Column(db.Integer, primary_key=True) black_url = db.Column(db.String(50), nullable=False, unique=False) userid = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
class Test_results(db.Model): id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False) test_img_name = db.Column(db.String(150), nullable=False, unique=True) test_result = db.Column(db.String(150), nullable=False)
class GroupPost(Post): groupIdOwner = db.Column(db.Integer,db.ForeignKey("group.id")) __mapper_args__ = { "polymorphic_identity" : "group" }
class UserPost(Post): userIdOwner = db.Column(db.Integer,db.ForeignKey("user.id")) __mapper_args__ = { "polymorphic_identity" : "user" }
class GroupFollowersGroup(db.Model): groupIdFollowed = db.Column(db.Integer,db.ForeignKey("group.id")) groupIdFollower = db.Column(db.Integer,db.ForeignKey("group.id")) __table_args__ = (PrimaryKeyConstraint(groupIdFollower,groupIdFollowed),)
class UserToGroup(db.Model): userId = db.Column(db.Integer,db.ForeignKey("user_profile.id")) groupId = db.Column(db.Integer,db.ForeignKey("group.id")) relationship = db.Column(db.String(10),index=True,default="member") role = db.Column(db.String(20),index=True) __table_args__ = (PrimaryKeyConstraint(userId,groupId),)
class ProjectGroup(Group): researchGroup = db.Column(db.Integer,db.ForeignKey("group.id")) topic = db.Column(db.Text,index=True) __mapper_args__={ "polymorphic_identity" : "projectgroup" }