/**
 * @swagger
 * tags:
 *   name: Admin - Config
 *   description: 管理后台 - 系统配置管理
 */

/**
 * @swagger
 * components:
 *   schemas:
 *     Config:
 *       type: object
 *       properties:
 *         id:
 *           type: string
 *           format: uuid
 *           description: 配置ID
 *         key:
 *           type: string
 *           description: 配置键名
 *           example: app_logo
 *         value:
 *           type: string
 *           description: 配置值
 *           example: https://example.com/logo.png
 *         type:
 *           type: string
 *           enum: [string, number, boolean, json, image]
 *           description: 值类型
 *           example: image
 *         category:
 *           type: string
 *           description: 配置分类
 *           example: appearance
 *         description:
 *           type: string
 *           description: 配置描述
 *           example: Application logo image URL
 *         createdAt:
 *           type: string
 *           format: date-time
 *           description: 创建时间
 *         updatedAt:
 *           type: string
 *           format: date-time
 *           description: 更新时间
 */

/**
 * @swagger
 * /api/v1/admin/config:
 *   get:
 *     summary: 获取所有配置
 *     description: 获取系统所有配置项,可按分类筛选
 *     tags: [Admin - Config]
 *     security:
 *       - bearerAuth: []
 *     parameters:
 *       - in: query
 *         name: category
 *         schema:
 *           type: string
 *           enum: [appearance, general, contact]
 *         description: 按分类筛选 (appearance-外观配置, general-基本信息, contact-联系方式)
 *         example: appearance
 *     responses:
 *       200:
 *         description: 配置列表获取成功
 *         content:
 *           application/json:
 *             schema:
 *               type: object
 *               properties:
 *                 code:
 *                   type: integer
 *                   example: 0
 *                 message:
 *                   type: string
 *                   example: Configurations retrieved successfully
 *                 data:
 *                   type: array
 *                   items:
 *                     $ref: '#/components/schemas/Config'
 *             example:
 *               code: 0
 *               message: Configurations retrieved successfully
 *               data:
 *                 - id: "123e4567-e89b-12d3-a456-426614174000"
 *                   key: app_logo
 *                   value: https://example.com/logo.png
 *                   type: image
 *                   category: appearance
 *                   description: Application logo image URL
 *                   createdAt: "2024-01-01T00:00:00.000Z"
 *                   updatedAt: "2024-01-01T00:00:00.000Z"
 *                 - id: "123e4567-e89b-12d3-a456-426614174001"
 *                   key: app_name
 *                   value: Overseas Appointment System
 *                   type: string
 *                   category: general
 *                   description: Application name
 *                   createdAt: "2024-01-01T00:00:00.000Z"
 *                   updatedAt: "2024-01-01T00:00:00.000Z"
 *       401:
 *         description: 未授权 - Token无效或已过期
 *         content:
 *           application/json:
 *             schema:
 *               type: object
 *               properties:
 *                 code:
 *                   type: integer
 *                   example: 401
 *                 message:
 *                   type: string
 *                   example: Unauthorized
 *       403:
 *         description: 权限不足 - 需要管理员权限
 *         content:
 *           application/json:
 *             schema:
 *               type: object
 *               properties:
 *                 code:
 *                   type: integer
 *                   example: 403
 *                 message:
 *                   type: string
 *                   example: Insufficient permissions
 */

