deliveryman-api/app/core/config.py

67 lines
2.3 KiB
Python

from typing import Optional
from pydantic_settings import BaseSettings
class Settings(BaseSettings):
DEBUG: bool = True # 开发模式标志
API_V1_STR: str = "/api/v1"
PROJECT_NAME: str = "FastAPI 项目"
# 订单价格配置
ORDER_BASE_PRICE: float = 3.0 # 基础费用
ORDER_EXTRA_PACKAGE_PRICE: float = 0.5 # 额外包裹费用
ORDER_EXTRA_PACKAGE_THRESHOLD: int = 5 # 额外收费阈值
# JWT 配置
SECRET_KEY: str = "s10GmiRMmplfYWXYZLSsE3X36Ld4gVZxHgAcdqFGC20v3llv7UdOeWLBEEP3e40p"
ACCESS_TOKEN_EXPIRE_MINUTES: Optional[int] = None # None 表示永不过期
REDIS_HOST: str = "101.36.120.145"
REDIS_PORT: int = 6379
REDIS_DB: int = 0
REDIS_PASSWORD: str = "redis_rJRMHr"
VERIFICATION_CODE_EXPIRE_SECONDS: int = 300 # 验证码5分钟后过期
# 短信配置
UNI_APP_ID: str = "kFb5kA5EDXpnzUReadaRNpDTFf6rNmXEc45jwS2C1Mvh9Erj2"
UNI_SMS_TEMPLATE_ID: str = "pub_verif_basic" # 验证码短信模板ID
UNI_SMS_SIGN: str = "BAISIJI" # 短信签名
# MySQL配置
# MYSQL_HOST: str = "101.36.120.145"
# MYSQL_PORT: int = 3306
# MYSQL_USER: str = "root"
# MYSQL_PASSWORD: str = "mariadb_4rMwpT"
# MYSQL_DB: str = "deliveryman"
MYSQL_HOST: str = "gz-cynosdbmysql-grp-2j1cnopr.sql.tencentcdb.com"
MYSQL_PORT: int = 27469
MYSQL_USER: str = "root"
MYSQL_PASSWORD: str = "Aa#223388"
MYSQL_DB: str = "beefastapp"
@property
def SQLALCHEMY_DATABASE_URL(self) -> str:
return f"mysql+pymysql://{self.MYSQL_USER}:{self.MYSQL_PASSWORD}@{self.MYSQL_HOST}:{self.MYSQL_PORT}/{self.MYSQL_DB}?charset=utf8mb4"
# 腾讯云 COS 配置
COS_SECRET_ID: str = "AKIDxnbGj281iHtKallqqzvlV5YxBCrPltnS"
COS_SECRET_KEY: str = "ta6PXTMBsX7dzA7IN6uYUFn8F9uTovoU"
COS_REGION: str = "ap-chengdu"
COS_BUCKET: str = "dman-1311994147"
COS_BASE_URL: str = "dman-1311994147.cos.ap-chengdu.myqcloud.com"
# 注册赠券配置
REGISTER_COUPONS: list = [
{"coupon_id": 1, "count": 3},
]
WECHAT_APPID: str = "wx3cc5b7dcb28f2756"
WECHAT_SECRET: str = "fdf03e0ff428097c2a264da50b7d804e"
class Config:
case_sensitive = True
env_file = ".env"
extra = "allow" # 允许额外的环境变量
settings = Settings()