/**
 * @swagger
 * /api/v1/auth/wechat-login:
 *   post:
 *     summary: 微信登录
 *     description: 使用微信授权码登录系统，获取访问令牌
 *     tags: [Auth]
 *     requestBody:
 *       required: true
 *       content:
 *         application/json:
 *           schema:
 *             type: object
 *             required:
 *               - code
 *             properties:
 *               code:
 *                 type: string
 *                 description: 微信授权码
 *                 example: "0a1b2c3d4e5f"
 *               invitationCode:
 *                 type: string
 *                 description: 邀请码（可选）
 *                 example: "ABC123"
 *     responses:
 *       200:
 *         description: 登录成功
 *         content:
 *           application/json:
 *             schema:
 *               type: object
 *               properties:
 *                 success:
 *                   type: boolean
 *                   example: true
 *                 data:
 *                   type: object
 *                   properties:
 *                     accessToken:
 *                       type: string
 *                       description: JWT访问令牌
 *                     refreshToken:
 *                       type: string
 *                       description: 刷新令牌
 *                     expiresIn:
 *                       type: integer
 *                       description: 令牌过期时间（秒）
 *                       example: 604800
 *                     user:
 *                       $ref: '#/components/schemas/User'
 *       400:
 *         description: 请求参数错误
 *         content:
 *           application/json:
 *             schema:
 *               $ref: '#/components/schemas/ErrorResponse'
 *       401:
 *         description: 微信授权失败
 *
 * /api/v1/auth/refresh-token:
 *   post:
 *     summary: 刷新令牌
 *     description: 使用刷新令牌获取新的访问令牌
 *     tags: [Auth]
 *     requestBody:
 *       required: true
 *       content:
 *         application/json:
 *           schema:
 *             type: object
 *             required:
 *               - refreshToken
 *             properties:
 *               refreshToken:
 *                 type: string
 *                 description: 刷新令牌
 *     responses:
 *       200:
 *         description: 刷新成功
 *         content:
 *           application/json:
 *             schema:
 *               type: object
 *               properties:
 *                 success:
 *                   type: boolean
 *                   example: true
 *                 data:
 *                   type: object
 *                   properties:
 *                     accessToken:
 *                       type: string
 *                     refreshToken:
 *                       type: string
 *                     expiresIn:
 *                       type: integer
 *       401:
 *         description: 刷新令牌无效或已过期
 *
 * /api/v1/auth/logout:
 *   post:
 *     summary: 登出
 *     description: 用户登出，使当前令牌失效
 *     tags: [Auth]
 *     security:
 *       - bearerAuth: []
 *     responses:
 *       200:
 *         description: 登出成功
 *         content:
 *           application/json:
 *             schema:
 *               type: object
 *               properties:
 *                 success:
 *                   type: boolean
 *                   example: true
 *                 message:
 *                   type: string
 *                   example: "Logged out successfully"
 *       401:
 *         description: 未授权
 */
