class DetailReceipt(db.Model): transaction_id = db.Column(db.Integer,ForeignKey('transaction.id'),nullable=False, primary_key = True) receipt_received = db.Column(db.Boolean, nullable = False) ezag_id = db.Column(db.String(31), nullable = False) bankstatement_period = db.Column(db.String(31), nullable = False) custom_iban = db.Column(db.String(255), nullable = True) custom_recipient = db.Column(db.String(255), nullable = True)
class User(UserMixin, db.Model): __tablename__ = 'users' id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(64), unique=True, index=True) password_hash = db.Column(db.String(128)) confirmed = db.Column(db.BOOLEAN(), nullable=False, default=False, comment='账户是否已经确认') def __init__(self, username): self.username = username self.confirmed = False @property def password(self): raise AttributeError('password is not a readable attribute') @password.setter def password(self, password): self.password_hash = generate_password_hash(password) def generate_reset_token(self, expiration=3600): s = Serializer(current_app.config['SECRET_KEY'], expiration) return s.dumps({'reset': self.id}).decode('utf-8') def verify_password(self, password): return check_password_hash(self.password_hash, password) def generate_confirmation_token(self, expiration=3600): s = Serializer(current_app.config['SECRET_KEY'], expiration) return s.dumps({'confirm': self.id}).decode('utf-8') def confirmed(self, token): '''确认账户 ''' s = Serializer(current_app.config['SECRET_KEY']) try: data = s.loads(token.encode('utf-8')) except: return False if data.get('confirm') != self.id: return False self.confirmed = True db.session.add(self) return True @staticmethod def verify_auth_token(token): s = Serializer(current_app.config['SECRET_KEY']) try: data = s.loads(token) except SignatureExpired: return None except BadSignature: return None return User.query.get(data.get('id')) def __repr__(self): return f'<User {self.username}>'
class User(db.Model): id = db.Column(KEY_TYPE, primary_key=True) email = db.Column(db.String(120), unique=True, nullable=False) name = db.Column(db.String(120), nullable=False) guides = db.relationship('Guide', backref='user', lazy=True) purchased_guides = db.relationship('Guide', secondary=purchased_guides, lazy='subquery', backref=db.backref('users', lazy=True)) def __repr__(self): return '<User %s: %s>' % (self.id, self.email)
class Guide(db.Model): id = db.Column(KEY_TYPE, primary_key=True) description = db.Column(db.String(200), nullable=False) full_text = db.Column(db.Text) price = db.Column(db.Float, nullable=False) rating = db.Column(db.Float, nullable=False) duration = db.Column(db.Float, nullable=False) download_link = db.Column(db.String(200), nullable=False) place_id = db.Column(KEY_TYPE, db.ForeignKey('place.id'), nullable=False) user_id = db.Column(KEY_TYPE, db.ForeignKey('user.id'), nullable=False) def __repr__(self): return '<Guide %s>' % self.id
class Transaction(db.Model): id = db.Column(db.Integer, nullable=False, primary_key=True) financial_year = db.Column(INTEGER(4), nullable = False) date = db.Column(db.DateTime, default = datetime.datetime.now, nullable= False) type_id = db.Column(db.Integer, ForeignKey('transaction_type.type_id'), nullable = False) description = db.Column(db.String(255), nullable=False) category_id = db.Column(db.Integer, ForeignKey('transaction_category.category'), nullable = True) budgetitem_id = db.Column(db.Integer, ForeignKey('budget_item.budgetitem_id'), nullable= True) account_id = db.Column(db.Integer, ForeignKey('transaction_account.account'), nullable= True) is_valid = db.Column(db.Boolean, nullable= False) amount = db.Column(db.Numeric(precision=10,scale=2), nullable = False, default=0.00) currency_id = db.Column(db.Integer, ForeignKey('transaction_currency.currency_id'), nullable= False) amount_in_chf = db.Column(db.Numeric(precision=10,scale=2), nullable = True) user_id = db.Column(db.Integer, ForeignKey('user.user_id'), nullable= False) comment = db.Column(db.String(255), nullable = True)
class Summary(db.Model): """Definition of DB-Model""" id = db.Column(db.Integer, nullable=False, primary_key=True) uuid = db.Column(db.String(64), unique=True, nullable=False) bot_type = db.Column(db.String(64), nullable=False) battery_type = db.Column(db.String(64), nullable=False) release = db.Column(db.String(64), nullable=False) target = db.Column(db.String(64), nullable=False) created = db.Column(db.DateTime, default=datetime.datetime.now, nullable=False) summary = db.Column(db.Text, nullable=False) accepted = db.Column(db.Boolean, nullable=False, default=False) def __repr__(self): return '<Summary %r>' % self.uuid
class ImportData(db.Model): __tablename__ = 'import_data' id = db.Column(db.Integer, primary_key=True) info = db.Column(db.String(64), comment="图片信息") image_path = db.Column(db.String(64), comment="图片路径") user_id = db.Column(db.Integer, db.ForeignKey(User.id, ondelete="CASCADE"), comment="上传的用户的id") def __init__(self, info, image_path, user_id): self.info = info self.image_path = image_path self.user_id = user_id def __repr__(self): return f'<ImportData: (info | {self.info})>'
class Place(db.Model): id = db.Column(KEY_TYPE, primary_key=True) name = db.Column(db.String(120), nullable=False) position = db.Column(Geography('POINT')) tags = db.Column(db.Text) guides = db.relationship('Guide', backref='place', lazy=True) def __repr__(self): return '<Place %s: %s>' % (self.id, self.name)
class User(db.Model): user_id = db.Column(db.Integer, nullable=False, primary_key=True) nethz = db.Column(db.String(255), nullable=False) password = db.Column(db.String(255), nullable=False) salt = db.Column(db.String(255), nullable=False) name = db.Column(db.String(255), nullable=False) iban = db.Column(db.String(255), nullable=False) bic = db.Column(db.String(255), nullable=False) role = db.Column(db.String(255), nullable=False) amiv_email = db.Column(db.String(255), nullable=False) user_privileges = db.Column(INTEGER(6), nullable=False) own_budgetitem_id = relationship("BudgetItem", secondary=association_table)
class BudgetItem(db.Model): budgetitem_id = db.Column(db.Integer, nullable=False, primary_key=True) budgetitem_code = db.Column(db.String(4), nullable=False) budgetgroup_id = db.Column(db.Integer, ForeignKey('budget_group.budgetgroup_id'), nullable=False) budgetitem_name = db.Column(db.String(255), nullable=False) financial_year = db.Column(INTEGER(4), nullable=False) expenditure_budgeted = db.Column(db.Numeric(precision=10, scale=2), nullable=False, default=0.00) revenue_budgeted = db.Column(db.Numeric(precision=10, scale=2), nullable=False, default=0.00) expenditure_confirmed = db.Column(db.Numeric(precision=10, scale=2), nullable=False, default=0.00) revenue_confirmed = db.Column(db.Numeric(precision=10, scale=2), nullable=False, default=0.00)
class Invoice(db.Model): invoice_id = db.Column(db.Integer, nullable=False, primary_key=True) invoice_number = db.Column(db.String(7), nullable=False) issuer_id = db.Column(db.Integer, ForeignKey('user.user_id'), nullable=False) issue_date = db.Column(db.DATE, default=datetime.datetime.now, nullable=False) ext_customer_db = db.Column(db.Boolean, nullable=False) customer_id = db.Column(db.Integer, ForeignKey('customer.customer_id'), nullable=False) duedate = db.Column(db.DATE, default=datetime.datetime.now, nullable=False) moneyreceived = db.Column(db.Boolean, nullable=False) reminderlevel = db.Column(db.Integer, nullable=False) pdf_path = db.Column(db.String(255), nullable=False) is_valid = db.Column(db.Boolean, nullable=False) items = db.relationship('InvoiceItem', backref='invoice', lazy=True)
class User(db.Model): __tablename__ = 'users' #用户id id = db.Column(db.Integer, primary_key=True) #用户名 username = db.Column(db.String(64), unique=True, index=True) #密码(散列值) password_hash = db.Column(db.String(128)) @property def password(self): raise AttributeError('password is not a readable attribute') @password.setter def password(self, password): self.password_hash = generate_password_hash(password) def verify_password(self, password): return check_password_hash(self.password_hash, password) #Flask-login需要用到的几个判断 #是否已登陆 def is_authenticated(self): return True #账号是否有效 def is_active(self): return True #是否陌生人 def is_anonymous(self): return False #返回用户id def get_id(self): return unicode(self.id) def __repr__(self): return '<User %r>' % self.username
class InvoiceItem(db.Model): transaction_id = db.Column(db.Integer, ForeignKey('transaction.id'), nullable=False, primary_key=True) article_id = db.Column(db.Integer, ForeignKey('invoice_article.article_id'), nullable=False) description = db.Column(db.Text, nullable=False) unit = db.Column(db.String(7), nullable=False) amount = db.Column(db.Integer, nullable=False) taxrate = db.Column(db.Numeric(precision=2, scale=2), nullable=False) unitprice = db.Column(db.Numeric(precision=10, scale=2), nullable=False) invoice_id = db.Column(db.Integer, db.ForeignKey('invoice.invoice_id'), nullable=False)
class Passenger(db.Model): __tablename__ = "lab_Passengers" Id = db.Column(db.String(36), primary_key=True) first_name = db.Column(db.String(32)) last_name = db.Column(db.String(32)) patronymic = db.Column(db.String(32)) gender = db.Column(db.String(1)) birthdate = db.Column(db.Date) luggage = db.Column(db.String(36)) flight = db.Column(db.String(36)) #state = db.Column(db.String(40)) #db.Enum('Unknown', 'WaitForBus', 'InBus', 'WaitForAirplane', 'InAirplane', 'WaitForLuggage', 'Left')) # InBus => InBusToAirport & InBusToAirplane; WaitForBus => WaitForBusToAirport & WaitForBusToAirplane ? state = db.Column( db.Enum('InAirplane', 'LandingFromAirplaneToBus', 'InBus', 'LandingFromBusToGate', 'InGate', 'WaitForLuggage', 'Left', 'WaitForBus', 'BoardingToBusFromGate', 'BoardingFromBusToAirplane', 'FlewAway')) transport = db.Column( db.String(36)) # ID транспорта, в котором находиться пассажир direction = db.Column(db.Enum('Arriving', 'Departing')) def serialize(self, extended=False): if extended: return { 'id': self.Id, 'first_name': self.first_name, 'last_name': self.last_name, 'patronymic': self.patronymic, 'gender': self.gender, 'birthdate': self.birthdate, 'luggage': self.luggage, 'flight': self.flight, 'state': self.state, 'transport': self.transport, 'direction': self.direction } else: return { 'id': self.Id, 'first_name': self.first_name, 'luggage': self.luggage, 'flight': self.flight, 'state': self.state }
class InvoiceArticle(db.Model): article_id = db.Column(db.Integer, nullable=False, primary_key=True) article_code = db.Column(db.String(255), nullable=False) article = db.Column(db.String(255), nullable=False) description = db.Column(db.String(255), nullable=False) unit = db.Column(db.String(255), nullable=False) budgetitem_id = db.Column(db.String(4), nullable=False) productgroup = db.Column(db.String(255), nullable=False) mwst = db.Column(db.Numeric(precision=5, scale=2), nullable=False, default=0.00) unitprice = db.Column(db.Numeric(precision=8, scale=2), nullable=False, default=0.00)
class Customer(db.Model): customer_id = db.Column(db.Integer, nullable=False, primary_key=True) category = db.Column(db.String(255), nullable=False) company = db.Column(db.String(255), nullable=False) title = db.Column(db.String(255), nullable=False) first_name = db.Column(db.String(255), nullable=False) last_name = db.Column(db.String(255), nullable=False) address = db.Column(db.String(255), nullable=False) plz = db.Column(db.String(255), nullable=False) city = db.Column(db.String(255), nullable=False) country = db.Column(db.String(255), nullable=False) phone = db.Column(db.String(255), nullable=False) email = db.Column(db.String(255), nullable=False) quotation = db.Column(db.String(255), nullable=False)
class TransactionAccount(db.Model): account = db.Column(db.Integer, nullable = False, primary_key=True) account_name = db.Column(db.String(255), nullable = False)
class TransactionType(db.Model): type_id = db.Column(db.Integer, nullable= False, primary_key=True) type_class = db.Column(db.String(31), nullable= False) type_name = db.Column(db.String(31), nullable= False)
class TransactionCurrency(db.Model): currency_id = db.Column(db.Integer, nullable = False, primary_key=True) currency_name = db.Column(db.String(255), nullable = False) currency_shortcut = db.Column(db.String(3), nullable = False)
class TransactionCategory(db.Model): category = db.Column(db.Integer, nullable = False, primary_key=True) category_name = db.Column(db.String(255), nullable = False)
class Settings(db.Model): key = db.Column(db.String(63), nullable=False, primary_key=True) value = db.Column(db.String(255), nullable=False)
class MerchArticle(db.Model): article_id = db.Column(db.Integer, nullable=False, primary_key=True) article = db.Column(db.String(255), nullable=False) unitprice = db.Column(db.Numeric(precision=6, scale=2), nullable=False, default=0.00)
class Join(db.Model): __tablename__ = 'joins' #记录编号 id = db.Column(db.Integer, primary_key=True) #姓名 name = db.Column(db.String(64), unique=True, index=True) #电子邮件 email = db.Column(db.String(64), unique=True) #性别 sex = db.Column(db.String(64)) #班级 banji = db.Column(db.String(64)) #学校 school = db.Column(db.String(64)) #硬盘容量 disk = db.Column(db.String(64)) #手机号码 phone = db.Column(db.Integer) #荔香用户 lx_username = db.Column(db.String(64)) #应聘板块 block = db.Column(db.String(64)) #备选应聘 block_backup = db.Column(db.String(64)) #资源来源 source = db.Column(db.String(64)) #每日在线时间 uptime = db.Column(db.String(64)) #照片文件 photo = db.Column(db.String(64), unique=True)
class BudgetGroup(db.Model): budgetgroup_id = db.Column(db.Integer, nullable=False, primary_key=True) budgetgroup_name = db.Column(db.String(255), nullable=False)