class Item(db.Model): __tablename__ = 'Item' __table_args__ = { 'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8', 'extend_existing': True } id = db.Column(BIGINT(20, unsigned=True), primary_key=True, index=True) # 이미지 추가 name = db.Column(VARCHAR(128)) price = db.Column(INTEGER(10)) categoryId = db.Column(BIGINT(20, unsigned=True), ForeignKey("Category.id")) categoryRow = relationship("Category", lazy="joined")
class Permission(db.Model, OutputMixin): """权限""" __tablename__ = 'permission' __table_args__ = {'mysql_collate': 'utf8mb4_general_ci'} id = Column(INTEGER(unsigned=True), primary_key=True) name = Column(VARCHAR(30), unique=True) roles = relationship('Role', secondary=role_has_permissions, back_populates='permissions') def __repr__(self): return "Permission<%s %s>" % (self.id, self.name) def to_json(self, rel=None): return { 'id': self.id, 'name': self.name, }
class PromoterStatistic(db.Model): __tablename__ = 'promoter_statistics' id = Column(String(36), primary_key=True) user_id = Column(String(36), comment='用户 id') role_type = Column(TINYINT(4), comment='角色类型 1 为推广商 2 位推广经理') daily_trading_volume = Column(DECIMAL(16, 2), comment='日交易量') monthly_transaction_volume = Column(DECIMAL(16, 2), comment='月交易量') total_transaction_volume = Column(DECIMAL(16, 2), comment='总交易量') daily_total_commission = Column(DECIMAL(16, 2), comment='日的总佣金') brokerage_cost_per_day = Column(DECIMAL(16, 2), comment='日的券商成本') daily_remaining_commission = Column(DECIMAL(16, 2), comment='日的剩余佣金') total_monthly_commission = Column(DECIMAL(16, 2), comment='月的总佣金') brokerage_cost_per_month = Column(DECIMAL(16, 2), comment='月的券商成本') months_remaining_commission = Column(DECIMAL(16, 2), comment='月的剩余佣金') total_total_commission = Column(DECIMAL(16, 2), comment='总的总佣金') total_brokerage_cost = Column(DECIMAL(16, 2), comment='总的券商成本') total_remaining_commission = Column(DECIMAL(16, 2), comment='总的剩余佣金') create_time = Column(BIGINT(20), comment='创建时间') creation_time_int = Column(INTEGER(11), comment='创建时间 yyMMdd')
class Policy(Base, DictBase): __tablename__ = 'policy' attributes = [ 'id', 'name', 'description', 'enabled', 'rules', 'created_by', 'created_time', 'updated_by', 'updated_time' ] detail_attributes = attributes summary_attributes = ['id', 'name', 'description', 'enabled', 'rules'] id = Column(INTEGER(11), primary_key=True) name = Column(String(36), nullable=False) description = Column(String(63), server_default=text("''"), nullable=True) enabled = Column(TINYINT(4), nullable=False) created_by = Column(String(36), nullable=True) created_time = Column(DateTime, nullable=True) updated_by = Column(String(36), nullable=True) updated_time = Column(DateTime, nullable=True) rules = relationship("Rule", secondary="policy_rule", lazy='subquery')
class MpClientTasks(CommonBase): __tablename__ = 'mp_client_tasks' rid = Column(BigInteger, primary_key=True, autoincrement=True) group_id = Column(String(50), nullable=False, index=True, unique=False) id = Column(INTEGER(4, unsigned=True), info="Task ID") name = Column(String(255), nullable=False, info="Name") cmd = Column(String(255), nullable=False, info="Command") description = Column(String(255), nullable=False, info="Description") active = Column(String(255), nullable=False, info="Active", server_default='1') startdate = Column(String(255), nullable=False, info="Start Date", server_default='2016-01-01') enddate = Column(String(255), nullable=False, info="End Date", server_default='2050-01-01') interval = Column(String(255), nullable=False, info="Interval") idrev = Column(String(255), nullable=False, info="Task Revision", server_default='1') parent = Column(String(255), nullable=False, info="Parent", server_default='0') scope = Column(String(255), nullable=False, info="Scope", server_default='Global') cmdalt = Column(String(255), nullable=False, info="Alt Command", server_default='0') mode = Column(String(255), nullable=False, info="Mode", server_default='0') idsig = Column(String(255), nullable=False, info="Signature", server_default='0')
class M_MediaDetails(Base): __tablename__ = 'mediadetails' Media_ID = Column(INTEGER, primary_key=True, index=True, autoincrement=True) Media_Name = Column(VARCHAR(200), nullable=True) Media_SerialNo = Column(VARCHAR(10), nullable=True) Nation_Name = Column(VARCHAR(200), nullable=True) Language_Name = Column(VARCHAR(200), nullable=True) Actor_Name1 = Column(VARCHAR(200), nullable=True) Actor_Name2 = Column(VARCHAR(200), nullable=True) Actor_Name3 = Column(VARCHAR(200), nullable=True) Actor_Name4 = Column(VARCHAR(200), nullable=True) Director_Name1 = Column(VARCHAR(200), nullable=True) Director_Name2 = Column(VARCHAR(200), nullable=True) MediaType_Name1 = Column(VARCHAR(200), nullable=True) MediaType_Name2 = Column(VARCHAR(200), nullable=True) MediaType_Name3 = Column(VARCHAR(200), nullable=True) Carrier_Name = Column(VARCHAR(200), nullable=True) Audio_Name = Column(VARCHAR(200), nullable=True) MediaManage_OrderCount = Column(INTEGER(11), nullable=True)
class solid(Base): __tablename__ = 'solid' crystal_form = Column(String(45)) chemical_formula = Column(String(45)) solid_ID = Column(INTEGER(6), primary_key=True, unique=True, autoincrement=True, default=0, info={'colanderalchemy': { 'exclude': True }}) state_of_sample_ID = Column( Integer, ForeignKey('state_of_sample.state_of_sample_ID'), info={'colanderalchemy': { 'exclude': True }})
class CobraLanguages(db.Model): """ Languages for files """ __tablename__ = 'languages' __table_args__ = ({"mysql_charset": "utf8mb4"}) id = db.Column(INTEGER(unsigned=True), primary_key=True, autoincrement=True, nullable=False) language = db.Column(db.String(11), nullable=False, index=True) extensions = db.Column(db.String(128), nullable=False, default=None) def __init__(self, language, extensions): self.language = language self.extensions = extensions def __repr__(self): return "<CobraLanguage %r - %r>" % (self.id, self.language)
class San_pham(Base): __tablename__ = 'san_pham' ma_san_pham = Column(String(50), nullable=False, unique=True, primary_key=True) ten_san_pham = Column(String(100), nullable=False) ma_loai = Column(Integer, nullable=False) noi_dung_tom_tat = Column(String(255), nullable=False) #mo_ta_chi_tiet nullable =True mo_ta_chi_tiet = Column(String(1000)) don_gia = Column(Integer, nullable=False) DVT = Column(String(20), nullable=False) tinh_trang = Column(String(100), nullable=False, default='Đang demo, chưa có hàng') hinh = Column(String(200)) so_luong_ton = Column(Integer, nullable=True) don_gia_nhap = Column(Integer, nullable=True) san_pham_moi = Column(INTEGER(4), nullable=False, default=0)
class Contact(db.Model): __tablename__ = 'contacts' id = Column(INTEGER(11), primary_key=True) data = Column(String(45)) typeContact_id = Column(ForeignKey('typecontact.id'), nullable=False, index=True) Persons_id = Column(ForeignKey('persons.id'), nullable=False, index=True) Persons = relationship('Person') typeContact = relationship('Typecontact') def serialize(self): return { "id": self.id, "data": self.data, "typeContact_id": self.typeContact_id, "Persons_id": self.Persons_id, }
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 QiLabelParagraph(Base): __tablename__ = 'qi_label_paragraph' insert_time = Column(INTEGER(11)) call_id = Column(String(50)) is_deleted = Column(SMALLINT(6), server_default=text("'0'")) id = Column(INTEGER(11), primary_key=True) paragraph_id = Column(VARCHAR(50), index=True) task_id = Column(VARCHAR(50), index=True) order_number = Column(INTEGER(11)) start_time = Column(INTEGER(8)) end_time = Column(INTEGER(8)) duration = Column(INTEGER(11)) text = Column(String(1024)) role = Column(SMALLINT(6), index=True)
class Page(db.Model): __tablename__ = 'pages' page_id = Column(BIGINT(20), primary_key=True) notebook_id = Column(ForeignKey('notebooks.notebook_id'), nullable=False, index=True) position = Column(INTEGER(11), nullable=False) title = Column(String(80)) content = Column(LONGTEXT) notebook = relationship('Notebook') @classmethod def find_by_id(cls, id: int): return cls.query.filter_by(page_id=id).first() def save_to_db(self): if not self.position: count = self.query.filter_by( notebook_id=self.notebook_id).count() + 1 self.position = count db.session.add(self) db.session.commit() def delete_from_db(self): pages = self.query.filter(Page.position > self.position).all() for page in pages: page.position -= 1 page.save_to_db() db.session.delete(self) db.session.commit() @classmethod def find_all(cls): return cls.query.all() @classmethod def find_all_pages_of_notebook(cls, id: int): return cls.query.filter_by(notebook_id=id).all()
class RawFlightSegment(Base, DBModel): __tablename__ = 'RawFlightSegments' rawFlightSegmentsId = Column(String(100), primary_key=True) segId = Column(String(100)) originStation = Column(String(100)) destinationStation = Column(String(100)) departureDatetime = Column(DateTime) arrivalDatetime = Column(DateTime) carrier = Column(String(100)) operatingCarrier = Column(String(100)) duration = Column(INTEGER(11)) flightNumber = Column(String(100)) journeyMode = Column(String(100)) directionality = Column(String(100)) writeDate = Column(DateTime) apiCallId = Column(String(100)) def __init__(self, Id, OriginStation, Directionality, DestinationStation, DepartureDateTime, ArrivalDateTime, Duration, JourneyMode, Carrier, OperatingCarrier, FlightNumber, apiCallId): # prefix는 table명 첫글자 소문자화 self.prefix = self.__tablename__[0].lower() + self.__tablename__[1:] self.rawFlightSegmentsId = self.makeId(self.prefix) self.segId = str(Id) self.originStation = str(OriginStation) self.destinationStation = str(DestinationStation) self.departureDatetime = datetime.strptime(DepartureDateTime, '%Y-%m-%dT%H:%M:%S') self.arrivalDatetime = datetime.strptime(ArrivalDateTime, '%Y-%m-%dT%H:%M:%S') self.duration = int(Duration) self.journeyMode = str(JourneyMode) self.carrier = str(Carrier) self.operatingCarrier = str(OperatingCarrier) self.flightNumber = str(FlightNumber) self.directionality = str(Directionality) self.writeDate = datetime.now() self.apiCallId = apiCallId
class NewSchedulesStatic(Base): __tablename__ = 'new_schedules_static' ID = Column(CHAR(40), primary_key=True, index=True) SCAC = Column(String(25), index=True, comment='船公司4字码') ROUTE_PARENT = Column(String(255), comment='服务父航线名称') ROUTE_NAME_EN = Column(String(255), comment='服务子航线名称') ROUTE_CODE = Column(String(250), index=True, comment='航线code') FLAG = Column(String(255), comment='类型,0:系统;1:动态生成;2:人工;3:手动添加') DEL_FLAG = Column(INTEGER(2), server_default=text("'0'"), comment='删除标识0不删除1删除') CREATE_TIME = Column(TIMESTAMP, nullable=False, server_default=text("CURRENT_TIMESTAMP"), comment='创建时间') UPDATE_TIME = Column( TIMESTAMP, nullable=False, server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"), comment='更新时间')
class Resource(DbBase): ''' 资源表,一个资源可以有多个标签 ''' __tablename__ = 'resource' attributes = ['id', 'name', 'desc', 'tags', 'user_id', 'user', 'region_id', 'region'] detail_attributes = attributes summary_attributes = ['name', 'desc'] id = Column(INTEGER(11), primary_key=True, autoincrement=True) name = Column(String(255), nullable=False) desc = Column(String(255), nullable=True) user_id = Column(ForeignKey(u'user.id'), nullable=True) region_id = Column(ForeignKey(u'region.id'), nullable=True) user = relationship(u'User') region = relationship(u'Region') tags = relationship(u'Tag', primaryjoin='foreign(Resource.id) == Tag.res_id', lazy=False, viewonly=True, uselist=True) def __repr__(self): return "<Resource(id={},name={},user={},region={},tags={})>".format(self.id,self.name,self.user,self.region,self.tags)
class CobraVuls(db.Model): __tablename__ = 'vuls' id = db.Column(INTEGER(unsigned=True), primary_key=True, autoincrement=True, nullable=False) name = db.Column(db.String(56), nullable=True, default=None) description = db.Column(db.String(512), nullable=True, default=None) repair = db.Column(db.String(512), nullable=True, default=None) created_at = db.Column(db.DateTime, nullable=True, default=None) updated_at = db.Column(db.DateTime, nullable=True, default=None) def __init__(self, name, description, repair, created_at, updated_at): self.name = name self.description = description self.repair = repair self.created_at = created_at self.updated_at = updated_at def __repr__(self): return "<CobraVuls %r - %r>" % (self.id, self.name)
class MenuItem(Base): __tablename__ = 'menu' id = Column(INTEGER(11), primary_key=True) description = Column( VARCHAR(256)) # rationale behind menu desc being null by default? price = Column(DECIMAL(precision=10, scale=2, unsigned=True, zerofill=True), nullable=False) category = Column(VARCHAR(10), nullable=False) def __init__(self, description='New Item', price=0, category='Food', cost=0): self.description = description self.price = price self.category = category def __repr__(self): return '<Menu Item %r>' % (self.description)
class Order(Base): __tablename__ = 'orders' OrderID = Column(INTEGER(11), primary_key=True) CustomerID = Column(ForeignKey('customers.CustomerID'), index=True) EmployeeID = Column(ForeignKey('employees.EmployeeID'), index=True) OrderDate = Column(DateTime, index=True) RequiredDate = Column(DateTime) ShippedDate = Column(DateTime, index=True) ShipVia = Column(ForeignKey('shippers.ShipperID'), index=True) Freight = Column(DECIMAL(10, 4)) ShipName = Column(String(40)) ShipAddress = Column(String(60)) ShipCity = Column(String(15)) ShipRegion = Column(String(15)) ShipPostalCode = Column(String(10), index=True) ShipCountry = Column(String(15)) customer = relationship('Customer') employee = relationship('Employee') shipper = relationship('Shipper')
class SysUser(db.Model): __tablename__ = 'sys_user' USER_ID = Column(BIGINT(20), primary_key=True) AVATAR = Column(String(255)) ACCOUNT = Column(String(45)) PASSWORD = Column(String(45)) SALT = Column(String(45)) NAME = Column(String(45)) BIRTHDAY = Column(DateTime) SEX = Column(String(32)) EMAIL = Column(String(45)) PHONE = Column(String(45)) ROLE_ID = Column(String(255)) DEPT_ID = Column(BIGINT(20)) STATUS = Column(String(32)) CREATE_TIME = Column(DateTime) CREATE_USER = Column(BIGINT(20)) UPDATE_TIME = Column(DateTime) UPDATE_USER = Column(BIGINT(20)) VERSION = Column(INTEGER(11))
class CompanyCategories(BASE): """Class defining the mdl_companycategories table of the database.""" __tablename__ = 'mdl_companycategories' __table_args__ = ({'mysql_engine': 'InnoDB'}) idx_companycategory = Column(BIGINT(unsigned=True), primary_key=True, autoincrement=True, nullable=False) companycategory_name = Column(VARBINARY(128), nullable=True, default=None) enabled = Column(INTEGER(unsigned=True), server_default='1') ts_modified = Column( DATETIME, server_default=text('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'), ) ts_created = Column(DATETIME, server_default=text('CURRENT_TIMESTAMP'))
class HomeCu(Base): __tablename__ = 'home_cus' cID = Column(ForeignKey('customer.cID'), primary_key=True) fname = Column(String(20), nullable=False) lname = Column(String(20), nullable=False) age = Column(String(10)) marriage = Column(INTEGER(11)) remain = Column(DECIMAL(18, 2), nullable=False) customer = relationship('Customer') def to_json(self): return { 'cID': self.cID, 'fname': self.fname, 'lname': self.lname, 'age': self.age, 'marriage': self.marriage, 'remain': self.remain }
class SmsVerifyCode(Base): __tablename__ = 'sms_verify_code' id = Column(BIGINT(20), primary_key=True, comment='主键') mobile = Column(DECIMAL(11, 0)) code = Column(String(255)) active = Column(TINYINT(1), nullable=False, server_default=text("'1'"), comment='对应该条记录是否可用,1可用,0不可用') version = Column(INTEGER(20), nullable=False, server_default=text("'0'"), comment='对应乐观锁的版本号') gmt_create = Column(DateTime, nullable=False, comment='对应记录的创建时间') gmt_modified = Column(DateTime, nullable=False, server_default=text("CURRENT_TIMESTAMP"), comment='对应记录的修改时间') create_by = Column(String(250), nullable=False, comment='对应添加记录的人') modified_by = Column(String(250), nullable=False, comment='对应最后一次修改记录的')
class SysFile(BaseModel): __tablename__ = 'sys_file' org_name = Column('org_name', String(255), doc='原始文件名') file_name = Column('file_name', String(255), nullable=False, doc='文件名') file_path = Column('file_path', String(255), doc='文件路径') file_url = Column('file_url', String(255), doc='文件URL') file_type = Column('file_type', Integer(), default=0, doc='文件类型:目前无业务需求,默认为0') operator_id = Column('operator_id', INTEGER(unsigned=True), default=None, doc='上传用户的Id') def upload(self): pass def download(self): pass
class RequestLog(db.Model): __tablename__ = 'request_log' STATUS_ON = 1 STATUS_OFF = 0 id = Column(BIGINT(20), primary_key=True, comment='主键') account_id = Column(INTEGER(10), nullable=False, index=True, server_default=text("'0'"), comment='账户ID') send_mail = Column(String(255), nullable=False, comment='接收方账号') create_at = Column(DateTime, nullable=False, comment='创建时间') status = Column(TINYINT(3), nullable=False, server_default=text("'0'"), comment='状态码') @staticmethod def push(account_id: int, send_mail: str): instance = RequestLog() instance.account_id = account_id instance.send_mail = send_mail instance.create_at = datetime.now() instance.status = RequestLog.STATUS_ON db.session.add(instance) db.session.commit()
class AgentNames(BASE): """Class defining the mdl_agent table of the database.""" __tablename__ = 'mdl_agentnames' __table_args__ = {'mysql_engine': 'InnoDB'} idx_agentname = Column(BIGINT(unsigned=True), primary_key=True, autoincrement=True, nullable=False) agent_name = Column(VARBINARY(512), nullable=True, default=None) enabled = Column(INTEGER(unsigned=True), server_default='1') ts_modified = Column( DATETIME, server_default=text('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'), ) ts_created = Column(DATETIME, server_default=text('CURRENT_TIMESTAMP'))
class SearchKeyword(Base): __tablename__ = 'search_keyword' id = Column(BIGINT(20), primary_key=True, comment='主键') product_Id = Column(BIGINT(20)) keyword = Column(String(255)) active = Column(TINYINT(1), nullable=False, server_default=text("'1'"), comment='对应该条记录是否可用,1可用,0不可用') version = Column(INTEGER(20), nullable=False, server_default=text("'0'"), comment='对应乐观锁的版本号') gmt_create = Column(DateTime, nullable=False, comment='对应记录的创建时间') gmt_modified = Column(DateTime, nullable=False, server_default=text("CURRENT_TIMESTAMP"), comment='对应记录的修改时间') create_by = Column(String(250), nullable=False, comment='对应添加记录的人') modified_by = Column(String(250), nullable=False, comment='对应最后一次修改记录的')
class Club(Base): __tablename__ = 'clubs' id = Column(INTEGER(11), primary_key=True) owner_id = Column(ForeignKey('users.id', ondelete='SET NULL', onupdate='CASCADE'), index=True) handle = Column(String(64, 'utf8mb4_unicode_ci'), nullable=False, unique=True) description = Column(String(2048, 'utf8mb4_unicode_ci')) deleted = Column(TINYINT(1), nullable=False, index=True, server_default=text("0")) created_at = Column(DateTime, server_default=text("current_timestamp()")) updated_at = Column(DateTime) owner = relationship('User') users = relationship('User', secondary='club_user_link')
class Ressource(Base): __tablename__ = 'ressources' id_res = Column(INTEGER(11), primary_key=True) title_res = Column(String(100), nullable=False) status_res = Column(Enum('Validated', 'Refused', 'Pending')) acces_res = Column(TINYINT(1)) created_at_res = Column(Date, nullable=False) content_res = Column(String(255)) source_res = Column(String(50), nullable=False) updated_at_res = Column(Date) deleted_at_res = Column(Date) difficulty = Column(Enum('1', '2', '3')) id_user = Column(ForeignKey('users.id_user', ondelete='CASCADE', onupdate='CASCADE'), nullable=False, index=True) id_type_res = Column(ForeignKey('type_ressources.id_type_res', ondelete='CASCADE', onupdate='CASCADE'), nullable=False, index=True) type_ressource = relationship('TypeRessource') user = relationship('User') caracterise = relationship('Caracterise', primaryjoin='Ressource.id_res==Caracterise.id_res', lazy='joined') valable = relationship('EstValable', primaryjoin='Ressource.id_res==EstValable.id_res', lazy='joined') consulter = relationship('Consulter', primaryjoin='Consulter.id_res==Ressource.id_res', lazy='joined')
class Tag(db.Model): __tablename__ = 'tags' id = db.Column(INTEGER(unsigned=True), primary_key=True) tag_name = db.Column(db.String(20),unique=True) # 多对多关系: 把secondary参数设为关联表 users = db.relationship('User', secondary=tag_user, backref=db.backref('tags',lazy='dynamic'), lazy = 'dynamic') # lazy = 'dynamic' :关系两侧返回的查询都可接受额外的过滤器 # 多对多关系 # 新建关系 # tag.users.append(xxx) # db.session.add(tag) # 列出tag的所有user: tag.users.all() # 列出user的所有tgas: user.tags.all() # 删除关系 tag.users.remove(user) def __repr__(self): return '<Tag: %r>' % (self.tag_name)