64 lines
2.1 KiB
Python
64 lines
2.1 KiB
Python
from pydantic_settings import BaseSettings
|
|
from typing import Optional, List
|
|
import os
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
|
|
class Settings(BaseSettings):
|
|
API_V1_STR: str = "/api/v1"
|
|
PROJECT_NAME: str = "美搭Meida API"
|
|
PROJECT_DESCRIPTION: str = "美搭Meida服务后端API"
|
|
PROJECT_VERSION: str = "0.1.0"
|
|
|
|
# 试穿次数
|
|
TRYON_REMAIN_COUNT: int = 5
|
|
TRYON_ADDITIONAL_COUNT: int = 3
|
|
|
|
# 默认头像
|
|
DEFAULT_AVATAR: str = "https://aidress-1311994147.cos.ap-chengdu.myqcloud.com/uploads/20250415/a9fecdb0fa3549488f010f7b89fdef1c.png"
|
|
|
|
# CORS设置
|
|
BACKEND_CORS_ORIGINS: List[str] = ["*"]
|
|
|
|
# 数据库设置
|
|
DB_HOST: str = os.getenv("DB_HOST", "localhost")
|
|
DB_PORT: str = os.getenv("DB_PORT", "3306")
|
|
DB_USER: str = os.getenv("DB_USER", "root")
|
|
DB_PASSWORD: str = os.getenv("DB_PASSWORD", "password")
|
|
DB_NAME: str = os.getenv("DB_NAME", "meida")
|
|
DB_ECHO: bool = os.getenv("DB_ECHO", "False").lower() == "true"
|
|
|
|
# DashScope API密钥
|
|
DASHSCOPE_API_KEY: str = os.getenv("DASHSCOPE_API_KEY", "")
|
|
DASHSCOPE_MODEL: str = os.getenv("DASHSCOPE_MODEL", "qwen-max")
|
|
|
|
# 安全设置
|
|
SECRET_KEY: str = os.getenv("SECRET_KEY", "your-secret-key-for-jwt-please-change-in-production")
|
|
ALGORITHM: str = "HS256"
|
|
ACCESS_TOKEN_EXPIRE_MINUTES: int = 60 * 24 * 7 # 7天
|
|
|
|
# 微信设置
|
|
WECHAT_APP_ID: str = os.getenv("WECHAT_APP_ID", "")
|
|
WECHAT_APP_SECRET: str = os.getenv("WECHAT_APP_SECRET", "")
|
|
|
|
# 腾讯云COS配置
|
|
COS_SECRET_ID: str = os.getenv("COS_SECRET_ID", "")
|
|
COS_SECRET_KEY: str = os.getenv("COS_SECRET_KEY", "")
|
|
COS_REGION: str = os.getenv("COS_REGION", "ap-guangzhou")
|
|
COS_BUCKET: str = os.getenv("COS_BUCKET", "")
|
|
|
|
@property
|
|
def cors_origins(self):
|
|
"""获取CORS来源列表"""
|
|
if isinstance(self.BACKEND_CORS_ORIGINS, str) and self.BACKEND_CORS_ORIGINS == "*":
|
|
return ["*"]
|
|
elif isinstance(self.BACKEND_CORS_ORIGINS, list):
|
|
return self.BACKEND_CORS_ORIGINS
|
|
return []
|
|
|
|
class Config:
|
|
env_file = ".env"
|
|
case_sensitive = True
|
|
|
|
settings = Settings() |