import os
from dotenv import load_dotenv

# 加载.env文件 (相对于应用根目录)
load_dotenv()


class Config:
    """配置类，支持从环境变量获取配置
    环境变量优先级高于默认值，可在系统环境变量中设置这些参数
    """
    SECRET_KEY = os.environ.get('SECRET_KEY', os.urandom(24))
    SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URI')
    LZMX_WEBHOOK_URL = os.environ.get('LZMX_WEBHOOK_URL')
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    UPLOAD_FOLDER = os.environ.get('UPLOAD_FOLDER', 'static/uploads')
    ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg'}
    
    # 添加1key110数据库配置
    KEY110_DB = {
        'host': os.environ.get('KEY110_DB_HOST'),
        'user': os.environ.get('KEY110_DB_USER'),
        'password': os.environ.get('KEY110_DB_PASSWORD'),
        'database': os.environ.get('KEY110_DB_DATABASE')
    }
    
    # Casdoor 配置
    CASDOOR_ENDPOINT = os.environ.get('CASDOOR_ENDPOINT', 'http://localhost:8000')
    CASDOOR_CLIENT_ID = os.environ.get('CASDOOR_CLIENT_ID')
    CASDOOR_CLIENT_SECRET = os.environ.get('CASDOOR_CLIENT_SECRET')
    CASDOOR_ORGANIZATION_NAME = os.environ.get('CASDOOR_ORGANIZATION_NAME', 'built-in')
    CASDOOR_APPLICATION_NAME = os.environ.get('CASDOOR_APPLICATION_NAME', 'app-built-in')
    CASDOOR_REDIRECT_URI = os.environ.get('CASDOOR_REDIRECT_URI', 'http://localhost:18061/callback')

    # 会话 Cookie 配置（跨域 SSO 时建议设置）
    SESSION_COOKIE_SAMESITE = os.environ.get('SESSION_COOKIE_SAMESITE', 'Lax')
    SESSION_COOKIE_SECURE = os.environ.get('SESSION_COOKIE_SECURE', 'False').lower() == 'true'