class Viewpoint(db.Model): id = db.Column(db.Integer, primary_key=True) agree = db.Column(db.Boolean) disagree = db.Column(db.Boolean) like = db.Column(db.Boolean) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) answer_id = db.Column(db.Integer, db.ForeignKey('answer.id'))
class Answer(db.Model): __tablename__ = 'answers' id = db.Column(db.Integer, primary_key=True) body = db.Column(db.String(140)) question_id = db.Column(db.Integer, db.ForeignKey('questions.id')) user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
class UserRoles(db.Model): __tablename__ = 'user_roles' 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'), default=1)
class PatronLoanAccounts(db.Model): __tablename__ = 'patronLoanAccounts' id_patron = db.Column(db.Integer, db.ForeignKey('patron.id'), primary_key=True) id_loan = db.Column(db.Integer, db.ForeignKey('loans.id'), primary_key=True)
class PatronBankAccounts(db.Model): __tablename__ = 'patronBankAccounts' id_patron = db.Column(db.Integer, db.ForeignKey('patron.id'), primary_key=True) id_bankAccount = db.Column(db.Integer, db.ForeignKey('bankAccount.id'), primary_key=True)
class Appointment(db.Model): __tablename__ = 'appointments' id = db.Column(db.Integer, primary_key=True) datetime = db.Column(db.DateTime, default=datetime.utcnow) # 提交的时间 message = db.Column(db.String(32)) status = db.Column(db.String(32)) #Pending/Confirmed/Canceled/Finished pet_status = db.Column(db.String(32)) location = db.Column(db.Integer) is_emergency = db.Column(db.Boolean) accept_change = db.Column(db.Boolean) employee_id = db.Column(db.Integer, db.ForeignKey('users.id')) pet_id = db.Column(db.Integer, db.ForeignKey('pets.id')) preferred_doctor_id = db.Column(db.Integer, db.ForeignKey('users.id'))
class Appointment(db.Model): __tablename__ = 'appointments' id = db.Column(db.Integer, primary_key=True) datetime = db.Column(db.DateTime, default=datetime.utcnow) # 提交的时间 description = db.Column(db.String(32), default='') status = db.Column(db.String(32), default='Pending') #Pending/Confirmed/Canceled/Finished pet_status = db.Column(db.String(32), default='Unchecked') #设计一系列状态 loc = db.Column(db.Integer) is_emergency = db.Column(db.Boolean) changeable = db.Column(db.Boolean) employee_id = db.Column(db.Integer, db.ForeignKey('users.id')) pet_id = db.Column(db.Integer, db.ForeignKey('pets.id')) preferred_doctor_id = db.Column(db.Integer, db.ForeignKey('users.id'))
class Pet(db.Model): __tablename__ = 'pets' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(32)) age = db.Column(db.Integer) category = db.Column(db.String(32)) # dog/cat owner_id = db.Column(db.Integer, db.ForeignKey('users.id'))
class Post(db.Model): id = db.Column(db.Integer, primary_key=True) body = db.Column(db.String(140)) timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) def __repr__(self): return '<Post: {}>'.format(self.body)
class Question(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100), index=True) description = db.Column(db.String(300), index=True) datetime = db.Column(db.DateTime) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) def __repr__(self): return '<Question {}>'.format(self.title)
class Message(db.Model): __tablename__ = 'messages' id = db.Column(db.Integer, primary_key=True) content_crypt = db.Column(db.String(250)) timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow) sender_id = db.Column(db.Integer, db.ForeignKey('users.id')) recipient_id = db.Column(db.Integer, db.ForeignKey('users.id')) sender = db.relationship('User', back_populates='sent_messages', primaryjoin='Message.sender_id == User.id') recipient = db.relationship('User', back_populates='received_messages', primaryjoin='Message.recipient_id == User.id') def decrypted_message(self): f = Fernet(key) return f.decrypt(self.content_crypt.encode()).decode('utf-8')
class Profile(db.Model): id = db.Column(db.Integer, primary_key=True) dob = db.Column(db.DateTime, index=True) gender = db.Column(db.String(10), index=True) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) def date(self): return '{}'.format(str(self.dob)[0:10]) def __repr__(self): return '<Profile for user: {}, gender: {}, birthday: {}>'.format(self.user_id, self.dob, self.dob)
class Question(db.Model): __tablename__ = 'questions' id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(30)) body = db.Column(db.String(140)) timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow) anonymity = db.Column(db.Integer) user_id = db.Column(db.Integer, db.ForeignKey('users.id')) answers = db.relationship('Answer', backref='question', lazy='dynamic') def __repr__(self): return '<Question asked on {} by {}: {} >'.format( str(self.timestamp)[0:10], self.author.username, self.body)
class BankAccount(db.Model): __tablename__ = 'bankAccount' id = db.Column(db.Integer, primary_key=True) accountName = db.Column(db.Text, nullable=False) accountBalance = db.Column(db.REAL, nullable=False) insurance = db.Column(db.Integer, nullable=False) accountType = db.Column(db.ForeignKey('bankAccountType.accountType'), nullable=False) bankAccountType = relationship('BankAccountType') def __repr__(self): # How this class is printed return '<Bank Account Name {}>'.format(self.accountName)
class Loan(db.Model): __tablename__ = 'loans' id = db.Column(db.Integer, primary_key=True) loanPayment = db.Column(db.Numeric, nullable=False) loanBalance = db.Column(db.Numeric, nullable=False) startDate = db.Column(db.Text, nullable=False) endDate = db.Column(db.Text, nullable=False) loanCategory = db.Column(db.Text, db.ForeignKey('loanType.loanCategory'), nullable=False) loanType = relationship('LoanType') def __repr__(self): # How this class is printed return '<Loan ID {}>'.format(self.id)
from time import time import jwt from datetime import datetime from appdir import db, login, app from werkzeug.security import generate_password_hash, check_password_hash from flask_login import UserMixin from hashlib import md5 followers = db.Table( 'followers', db.Column('follower_id', db.Integer, db.ForeignKey('user.id')), db.Column('followed_id', db.Integer, db.ForeignKey('user.id'))) class User(UserMixin, db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(64), index=True, unique=True) email = db.Column(db.String(120), index=True, unique=True) password_hash = db.Column(db.String(128)) posts = db.relationship('Post', backref='author', lazy='dynamic') about_me = db.Column(db.String(140)) last_seen = db.Column(db.DateTime, default=datetime.utcnow) followed = db.relationship('User', secondary=followers, primaryjoin=(followers.c.follower_id == id), secondaryjoin=(followers.c.followed_id == id), backref=db.backref('followers', lazy='dynamic'), lazy='dynamic') def __repr__(self):
class Answer(db.Model): id = db.Column(db.Integer, primary_key=True) content = db.Column(db.String(1000), index=True) datetime = db.Column(db.DateTime) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) question_id = db.Column(db.Integer, db.ForeignKey('question.id'))
class Comment(db.Model): id = db.Column(db.Integer, primary_key=True) content = db.Column(db.String(300), index=True) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) answer_id = db.Column(db.Integer, db.ForeignKey('answer.id'))
class Invite(db.Model): id = db.Column(db.Integer, primary_key=True) inviter_id = db.Column(db.Integer, db.ForeignKey('user.id')) invitee_id = db.Column(db.Integer, db.ForeignKey('user.id')) question_id = db.Column(db.Integer, db.ForeignKey('question.id'))
class Follow(db.Model): id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) followed_id = db.Column(db.Integer, db.ForeignKey('user.id'))