/**
 * 预警管理模块 Swagger 文档
 * @file swagger-alerts.js
 * @description 预警管理相关的 Swagger API 文档定义
 */

// 预警管理相关的 API 路径定义
const alertsPaths = {
  '/api/alerts': {
    get: {
      summary: '获取所有预警',
      tags: ['预警管理'],
      parameters: [
        { $ref: '#/components/parameters/PageParam' },
        { $ref: '#/components/parameters/LimitParam' },
        { $ref: '#/components/parameters/SearchParam' }
      ],
      responses: {
        200: { $ref: '#/components/responses/Success' }
      }
    }
  },
  '/api/alerts/{id}': {
    get: {
      summary: '根据ID获取预警',
      tags: ['预警管理'],
      parameters: [{ $ref: '#/components/parameters/IdParam' }],
      responses: {
        200: { $ref: '#/components/responses/Success' },
        404: { $ref: '#/components/responses/NotFound' }
      }
    },
    put: {
      summary: '更新预警状态',
      tags: ['预警管理'],
      parameters: [{ $ref: '#/components/parameters/IdParam' }],
      requestBody: {
        required: true,
        content: {
          'application/json': {
            schema: {
              type: 'object',
              properties: {
                status: { 
                  type: 'string', 
                  enum: ['pending', 'processing', 'resolved', 'ignored'],
                  description: '预警状态'
                }
              }
            }
          }
        }
      },
      responses: {
        200: { $ref: '#/components/responses/Success' },
        404: { $ref: '#/components/responses/NotFound' }
      }
    }
  },
  '/api/alerts/stats/type': {
    get: {
      summary: '获取预警类型统计',
      tags: ['预警管理'],
      responses: {
        200: { $ref: '#/components/responses/Success' }
      }
    }
  },
  '/api/alerts/stats/level': {
    get: {
      summary: '获取预警级别统计',
      tags: ['预警管理'],
      responses: {
        200: { $ref: '#/components/responses/Success' }
      }
    }
  },
  '/api/alerts/stats/status': {
    get: {
      summary: '获取预警状态统计',
      tags: ['预警管理'],
      responses: {
        200: { $ref: '#/components/responses/Success' }
      }
    }
  }
};

// 预警管理相关的数据模型定义
const alertSchemas = {
  Alert: {
    type: 'object',
    properties: {
      id: { type: 'integer', description: '预警ID' },
      type: { type: 'string', description: '预警类型' },
      level: { type: 'string', enum: ['high', 'medium', 'low'], description: '预警级别' },
      status: { 
        type: 'string', 
        enum: ['pending', 'processing', 'resolved', 'ignored'],
        description: '预警状态'
      },
      title: { type: 'string', description: '预警标题' },
      message: { type: 'string', description: '预警消息' },
      deviceId: { type: 'integer', description: '设备ID' },
      animalId: { type: 'integer', description: '动物ID' },
      farmId: { type: 'integer', description: '养殖场ID' },
      createdAt: { type: 'string', format: 'date-time', description: '创建时间' },
      updatedAt: { type: 'string', format: 'date-time', description: '更新时间' }
    }
  }
};

module.exports = {
  alertsPaths,
  alertSchemas
};

