/**
 * @swagger
 * /api/v1/admin/appointments:
 *   get:
 *     summary: 获取订单列表
 *     description: 获取所有预约订单列表，支持分页、搜索和多条件筛选
 *     tags: [Admin Appointments]
 *     security:
 *       - bearerAuth: []
 *     parameters:
 *       - in: query
 *         name: page
 *         schema:
 *           type: integer
 *           minimum: 1
 *           default: 1
 *         description: 页码
 *       - in: query
 *         name: limit
 *         schema:
 *           type: integer
 *           minimum: 1
 *           maximum: 100
 *           default: 10
 *         description: 每页数量
 *       - in: query
 *         name: search
 *         schema:
 *           type: string
 *         description: 搜索关键词（订单号、用户名、联系方式）
 *         example: "APT2023"
 *       - in: query
 *         name: status
 *         schema:
 *           type: string
 *           enum: [pending, confirmed, in-progress, completed, cancelled]
 *         description: 订单状态筛选
 *       - in: query
 *         name: categoryId
 *         schema:
 *           type: string
 *           format: uuid
 *         description: 服务分类ID筛选
 *       - in: query
 *         name: startDate
 *         schema:
 *           type: string
 *           format: date
 *         description: 预约开始日期
 *       - in: query
 *         name: endDate
 *         schema:
 *           type: string
 *           format: date
 *         description: 预约结束日期
 *       - in: query
 *         name: userId
 *         schema:
 *           type: string
 *           format: uuid
 *         description: 用户ID筛选
 *     responses:
 *       200:
 *         description: 获取成功
 *         content:
 *           application/json:
 *             schema:
 *               type: object
 *               properties:
 *                 success:
 *                   type: boolean
 *                   example: true
 *                 data:
 *                   type: object
 *                   properties:
 *                     appointments:
 *                       type: array
 *                       items:
 *                         allOf:
 *                           - $ref: '#/components/schemas/Appointment'
 *                           - type: object
 *                             properties:
 *                               user:
 *                                 $ref: '#/components/schemas/User'
 *                               service:
 *                                 $ref: '#/components/schemas/Service'
 *                     pagination:
 *                       $ref: '#/components/schemas/PaginationMeta'
 *       401:
 *         description: 未授权
 *       403:
 *         description: 权限不足
 *
 * /api/v1/admin/appointments/{id}:
 *   get:
 *     summary: 获取订单详情
 *     description: 获取指定预约订单的详细信息
 *     tags: [Admin Appointments]
 *     security:
 *       - bearerAuth: []
 *     parameters:
 *       - in: path
 *         name: id
 *         required: true
 *         schema:
 *           type: string
 *           format: uuid
 *         description: 订单ID
 *     responses:
 *       200:
 *         description: 获取成功
 *         content:
 *           application/json:
 *             schema:
 *               type: object
 *               properties:
 *                 success:
 *                   type: boolean
 *                   example: true
 *                 data:
 *                   allOf:
 *                     - $ref: '#/components/schemas/Appointment'
 *                     - type: object
 *                       properties:
 *                         user:
 *                           $ref: '#/components/schemas/User'
 *                         service:
 *                           $ref: '#/components/schemas/Service'
 *       401:
 *         description: 未授权
 *       403:
 *         description: 权限不足
 *       404:
 *         description: 订单不存在
 *
 *   put:
 *     summary: 更新订单状态
 *     description: 更新预约订单的状态
 *     tags: [Admin Appointments]
 *     security:
 *       - bearerAuth: []
 *     parameters:
 *       - in: path
 *         name: id
 *         required: true
 *         schema:
 *           type: string
 *           format: uuid
 *         description: 订单ID
 *     requestBody:
 *       required: true
 *       content:
 *         application/json:
 *           schema:
 *             type: object
 *             required:
 *               - status
 *             properties:
 *               status:
 *                 type: string
 *                 enum: [pending, confirmed, in-progress, completed, cancelled]
 *                 description: 订单状态
 *                 example: "confirmed"
 *               notes:
 *                 type: string
 *                 description: 备注
 *                 example: "已确认预约"
 *           example:
 *             status: "confirmed"
 *             notes: "已确认预约"
 *     responses:
 *       200:
 *         description: 更新成功
 *         content:
 *           application/json:
 *             schema:
 *               type: object
 *               properties:
 *                 success:
 *                   type: boolean
 *                   example: true
 *                 data:
 *                   $ref: '#/components/schemas/Appointment'
 *       400:
 *         description: 请求参数错误
 *       401:
 *         description: 未授权
 *       403:
 *         description: 权限不足
 *       404:
 *         description: 订单不存在
 *
 * /api/v1/admin/appointments/statistics:
 *   get:
 *     summary: 获取订单统计
 *     description: 获取订单统计数据，包括数量和完成率
 *     tags: [Admin Appointments]
 *     security:
 *       - bearerAuth: []
 *     parameters:
 *       - in: query
 *         name: startDate
 *         schema:
 *           type: string
 *           format: date
 *         description: 统计开始日期
 *       - in: query
 *         name: endDate
 *         schema:
 *           type: string
 *           format: date
 *         description: 统计结束日期
 *     responses:
 *       200:
 *         description: 获取成功
 *         content:
 *           application/json:
 *             schema:
 *               type: object
 *               properties:
 *                 success:
 *                   type: boolean
 *                   example: true
 *                 data:
 *                   type: object
 *                   properties:
 *                     total:
 *                       type: integer
 *                       description: 总订单数
 *                       example: 100
 *                     pending:
 *                       type: integer
 *                       description: 待处理订单数
 *                       example: 20
 *                     confirmed:
 *                       type: integer
 *                       description: 已确认订单数
 *                       example: 30
 *                     inProgress:
 *                       type: integer
 *                       description: 进行中订单数
 *                       example: 10
 *                     completed:
 *                       type: integer
 *                       description: 已完成订单数
 *                       example: 35
 *                     cancelled:
 *                       type: integer
 *                       description: 已取消订单数
 *                       example: 5
 *                     completionRate:
 *                       type: number
 *                       format: float
 *                       description: 完成率
 *                       example: 0.35
 *       401:
 *         description: 未授权
 *       403:
 *         description: 权限不足
 */
