"""会员模块路由(/membership/*,对应《03-接口文档》第 7 章)""" from fastapi import APIRouter, Depends from sqlalchemy.ext.asyncio import AsyncSession from app.core.response import ok from app.database import get_db from app.deps import Identity, require_user from app.schemas.common import RedeemReq from app.services import membership_service router = APIRouter(prefix="/membership", tags=["会员"]) @router.get("/plans") async def list_plans(): return ok(membership_service.list_plans()) @router.get("/me") async def get_my_membership(db: AsyncSession = Depends(get_db), identity: Identity = Depends(require_user)): return ok(await membership_service.get_my_membership(db, identity.user_id)) @router.post("/redeem") async def redeem(req: RedeemReq, db: AsyncSession = Depends(get_db), identity: Identity = Depends(require_user)): return ok(await membership_service.redeem(db, identity.user_id, req.plan_code))