class PropertyImage(db.Model): __tablename__ = "propertyimage" id = db.Column(db.Integer, primary_key=True) property_id = db.Column(db.Integer, unique=True, nullable=True) grid_overview = db.Column(db.VARCHAR(100), nullable=True) grid_gallery = db.Column(db.VARCHAR(100), nullable=True) grid_contact = db.Column(db.VARCHAR(100), nullable=True) grid_explore = db.Column(db.VARCHAR(100), nullable=True) background_overview = db.Column(db.VARCHAR(100), nullable=True) background_contact = db.Column(db.VARCHAR(100), nullable=True) background_contact_phone = db.Column(db.VARCHAR(100), nullable=True) background_explore = db.Column(db.VARCHAR(100), nullable=True) gallerys = db.Column(db.VARCHAR(300), nullable=True) slideshows = db.Column(db.VARCHAR(300), nullable=True) def __init__(self, property_id): self.property_id = property_id def is_completed(self): if not self.slideshows or not self.gallerys or not self.grid_overview or not \ self.grid_gallery or not self.grid_contact or not self.grid_explore or not \ self.background_overview or not self.background_explore or not self.background_contact\ or not self.background_contact_phone: return False return True
class ProjectDisbursements(db.Model): __tablename_ = "project_disbursements" disb_id = db.Column(db.Integer, primary_key=True) disb_amt = db.Column(db.VARCHAR(30), nullable=False) disb_approver = db.Column(db.NVARCHAR(20)) disb_status = db.Column(db.Boolean) disb_desc = db.Column(db.VARCHAR(10000), nullable=False) disb_proj = db.Column(db.Integer, db.ForeignKey(Projects.proj_id)) disb_date = db.Column(db.DateTime, default=datetime.datetime.today, nullable=False)
class Users(UserMixin, db.Model): __tablename_ = "users" user_email = db.Column(db.VARCHAR(40), nullable=False) user_name = db.Column(db.VARCHAR(30), nullable=False) user_password = db.Column(db.VARCHAR(200)) user_empcode = db.Column(db.NVARCHAR(15), nullable=False, primary_key=True) user_approver_rights = db.Column(db.Boolean, nullable=False) disbursements_approval_rights = db.Column(db.Boolean, nullable=False) responses = db.relationship("IssueResponse", lazy="dynamic", backref="user")
class ProjectTasks(db.Model): __tablename_ = "project_tasks" task_proj = db.Column(db.Integer, db.ForeignKey(Projects.proj_id)) task_id = db.Column(db.Integer, primary_key=True) task_title = db.Column(db.VARCHAR(30), nullable=False) task_desc = db.Column(db.VARCHAR(10000), nullable=False) task_start = db.Column(db.Date) task_deadline = db.Column(db.Date) task_hours = db.Column(db.Numeric, nullable=False) completion_status = db.Column(db.Numeric) task_issue_date = db.Column(db.DateTime, default=datetime.datetime.today, nullable=False)
class ProjectIssues(db.Model): __tablename_ = "project_issues" issue_proj = db.Column(db.Integer, db.ForeignKey(Projects.proj_id)) issue_id = db.Column(db.Integer, nullable=False, primary_key=True, autoincrement=True) issue_title = db.Column(db.VARCHAR(40), nullable=False) issue_descr = db.Column(db.VARCHAR(10000), nullable=True) issue_date = db.Column(db.Date, nullable=False, default=datetime.date.today) responses = db.relationship("IssueResponse", lazy="dynamic", backref="issue")
class WarehouseSuppliers(db.Model): __tablename_ = "warehouse_suppliers" supplier_id = db.Column(db.Integer, primary_key=True, autoincrement=True) supplier_Creation_date = db.Column(db.DateTime, default=datetime.datetime.today, nullable=False) supplier_name = db.Column(db.VARCHAR(60), nullable=False)
class WarehouseUnits(db.Model): __tablename_ = "warehouse_units" units_id = db.Column(db.Integer, primary_key=True, autoincrement=True) units_name = db.Column(db.VARCHAR(40), nullable=False) units_abbr = db.Column(db.NVARCHAR(15), nullable=False) product = db.relationship("WarehouseProducts", lazy="dynamic", backref="unitnames")
class WarehouseLocations(db.Model): __tablename_ = "warehouse_locations" location_id = db.Column(db.Integer, primary_key=True, autoincrement=True) location_name = db.Column(db.VARCHAR(40), nullable=False) location_lat = db.Column(db.Numeric, nullable=False) location_long = db.Column(db.Numeric, nullable=False) receipts = db.relationship("WarehouseReceipts", lazy="dynamic", backref="location")
class WarehouseReceipts(db.Model): __tablename_ = "warehouse_receipts" receipt_id = db.Column(db.Integer, primary_key=True, autoincrement=True) receipt_date = db.Column(db.DateTime, default=datetime.datetime.today, nullable=False) receipt_description = db.Column(db.VARCHAR(5000), nullable=False) receipt_product = db.Column(db.NVARCHAR(10), nullable=False) receipt_supplier = db.Column(db.VARCHAR(10), nullable=False) receipt_receiver = db.Column(db.NVARCHAR(15), db.ForeignKey(WarehouseUsers.user_empcode)) receipt_qty = db.Column(db.Numeric, nullable=False) receipt_barcode = db.Column(db.VARCHAR(40), nullable=True) receipts_warehouse = db.Column( db.Integer, db.ForeignKey("warehouse_locations.location_id")) receipt_total_cost = db.Column(db.Numeric, nullable=False) receipt_document_no = db.Column(db.DateTime, default=datetime.datetime.today, nullable=False)
class WarehouseUsers(db.Model): __tablename_ = "warehouse_users" user_email = db.Column(db.VARCHAR(200)) user_password = db.Column(db.VARCHAR(200)) user_empcode = db.Column(db.NVARCHAR(15), nullable=False, primary_key=True) user_approver_rights = db.Column(db.Boolean, nullable=False) #### receipts = db.relationship("WarehouseReceipts", lazy="dynamic", backref="user") products = db.relationship("WarehouseProducts", lazy="dynamic", backref="user") requisitions = db.relationship("WarehouseReqs", lazy="dynamic", backref="requestor") categories = db.relationship("WarehouseCategories", lazy="dynamic", backref="creator")
class WarehouseCategories(db.Model): __tablename_ = "warehouse_categories" cat_id = db.Column(db.Integer, primary_key=True, autoincrement=True) cat_name = db.Column(db.VARCHAR(40), nullable=False) cat_creator = db.Column(db.NVARCHAR(15), db.ForeignKey(WarehouseUsers.user_empcode)) products = db.relationship("WarehouseProducts", lazy="dynamic", backref="categoryNames")
class IssueResponse(db.Model): __tablename_ = "issue_response" issue_id = db.Column(db.Integer, db.ForeignKey(ProjectIssues.issue_id), nullable=False) response_id = db.Column(db.Integer, nullable=False, primary_key=True) issue_responder = db.Column(db.NVARCHAR(15), db.ForeignKey(Users.user_empcode), nullable=False) issue_response = db.Column(db.VARCHAR(10000), nullable=True) response_date = db.Column(db.Date, default=datetime.date.today, nullable=False)
class WarehouseProducts(db.Model): __tablename_ = "warehouse_products" product_id = db.Column(db.Integer, primary_key=True, autoincrement=True) product_name = db.Column(db.VARCHAR(60), nullable=False) product_type = db.Column(db.Integer, db.ForeignKey("warehouse_categories.cat_id"), nullable=False) product_creator = db.Column(db.NVARCHAR(15), db.ForeignKey("warehouse_users.user_empcode")) product_reorder = db.Column(db.Numeric, nullable=False) product_approver = db.Column(db.NVARCHAR(15)) product_units = db.Column(db.Integer, db.ForeignKey("warehouse_units.units_id"), nullable=False) requisitions = db.relationship("WarehouseReqs", lazy="dynamic", backref="product")
class WarehouseReqs(db.Model): __tablename_ = "warehouse_reqs" req_id = db.Column(db.Integer, primary_key=True, autoincrement=True) req_date = db.Column(db.DateTime, default=datetime.datetime.today, nullable=False) req_description = db.Column(db.VARCHAR(5000), nullable=False) req_product = db.Column(db.Integer, db.ForeignKey(WarehouseProducts.product_id), nullable=False) req_project = db.Column(db.Integer, db.ForeignKey(Projects.proj_id), nullable=False) req_requestor = db.Column(db.NVARCHAR(15), db.ForeignKey(WarehouseUsers.user_empcode)) req_qty = db.Column(db.Numeric, nullable=False) #req_document_no = db.Column(db.DateTime, default=datetime.datetime.today, nullable=False) req_deadline = db.Column(db.DateTime, nullable=False) req_approval = db.Column(db.Boolean, default=False, nullable=True) req_approval_date = db.Column(db.DateTime, nullable=True)
class Property(db.Model): __tablename__ = "information" idproperty = db.Column('id', db.Integer, primary_key=True) agent_id = db.Column('agent_id', db.Integer) address = db.Column('streetname', db.VARCHAR(255), nullable=True) price = db.Column('price', db.DECIMAL(16, 2), nullable=True) beds = db.Column('beds', db.FLOAT, nullable=True) baths = db.Column('baths', db.FLOAT, nullable=True) home_size = db.Column('totalBuildingArea', db.FLOAT, nullable=True) lot_size = db.Column('lotSize', db.DECIMAL(10, 2), nullable=True) year_built = db.Column('yearBuilt', db.Integer, nullable=True) property_type_English = db.Column('propertyType_en', db.VARCHAR(255), nullable=True) property_type_Chinese = db.Column('propertyType', db.VARCHAR(255), nullable=True) description_English = db.Column('description_en', db.VARCHAR(4000), nullable=True) description_Chinese = db.Column('description', db.VARCHAR(4000), nullable=True) slogan_subtitle_English = db.Column('subtitle_en', db.VARCHAR(255), nullable=True) slogan_title_Chinese = db.Column('publicity', db.VARCHAR(255), nullable=True) slogan_subtitle_Chinese = db.Column('subtitle', db.VARCHAR(255), nullable=True) vimeo = db.Column('vimeo', db.VARCHAR(255), nullable=True) youtube = db.Column('youtube', db.VARCHAR(255), nullable=True) domain = db.Column('website', db.VARCHAR(255), unique=True, nullable=True) property_number = db.Column('mls', db.VARCHAR(255), nullable=True) list_date_English = db.Column('listdate', db.VARCHAR(255), nullable=True) school_district_English = db.Column('schooldistrict', db.VARCHAR(255), nullable=True) school_district_Chinese = db.Column('schooldistrict_cn', db.VARCHAR(255), nullable=True) created_on = db.Column('createtime', db.DateTime, nullable=True) is_published = db.Column('publishSite', db.Integer, nullable=True) threed_tour = db.Column('videoTour', db.VARCHAR(255), nullable=True) def __init__(self, idproperty, address, agent_id): self.idproperty = idproperty self.address = address self.agent_id = agent_id def get_price_CNY(self): convert = currentConvert(1, 'USD', 'CNY') return self.price * convert def get_home_size_meter(self): return self.home_size * 0.092903 def get_lot_size_meter(self): return self.lot_size * 0.092903
class Agent(db.Model): __tablename__ = "agent" id = db.Column('id', db.Integer, primary_key=True) agent_name = db.Column('realname', db.VARCHAR(255), nullable=False) agent_license = db.Column('dre', db.VARCHAR(255), nullable=True) agent_phone = db.Column('cellphone', db.VARCHAR(30), nullable=True) agent_phone_china = db.Column('chinesecellphone', db.VARCHAR(45), nullable=True) agent_wechat = db.Column('wxid', db.VARCHAR(255), nullable=True) agent_email = db.Column('email', db.VARCHAR(60), unique=True, nullable=False) agent_office = db.Column('office', db.VARCHAR(30), nullable=True) agent_qrcode = db.Column('wxqrcode', db.VARCHAR(500), nullable=True) password = db.Column('password', db.VARCHAR(255), nullable=False) registered_on = db.Column('createtime', db.DateTime, nullable=True) last_login = db.Column('lastlogin', db.DateTime, nullable=True) def __init__(self, id, agent_name, agent_email, password, agent_license="", agent_phone="", agent_phone_china="", agent_wechat="", agent_office="", agent_qrcode="", last_login=None): self.id = id self.password = bcrypt.generate_password_hash(password) self.registered_on = datetime.datetime.now() self.agent_name = agent_name self.agent_license = agent_license self.agent_phone = agent_phone self.agent_phone_china = agent_phone_china self.agent_wechat = agent_wechat self.agent_email = agent_email self.agent_office = agent_office self.agent_qrcode = agent_qrcode self.last_login = last_login def is_authenticated(self): return True def is_active(self): return True def is_anonymous(self): return False def get_id(self): return self.id def __repr__(self): return '<email {}'.format(self.agent_email)
class ProjectManagers(db.Model): __tablename_ = "project_managers" manager_email = db.Column(db.VARCHAR(40), nullable=False) manager_name = db.Column(db.VARCHAR(30), nullable=False) manager_code = db.Column(db.NVARCHAR(20), primary_key=True) project = db.relationship("Projects", backref="manager", lazy="dynamic")
class ProjectTypes(db.Model): __tablename_ = "project_types" type_name = db.Column(db.VARCHAR(30), nullable=False) type_id = db.Column(db.Integer, primary_key=True) project = db.relationship("Projects", backref="type", lazy="dynamic")
class Employees(db.Model): __tablename_ = "employees" emp_id = db.Column(db.Integer, primary_key=True, autoincrement=True) emp_name = db.Column(db.VARCHAR(60), nullable=False) emp_code = db.Column(db.NVARCHAR(15), nullable=False) emp_email = db.Column(db.VARCHAR(60), nullable=False)