Files
nxxmdata/backend/swagger-alerts.js
2025-11-17 09:18:31 +08:00

118 lines
3.2 KiB
JavaScript

/**
* 预警管理模块 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
};