class ConfigFilePost(Post): __tablename__ = "configfile_post" id = db.Column(db.Integer, db.ForeignKey('post.id'), primary_key=True) title = db.Column(db.String(150), nullable=False) configfile_id = db.Column(db.Integer, db.ForeignKey('configfile.id')) configfile = relationship("ConfigFile") __mapper_args__ = { 'polymorphic_identity': 'cfp', } def __repr__(self): return "ConfigFilePost(%s)" % (self.title) def __init__(self, title, configfile, *args, **kwargs): """ title : str configfile : Class user_id : int """ super().__init__(*args, **kwargs) self.title = title self.configfile = configfile self.configfile_id = configfile.id def jsonify(self): out = super().jsonify() out.update({ "title": self.title, "configfile": self.configfile.jsonify() }) return out
class WatchRecord(db.Model): __tablename__ = 'watch_record' id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), index = True) article_id = db.Column(db.Integer, db.ForeignKey('article.id'), index = True) create_time = db.Column(db.DateTime, default=datetime.utcnow, index = True) update_time = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, index = True)
class ExternalPrice(Common, db.Model): """公司/单位专价模型""" __tablename__ = 'external_price' id = db.Column(db.Integer, index=True, primary_key=True) product_id = db.Column(db.Integer, db.ForeignKey('product.id'), nullable=False) company_id = db.Column(db.Integer, db.ForeignKey('firm.id'), nullable=False) price = db.Column(db.DECIMAL(precision=9, decimal_return_scale=2), default=0.00, nullable=False, comment='产品单价') unit_id = db.Column(db.SMALLINT, db.ForeignKey('product_unit.id'), nullable=False, comment='产品单位ID') unit = db.relationship('ProductUnit', lazy='select') def __init__(self, product_id: int, company_id: int, price: float, unit_id: int): self.product_id = product_id self.company_id = company_id self.price = price self.unit_id = unit_id
class Surveyresponse(db.Model): surveyResponseID = db.Column(db.Integer, autoincrement=True, primary_key=True) surveyName = db.Column(db.String(100), nullable=True) surveyID = db.Column(db.Integer, db.ForeignKey('survey.surveyID'), nullable=False) studentID = db.Column(db.Integer, db.ForeignKey('user.userID'), nullable=False) user = db.relationship('User', backref='response_student') def __repr__(self): return f"SurveyResponse('{self.surveyResponseID}')" def get_response_id(self): return '{}'.format(self.surveyResponseID) def get_survey_id(self): return '{}'.format(self.surveyID) def get_survey_name(self): return '{}'.format(self.surveyName) def get_student_id(self): return '{}'.format(self.studentID)
class Follow(db.Model): id = db.Column(db.Integer, autoincrement=True, primary_key=True) init_id = db.Column(db.Integer, db.ForeignKey('user.id')) respond_id = db.Column(db.Integer, db.ForeignKey('user.id')) init = db.relationship('User', foreign_keys=[init_id]) respond = db.relationship('User', foreign_keys=[respond_id])
class ProFeedback(db.Model): feedbackID = db.Column(db.Integer, autoincrement=True, primary_key=True) surveyName = db.Column(db.String(64), nullable=False) dt_time = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) content = db.Column(db.String(500), nullable=False) userID = db.Column(db.Integer, db.ForeignKey('user.userID')) surveyID = db.Column(db.Integer, db.ForeignKey('survey.surveyID')) survey = db.relationship('Survey', backref='survey_feedback') def __repr__(self): return f"Feedback('{self.feedbackID}','{self.surveyName}')" def get_id(self): return '{}'.format(self.feedbackID) def get_survey_name(self): return '{}'.format(self.surveyName) def get_content(self): return '{}'.format(self.content) def get_date(self): return '{}'.format(self.dt_time) def get_user_id(self): return '{}'.format(self.userID) def get_survey_id(self): return '{}'.format(self.surveyID)
class Guia(db.Model): igui_id = db.Column(db.Integer, primary_key=True) dgui_fee = db.Column(db.DateTime) cgui_ser = db.Column(db.String(3)) cgui_num = db.Column(db.String(11)) icli_id = db.Column(db.Integer, db.ForeignKey("contacto.id")) contacto = db.relationship("Contacto", backref=db.backref('guia', lazy='dynamic')) tipo_id = db.Column(db.Integer, db.ForeignKey("guia_tipo.id")) tipo = db.relationship("GuiaTipo", backref=db.backref("guia", lazy="dynamic")) cia_id = db.Column(db.Integer, db.ForeignKey("cia.id")) cerrado = db.Column(db.Integer) vgui_est = db.Column(db.String(11)) def __repr__(self): return '<Guia %r-%r>' % (self.cgui_ser, self.cgui_num) def getNumero(self): if self.cerrado == 0: return "EN PROCESO" else: return '%s-%s' % (self.cgui_ser, self.cgui_num) def getFecha(self): return self.dgui_fee.strftime('%d-%m-%Y') def isAnulado(self): return "N" if self.vgui_est == "GENERADO" else "S"
class Producto(db.Model): id = db.Column(db.Integer, primary_key=True) serie = db.Column(db.String(255), unique=True) familia_id = db.Column(db.Integer, db.ForeignKey("familia.id")) familia = db.relationship("Familia", backref=db.backref("producto", lazy="dynamic")) marca_id = db.Column(db.Integer, db.ForeignKey("marca.id")) marca = db.relationship("Marca", backref=db.backref("producto", lazy="dynamic")) modelo_id = db.Column(db.Integer, db.ForeignKey("modelo.id")) modelo = db.relationship("Modelo", backref=db.backref("producto", lazy="dynamic")) tipo_id = db.Column(db.Integer, db.ForeignKey("tipo_producto.id")) tipo = db.relationship("TipoProducto", backref=db.backref("producto", lazy="dynamic")) guia_id = db.Column(db.Integer, db.ForeignKey("guia.igui_id")) guia = db.relationship("Guia", backref=db.backref("producto", lazy="dynamic")) producto_id = db.Column(db.Integer) #producto_id = db.Column(db.Integer, db.ForeignKey("producto.id")) #producto = db.relationship("Producto", backref=db.backref("producto", lazy="dynamic")) capacidad = db.Column(db.String(255)) def __repr__(self): return "<Producto %r>" % self.serie
class OrderForm(Common, db.Model): """订单模型""" __tablename__ = 'order_form' id = db.Column(db.Integer, index=True, primary_key=True) person_id = db.Column(db.Integer, db.ForeignKey('people.id'), nullable=False, comment='订单目标对象') product_id = db.Column(db.Integer, db.ForeignKey('product.id'), nullable=False, comment='产品编号') price = db.Column(db.DECIMAL(precision=9, decimal_return_scale=2), default=0.0, comment='订单价格') quantity = db.Column(db.DECIMAL(precision=9, decimal_return_scale=2), default=0.0, comment='订单数量') order_id = db.Column(db.Integer, db.ForeignKey('order.id'), nullable=False, comment='订单备注编号') unit_id = db.Column(db.SMALLINT, db.ForeignKey('product_unit.id'), nullable=False, comment='产品单位ID') real_quantity = db.Column(db.DECIMAL(9, 2), nullable=False, comment='实际发货数量') unit = db.relationship('ProductUnit', lazy='select') def __init__(self, person_id: int, product_id: int, price: float, quantity: float, order_id: int, unit_id: int, real_quantity: float = None): self.person_id = person_id self.product_id = product_id self.price = price self.quantity = quantity self.order_id = order_id self.unit_id = unit_id self.real_quantity = self._init_real_quantity(real_quantity) def _init_real_quantity(self, quantity): """实际数量初始化设定""" try: quantity = float(quantity) except TypeError: return self.quantity except ValueError: return self.quantity else: return quantity
class Comment(db.Model): __tablename__ = 'comment' id = db.Column(db.Integer, primary_key=True) content = db.Column(db.String(255)) article_id = db.Column(db.Integer, db.ForeignKey('article.id'), index = True) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), index = True) create_time = db.Column(db.DateTime, default=datetime.utcnow, index = True) update_time = db.Column(db.DateTime, default=datetime.utcnow,onupdate=datetime.utcnow, index = True)
class Ratings(db.Model): user_id = db.Column(db.Integer, db.ForeignKey('user.id'), primary_key=True) joke_id = db.Column(db.Integer, db.ForeignKey('joke.id'), primary_key=True) rating = db.Column(db.String(50)) created_at = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) user = db.relationship("User", back_populates="jokes") joke = db.relationship("Joke", back_populates="users")
class Show(db.Model): __tablename__ = 'Show' id = db.Column(db.Integer, primary_key=True) artist_id = db.Column(db.Integer, db.ForeignKey('Artist.id')) venue_id = db.Column(db.Integer, db.ForeignKey('Venue.id')) time = db.Column(db.DateTime) def __repr__(self): return f'''<Show id={self.id}
class Show(db.Model): __tablename__ = 'Show' id = db.Column(db.Integer, primary_key=True) artist_id = db.Column(db.Integer, db.ForeignKey('Artist.id'), nullable=False) venue_id = db.Column(db.Integer, db.ForeignKey('Venue.id'), nullable=False) start_time = db.Column(db.DateTime())
class Lesson(db.Model): id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) level_id = db.Column(db.Integer, db.ForeignKey('level.id')) subject_id = db.Column(db.Integer, db.ForeignKey('subject.id')) dateTime = db.Column(db.DateTime) paid = db.Column(db.Boolean, default=False) def __repr__(self): return '<Lesson %r>' % self.id
class Follow(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) follower_id = db.Column(db.Integer, db.ForeignKey('user.id')) follower = db.relationship('User', primaryjoin=follower_id == User.id) followee_id = db.Column(db.Integer, db.ForeignKey('user.id')) followee = db.relationship('User', primaryjoin=followee_id == User.id) def __init__(self, follower_id, followee_id): self.follower_id = follower_id self.followee_id = followee_id
class ConfigFileView(db.Model): __tablename__ = "configfile_view" id = db.Column(db.Integer, primary_key=True) timestamp = db.Column(db.Integer, default=int(time.time())) configfile_id = db.Column(db.Integer, db.ForeignKey('configfile.id')) user_id = db.Column(db.Integer, db.ForeignKey('general_user.id')) def __init__(self, user_id, configfile_id): self.configfile_id = configfile_id self.user_id = user_id def jsonify(self): return {"timestamp": self.timestamp}
class Transaction(ExportableMixin, db.Model): id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) product_id = db.Column(db.Integer, db.ForeignKey('product.id')) amount = db.Column(db.Float, nullable=False) date = db.Column(db.DateTime, default=db.func.now()) cancelled = db.Column(db.Boolean, default=False, nullable=False) fulfilled = db.Column(db.Boolean, default=False, nullable=False) def __repr__(self): if (self.product_id): return '<Transaction: P{} by U{} for € {}>'.format( self.product_id, self.user_id, self.amount) return '<Deposit by U{} for € {}>'.format(self.user_id, self.amount)
class DetalleCompra(db.Model): idco_id = db.Column(db.Integer, primary_key=True) icom_id = db.Column(db.Integer, db.ForeignKey("compra.icom_id")) compra = db.relationship("Compra", backref=db.backref("detalle_compra", lazy="joined")) iins_id = db.Column(db.Integer, db.ForeignKey("producto.id")) producto = db.relationship("Producto", backref=db.backref("detalle_compra", lazy="joined")) def __repr__(self): return '<DetalleCompra %r>' % self.idco_id
class Article(db.Model): __tablename__ = 'article' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(64), index = True) content = db.Column(db.Text(length=(2**31)-1)) description = db.Column(db.Text(length=(2**31)-1)) tag_id = db.Column(db.Integer, db.ForeignKey('article_tag.id'), index = True) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), index = True) create_time = db.Column(db.DateTime, default=datetime.utcnow, index = True) update_time = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, index = True) avatar_image = db.Column(db.String(64), index = True) like_num = db.Column(db.Integer, default = 0) watch_num = db.Column(db.Integer, default = 0) comment = db.relationship('Comment', cascade = 'delete')
class GuiaSalidaDetalle(db.Model): id = db.Column(db.Integer, primary_key=True) guia_id = db.Column(db.Integer, db.ForeignKey("guia.igui_id")) guia = db.relationship("Guia", backref=db.backref('guia_salida_detalle', lazy='dynamic')) producto_id = db.Column(db.Integer, db.ForeignKey("producto.id")) producto = db.relationship("Producto", backref=db.backref('guia_salida_detalle', lazy='dynamic')) cantidad = db.Column(db.Integer) def __repr__(self): return '<GuiaSalidaDetalle %r>' % (self.id)
class Questionresponse(db.Model): questionResponseID = db.Column(db.Integer, autoincrement=True, primary_key=True) type = db.Column(db.String(10), nullable=False) content = db.Column(db.String(300), nullable=False) author_id = db.Column(db.Integer, nullable=False) author_name = db.Column(db.String(20), nullable=False) student_ID = db.Column(db.Integer, db.ForeignKey('user.userID'), nullable=False) questionID = db.Column(db.Integer, db.ForeignKey('question.questionID'), nullable=False) surveyResponseID = db.Column( db.Integer, db.ForeignKey('surveyresponse.surveyResponseID'), nullable=False) surveyresponse = db.relationship('Surveyresponse', backref='question_response') def __repr__(self): return f"Questionresponse('{self.questionResponseID}','{self.type}','{self.content}')" def get_id(self): return '{}'.format(self.questionResponseID) def get_student_id(self): return '{}'.format(self.student_ID) def get_author_name(self): return '{}'.format(self.author_name) def get_author_id(self): return '{}'.format(self.author_id) def get_survey_response_id(self): return '{}'.format(self.surveyResponseID) def get_question_id(self): return '{}'.format(self.questionID) def get_type(self): return '{}'.format(self.type) def get_content(self): return '{}'.format(self.content) def get_content(self): return '{}'.format(self.content)
class Article(db.Model): id = db.Column(db.Integer, primary_key=True) file = db.Column(db.Integer, db.ForeignKey('file.id')) name = db.Column(db.String(64), index=True) stat = db.Column(db.Integer, db.ForeignKey('status.id')) timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow) def add_article(file_id, article_name): ... def change_status(self, status_id): ... def __repr__(self): return '<Article {}>'.format(self.name)
class ForumPost(db.Model): """ This class corresponds to the database model for a ForumPost object. A high level interface that allows more efficient interactions with the relational database. """ __tablename__ = 'ForumPosts' id = db.Column(db.Integer, primary_key=True) author_username = db.Column(db.String(64), db.ForeignKey('Users.username')) forum_question_id = db.Column(db.Integer, db.ForeignKey('ForumQuestions.id')) content = db.Column(db.Text()) post_time = db.Column(db.DateTime, index=True, default=datetime.utcnow) def __repr__(self): return '<ForumPost {}>'.format(self.id)
class Answers(db.Model): id = db.Column(db.Integer, primary_key=True) question_id = db.Column(db.Integer, db.ForeignKey('questions.id')) username = db.Column(db.String(64), db.ForeignKey('users.username')) answer = db.Column(db.String(120)) time = db.Column(db.String(32)) is_correct = db.Column(db.Boolean) user_scored = db.Column(db.Integer) status = db.Column(db.Enum('Active', 'Archived'), nullable=False, server_default='Active') def __repr__(self): return '<id: {}, question_id: {}, user_id: {}, text: {}>'.format( self.id, self.question_id, self.user_id, self.text)
class UserRule(db.Model): __tablename__ = 'user_rules' id = db.Column(db.Integer, primary_key=True) calc_type = db.Column(db.String(80)) rule_id = db.Column(db.String(120)) rule_summary = db.Column(db.String(120)) digits = db.Column(db.String(120)) count_of_numbers = db.Column(db.String(120)) last_updated_on = db.Column(db.String(120)) # user_id = db.Column(db.String(120)) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) # user = db.relationship('User', backref=db.backref('user_set', lazy='dynamic')) def __init__(self, calc_type, rule_id, rule_summary, digits, count_of_numbers, last_updated_on, user_id): self.calc_type = calc_type self.rule_id = rule_id self.rule_summary = rule_summary self.digits = digits self.count_of_numbers = count_of_numbers self.last_updated_on = last_updated_on self.user_id = user_id def as_dict(self): return { col.name: getattr(self, col.name) for col in self.__table__.columns }
class Path(PkModel): __tablename__ = "paths" slug = db.Column(db.String(200), nullable=False) title = db.Column(db.String(200), nullable=False) sections = db.relationship("Section", backref="section_path", lazy=True, cascade="all, delete-orphan") user_id = db.Column(db.Integer, db.ForeignKey("users.id"), nullable=False) is_visible = db.Column(db.Boolean, default=True) like_list = db.relationship("LikeList", backref="like_list_path", lazy=True, uselist=False) bookmark_list = db.relationship("BookmarkList", backref="bookmark_list_path", lazy=True, uselist=False) def get_url(self): return url_for("www.path", username=self.path_user.username, path_slug=self.slug)
class Article(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100), nullable=False) intro = db.Column(db.String(300), nullable=False) text = db.Column(db.Text, nullable=False) date = db.Column(db.DateTime, default=datetime.utcnow) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
class Survey(db.Model): surveyID = db.Column(db.Integer, autoincrement=True, primary_key=True) instructorName = db.Column(db.String(64), nullable=False) name = db.Column(db.String(64), nullable=False) date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) instructorID = db.Column(db.Integer, db.ForeignKey('instructor.instructorID'), nullable=False) instructor = db.relationship('Instructor', backref='survey_instructor') def __repr__(self): return f"Survey('{self.instructorName}','{self.name})'" def get_id(self): return '{}'.format(self.surveyID) def get_instructor(self): return '{}'.format(self.instructorName) def get_name(self): return '{}'.format(self.name) def get_date(self): return '{}'.format(self.date)
class Optionresponse(db.Model): optionResponseID = db.Column(db.Integer, autoincrement=True, primary_key=True) content = db.Column(db.Integer, nullable=False) author_id = db.Column(db.Integer, nullable=False) author_name = db.Column(db.String(20), nullable=False) questionResponseID = db.Column( db.Integer, db.ForeignKey('questionresponse.questionResponseID'), nullable=False) questionresponse = db.relationship('Questionresponse', backref='question_response') def __repr__(self): return f"Optionresponse('{self.optionResponseID}','{self.content}')" def get_id(self): return '{}'.format(self.optionResponseID) def get_content(self): return '{}'.format(self.content) def get_author_name(self): return '{}'.format(self.author_name) def get_author_id(self): return '{}'.format(self.author_id) def get_question_response_id(self): return '{}'.format(self.questionResponseID)
class Question(db.Model): questionID = db.Column(db.Integer, autoincrement=True, primary_key=True) label = db.Column(db.String(64)) type = db.Column(db.String(10), nullable=False) repetition = db.Column(db.String(15)) content = db.Column(db.String(300), nullable=True) surveyID = db.Column(db.Integer, db.ForeignKey('survey.surveyID'), nullable=False) survey = db.relationship('Survey', backref='survey_questions') def __repr__(self): return f"Question('{self.questionID}','{self.type}','{self.repetition}','{self.content}','{self.surveyID}')" def get_id(self): return '{}'.format(self.questionID) def get_survey_id(self): return '{}'.format(self.surveyID) def get_label(self): return '{}'.format(self.label) def get_type(self): return '{}'.format(self.type) def get_repetition(self): return '{}'.format(self.repetition) def get_content(self): return '{}'.format(self.content)