/**
 * @swagger
 * /api/v1/admin/config/{key}:
 *   get:
 *     summary: 获取指定配置
 *     description: 根据配置键名获取单个配置项
 *     tags: [Admin - Config]
 *     security:
 *       - bearerAuth: []
 *     parameters:
 *       - in: path
 *         name: key
 *         required: true
 *         schema:
 *           type: string
 *         description: 配置键名
 *         example: app_logo
 *     responses:
 *       200:
 *         description: 配置获取成功
 *         content:
 *           application/json:
 *             schema:
 *               type: object
 *               properties:
 *                 code:
 *                   type: integer
 *                   example: 0
 *                 message:
 *                   type: string
 *                   example: Configuration retrieved successfully
 *                 data:
 *                   $ref: '#/components/schemas/Config'
 *             example:
 *               code: 0
 *               message: Configuration retrieved successfully
 *               data:
 *                 id: "123e4567-e89b-12d3-a456-426614174000"
 *                 key: app_logo
 *                 value: https://example.com/logo.png
 *                 type: image
 *                 category: appearance
 *                 description: Application logo image URL
 *                 createdAt: "2024-01-01T00:00:00.000Z"
 *                 updatedAt: "2024-01-01T00:00:00.000Z"
 *       404:
 *         description: 配置不存在
 *         content:
 *           application/json:
 *             schema:
 *               type: object
 *               properties:
 *                 code:
 *                   type: integer
 *                   example: 404
 *                 message:
 *                   type: string
 *                   example: Configuration not found
 *       401:
 *         description: 未授权
 *       403:
 *         description: 权限不足
 *   put:
 *     summary: 更新配置
 *     description: 更新或创建配置项 (如果配置不存在则自动创建)
 *     tags: [Admin - Config]
 *     security:
 *       - bearerAuth: []
 *     parameters:
 *       - in: path
 *         name: key
 *         required: true
 *         schema:
 *           type: string
 *         description: 配置键名
 *         example: app_logo
 *     requestBody:
 *       required: true
 *       content:
 *         application/json:
 *           schema:
 *             type: object
 *             required:
 *               - value
 *             properties:
 *               value:
 *                 type: string
 *                 description: 配置值
 *                 example: https://example.com/new-logo.png
 *               type:
 *                 type: string
 *                 enum: [string, number, boolean, json, image]
 *                 description: 值类型
 *                 default: string
 *                 example: image
 *               category:
 *                 type: string
 *                 description: 配置分类
 *                 default: general
 *                 example: appearance
 *               description:
 *                 type: string
 *                 description: 配置描述
 *                 example: Application logo image URL
 *           examples:
 *             updateLogo:
 *               summary: 更新Logo
 *               value:
 *                 value: https://example.com/new-logo.png
 *                 type: image
 *                 category: appearance
 *                 description: Application logo image URL
 *             updateAppName:
 *               summary: 更新应用名称
 *               value:
 *                 value: My Appointment System
 *                 type: string
 *                 category: general
 *                 description: Application name
 *             updateContactPhone:
 *               summary: 更新联系电话
 *               value:
 *                 value: "+1234567890"
 *                 type: string
 *                 category: contact
 *                 description: Contact phone number
 *     responses:
 *       200:
 *         description: 配置更新成功
 *         content:
 *           application/json:
 *             schema:
 *               type: object
 *               properties:
 *                 code:
 *                   type: integer
 *                   example: 0
 *                 message:
 *                   type: string
 *                   example: Configuration updated successfully
 *                 data:
 *                   $ref: '#/components/schemas/Config'
 *       400:
 *         description: 请求参数错误
 *         content:
 *           application/json:
 *             schema:
 *               type: object
 *               properties:
 *                 code:
 *                   type: integer
 *                   example: 400
 *                 message:
 *                   type: string
 *                   example: Invalid request parameters
 *       401:
 *         description: 未授权
 *       403:
 *         description: 权限不足
 *   delete:
 *     summary: 删除配置
 *     description: 删除指定的配置项
 *     tags: [Admin - Config]
 *     security:
 *       - bearerAuth: []
 *     parameters:
 *       - in: path
 *         name: key
 *         required: true
 *         schema:
 *           type: string
 *         description: 配置键名
 *         example: custom_config
 *     responses:
 *       200:
 *         description: 配置删除成功
 *         content:
 *           application/json:
 *             schema:
 *               type: object
 *               properties:
 *                 code:
 *                   type: integer
 *                   example: 0
 *                 message:
 *                   type: string
 *                   example: Configuration deleted successfully
 *                 data:
 *                   type: null
 *       404:
 *         description: 配置不存在
 *         content:
 *           application/json:
 *             schema:
 *               type: object
 *               properties:
 *                 code:
 *                   type: integer
 *                   example: 404
 *                 message:
 *                   type: string
 *                   example: Configuration not found
 *       401:
 *         description: 未授权
 *       403:
 *         description: 权限不足
 */

module.exports = {};
