from sqlalchemy import DateTime, Column, Integer, String, DECIMAL, text from sqlalchemy.orm import declarative_base Base = declarative_base() class User(Base): __tablename__ = 'users' __table_args__ = {'schema': 'app_data'} idusers = Column(Integer, primary_key=True) email = Column(String(128), nullable=False, unique=True) fname = Column(String(128), nullable=False) lname = Column(String(128), nullable=False) type = Column(String(128), nullable=False) app_id = Column(String(128), nullable=False) username = Column(String(128), nullable=False) pro_pic_path = Column(String(128), nullable=False) purpose = Column(String(256), nullable=False, server_default="") def __repr__(self): return ( f"" ) class Business(Base): __tablename__ = 'business' __table_args__ = {'schema': 'app_data'} idbusiness = Column(Integer, primary_key=True) business_id = Column(String(128), nullable=False, unique=True) Name = Column(String(128)) type = Column(String(128)) registration_no = Column(String(128)) logo_name = Column(String(128)) logo_path = Column(String(128)) contact_no = Column(String(45)) bus_email = Column(String(128)) gps_location = Column(String(128)) practice_no = Column(String(45)) vat_no = Column(String(45)) website = Column(String(128)) rating = Column(String(45), server_default="''") # Changed to match image default mission_vision = Column(String(256)) def __repr__(self): return ( f"" ) class BusinessRating(Base): __tablename__ = 'business_ratings' __table_args__ = {'schema': 'mzansi_directory'} idbusiness_ratings = Column(Integer, primary_key=True) app_id = Column(String(128), nullable=False, server_default="") business_id = Column(String(128), nullable=False, server_default="") rating_title = Column(String(128), nullable=False, server_default="") rating_description = Column(String(256), nullable=False, server_default="") rating_score = Column(String(45), nullable=False, server_default="") date_time = Column(DateTime, nullable=True) def __repr__(self): return ( f"" ) class BookmarkedBusiness(Base): __tablename__ = 'bookmarked_businesses' __table_args__ = {'schema': 'mzansi_directory'} idbookmarked_businesses = Column(Integer, primary_key=True) app_id = Column(String(128), nullable=False, server_default="") business_id = Column(String(128), nullable=False, server_default="") created_date = Column(DateTime, nullable=True) def __repr__(self): return ( f"" ) class UserConsent(Base): __tablename__ = 'user_consent' __table_args__ = {'schema': 'app_data'} iduser_consent = Column(Integer, primary_key=True) app_id = Column(String(128), nullable=False,server_default=text("''")) privacy_policy_accepted = Column(DateTime, nullable=True) terms_of_services_accepted = Column(DateTime, nullable=True) def __repr__(self): return ( f"" ) class MineSweeperLeaderboard(Base): __tablename__ = 'player_score' __table_args__ = {'schema': 'minesweeper_leaderboard'} idplayer_score = Column(Integer, primary_key=True) app_id = Column(String(128), nullable=False,server_default=text("''")) difficulty = Column(String(45), nullable=False,server_default=text("''")) game_time = Column(String(45), nullable=False,server_default=text("''")) game_score = Column(DECIMAL(45), nullable=False) played_date = Column(DateTime, nullable=True) def __repr__(self): return ( f"" )