import os from datetime import timedelta basedir = os.path.abspath(os.path.dirname(__file__)) class Config: # Secret key for session management SECRET_KEY = os.environ.get('SECRET_KEY') or 'dev-secret-key-change-in-production' # Database configuration SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \ 'mysql+pymysql://jqc_admin:Jqc4dm1n141!@localhost/janitorial_qc' SQLALCHEMY_TRACK_MODIFICATIONS = False SQLALCHEMY_ECHO = False # Upload configuration UPLOAD_FOLDER = os.path.join(basedir, 'app/static/uploads') MAX_CONTENT_LENGTH = 16 * 1024 * 1024 # 16MB max file size ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg', 'gif'} # Session configuration PERMANENT_SESSION_LIFETIME = timedelta(hours=24) SESSION_COOKIE_SECURE = False # Change to True on production SESSION_COOKIE_HTTPONLY = True SESSION_COOKIE_SAMESITE = 'Lax' # Mail configuration (configure later) MAIL_SERVER = os.environ.get('MAIL_SERVER') MAIL_PORT = int(os.environ.get('MAIL_PORT') or 587) MAIL_USE_TLS = os.environ.get('MAIL_USE_TLS', 'true').lower() in ['true', 'on', '1'] MAIL_USERNAME = os.environ.get('MAIL_USERNAME') MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD') class DevelopmentConfig(Config): DEBUG = True SQLALCHEMY_ECHO = True class ProductionConfig(Config): DEBUG = False SESSION_COOKIE_SECURE = True config = { 'development': DevelopmentConfig, 'production': ProductionConfig, 'default': DevelopmentConfig }