from fastapi import Depends from app.features.payment.order_service import PaymentOrderService from app.features.payment.payment_config import PaymentConfig from app.features.payment.payment_facade import PaymentService from app.features.plan.deps import get_plan_service from app.features.plan.service import PlanService from app.core.deps_types import DbDep _payment_service = None def get_payment_service() -> PaymentService: """统一支付门面(wechat/alipay),供 PaymentOrderService 与 startup 使用。""" global _payment_service if _payment_service is None: config = PaymentConfig.from_env() _payment_service = PaymentService(config) return _payment_service def get_payment_order_service( db: DbDep, plan_service: PlanService = Depends(get_plan_service), ) -> PaymentOrderService: """Payment order facade: create_order, callbacks, list/status.""" return PaymentOrderService(db=db, plan_service=plan_service)