# PyAdvanceKit 环境配置示例
# 复制此文件为 .env 并根据需要修改配置

# ============================================
# 应用基础配置
# ============================================
PYADVINCEKIT_APP_NAME="外部应用"
PYADVINCEKIT_APP_VERSION="0.1.11111"
PYADVINCEKIT_ENVIRONMENT="testing"  # development/testing/production
PYADVINCEKIT_DEBUG=true

# ============================================
# 服务器配置
# ============================================
PYADVINCEKIT_HOST="0.0.0.0"
PYADVINCEKIT_PORT=8000

# ============================================
# API配置
# ============================================
PYADVINCEKIT_API_PREFIX="/api/v1"
PYADVINCEKIT_DOCS_URL="/docs"
PYADVINCEKIT_REDOC_URL="/redoc"
PYADVINCEKIT_OPENAPI_URL="/openapi.json"

# ============================================
# 数据库配置
# ============================================
# SQLite (开发环境推荐)
#PYADVINCEKIT_DATABASE_URL="sqlite+aiosqlite:///./app.db"

# PostgreSQL (生产环境推荐)
# PYADVINCEKIT_DATABASE_URL="postgresql+asyncpg://username:password@localhost:5432/dbname"

# MySQL
PYADVINCEKIT_DATABASE_URL="mysql+aiomysql://root:123456@localhost:3306/t_database"

# 连接池配置
PYADVINCEKIT_DATABASE_POOL_SIZE=10
PYADVINCEKIT_DATABASE_MAX_OVERFLOW=20
PYADVINCEKIT_DATABASE_POOL_RECYCLE=3600
PYADVINCEKIT_DATABASE_POOL_PRE_PING=true
PYADVINCEKIT_DATABASE_ECHO_SQL=false

# ============================================
# 日志配置
# ============================================
PYADVINCEKIT_LOG_LEVEL="DEBUG"  # DEBUG/INFO/WARNING/ERROR/CRITICAL
PYADVINCEKIT_LOG_FORMAT="%(asctime)s - %(name)s - %(levelname)s - %(message)s"

# 文件日志
PYADVINCEKIT_LOG_FILE_ENABLED=true
PYADVINCEKIT_LOG_FILE_PATH="logs/app1.log"
PYADVINCEKIT_LOG_FILE_MAX_SIZE=10485760  # 10MB
PYADVINCEKIT_LOG_FILE_BACKUP_COUNT=5

# 结构化日志
PYADVINCEKIT_LOG_STRUCTURED_LOGGING=true
PYADVINCEKIT_LOG_REQUESTS=true
PYADVINCEKIT_LOG_REQUEST_BODY=false

# ============================================
# 安全配置
# ============================================
# JWT配置 - 生产环境必须修改此密钥！
PYADVINCEKIT_JWT_SECRET_KEY="your-super-secret-key-change-this-in-production-at-least-32-characters-long"
PYADVINCEKIT_JWT_ACCESS_TOKEN_EXPIRE_MINUTES=100
PYADVINCEKIT_JWT_REFRESH_TOKEN_EXPIRE_DAYS=7

# CORS配置
PYADVINCEKIT_JWT_ALLOW_ORIGINS='["*"]'  # JSON格式，生产环境应限制具体域名
PYADVINCEKIT_JWT_ALLOW_METHODS='["*"]'
PYADVINCEKIT_JWT_ALLOW_HEADERS='["*"]'
PYADVINCEKIT_JWT_ALLOW_CREDENTIALS=true

# ============================================
# 开发环境特定配置
# ============================================
# 当 ENVIRONMENT=development 时，以下配置会被自动应用：
# - DEBUG=true
# - LOG_LEVEL=DEBUG
# - ECHO_SQL=true
# - 启用API文档

# ============================================
# 生产环境特定配置
# ============================================
# 当 ENVIRONMENT=production 时，以下配置会被自动应用：
# - DEBUG=false
# - 禁用API文档 (DOCS_URL=null)
# - LOG_LEVEL至少为INFO
# - 需要设置强密码作为SECRET_KEY

# ============================================
# 扩展配置示例
# ============================================
# 可以添加自定义配置项，它们会被存储在 settings.extra_config 中
# PYADVINCEKIT_CUSTOM_FEATURE_ENABLED=true
# PYADVINCEKIT_EXTERNAL_API_URL="https://api.example.com"
# PYADVINCEKIT_CACHE_TTL=3600
