definitions: controller.Properties: type: object controller.Response: properties: code: description: 业务状态码 type: integer data: description: 业务数据 message: description: 提示信息 type: string type: object device.CreateDeviceRequest: type: object device.DeviceResponse: properties: created_at: type: string id: type: integer location: type: string name: type: string parent_id: type: integer properties: $ref: '#/definitions/controller.Properties' sub_type: $ref: '#/definitions/models.DeviceSubType' type: $ref: '#/definitions/models.DeviceType' updated_at: type: string type: object device.UpdateDeviceRequest: properties: location: type: string name: type: string parent_id: type: integer properties: $ref: '#/definitions/controller.Properties' sub_type: $ref: '#/definitions/models.DeviceSubType' type: $ref: '#/definitions/models.DeviceType' required: - name - type type: object models.DeviceSubType: enum: - "" - temperature - humidity - ammonia - feed_valve - fan - water_curtain type: string x-enum-varnames: - SubTypeNone - SubTypeSensorTemp - SubTypeSensorHumidity - SubTypeSensorAmmonia - SubTypeValveFeed - SubTypeFan - SubTypeWaterCurtain models.DeviceType: enum: - area_controller - device type: string x-enum-varnames: - DeviceTypeAreaController - DeviceTypeDevice plan.CreatePlanRequest: properties: description: example: 根据温度自动调节风扇和加热器 type: string name: example: 猪舍温度控制计划 type: string required: - name type: object plan.ListPlansResponse: properties: plans: items: $ref: '#/definitions/plan.PlanResponse' type: array total: example: 100 type: integer type: object plan.PlanResponse: properties: description: example: 根据温度自动调节风扇和加热器 type: string id: example: 1 type: integer name: example: 猪舍温度控制计划 type: string type: object plan.UpdatePlanRequest: properties: description: example: 更新后的描述 type: string name: example: 猪舍温度控制计划V2 type: string type: object user.CreateUserRequest: properties: password: example: password123 minLength: 6 type: string username: example: newuser type: string required: - password - username type: object user.CreateUserResponse: properties: id: example: 1 type: integer username: example: newuser type: string type: object user.LoginRequest: properties: password: example: password123 type: string username: example: testuser type: string required: - password - username type: object user.LoginResponse: properties: id: example: 1 type: integer token: example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... type: string username: example: testuser type: string type: object info: contact: {} paths: /devices: get: description: 获取系统中所有设备的列表 produces: - application/json responses: "200": description: 业务失败,具体错误码和信息见响应体 schema: $ref: '#/definitions/controller.Response' summary: 获取设备列表 tags: - 设备管理 post: consumes: - application/json description: 根据提供的信息创建一个新设备 parameters: - description: 设备信息 in: body name: device required: true schema: $ref: '#/definitions/device.CreateDeviceRequest' produces: - application/json responses: "200": description: 业务失败,具体错误码和信息见响应体 schema: $ref: '#/definitions/controller.Response' summary: 创建新设备 tags: - 设备管理 /devices/{id}: delete: description: 根据设备ID删除一个设备(软删除) parameters: - description: 设备ID in: path name: id required: true type: string produces: - application/json responses: "200": description: 业务失败,具体错误码和信息见响应体 schema: $ref: '#/definitions/controller.Response' summary: 删除设备 tags: - 设备管理 get: description: 根据设备ID获取单个设备的详细信息 parameters: - description: 设备ID in: path name: id required: true type: string produces: - application/json responses: "200": description: 业务失败,具体错误码和信息见响应体 schema: $ref: '#/definitions/controller.Response' summary: 获取设备信息 tags: - 设备管理 put: consumes: - application/json description: 根据设备ID更新一个已存在的设备信息 parameters: - description: 设备ID in: path name: id required: true type: string - description: 要更新的设备信息 in: body name: device required: true schema: $ref: '#/definitions/device.UpdateDeviceRequest' produces: - application/json responses: "200": description: 业务失败,具体错误码和信息见响应体 schema: $ref: '#/definitions/controller.Response' summary: 更新设备信息 tags: - 设备管理 /plans: get: description: 获取所有计划的列表 produces: - application/json responses: "200": description: 业务失败,具体错误码和信息见响应体(例如400, 500) schema: $ref: '#/definitions/controller.Response' summary: 获取计划列表 tags: - 计划管理 post: consumes: - application/json description: 创建一个新的计划,包括其基本信息和所有关联的子计划/任务。 parameters: - description: 计划信息 in: body name: plan required: true schema: $ref: '#/definitions/plan.CreatePlanRequest' produces: - application/json responses: "200": description: 业务失败,具体错误码和信息见响应体(例如400, 500) schema: $ref: '#/definitions/controller.Response' summary: 创建计划 tags: - 计划管理 /plans/{id}: delete: description: 根据计划ID删除计划。 parameters: - description: 计划ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: 业务失败,具体错误码和信息见响应体(例如400, 404, 500) schema: $ref: '#/definitions/controller.Response' summary: 删除计划 tags: - 计划管理 get: description: 根据计划ID获取单个计划的详细信息。 parameters: - description: 计划ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: 业务失败,具体错误码和信息见响应体(例如400, 404, 500) schema: $ref: '#/definitions/controller.Response' summary: 获取计划详情 tags: - 计划管理 put: consumes: - application/json description: 根据计划ID更新计划的详细信息。 parameters: - description: 计划ID in: path name: id required: true type: integer - description: 更新后的计划信息 in: body name: plan required: true schema: $ref: '#/definitions/plan.UpdatePlanRequest' produces: - application/json responses: "200": description: 业务失败,具体错误码和信息见响应体(例如400, 404, 500) schema: $ref: '#/definitions/controller.Response' summary: 更新计划 tags: - 计划管理 /plans/{id}/start: post: description: 根据计划ID启动一个计划的执行。 parameters: - description: 计划ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: 业务失败,具体错误码和信息见响应体(例如400, 404, 500) schema: $ref: '#/definitions/controller.Response' summary: 启动计划 tags: - 计划管理 /plans/{id}/stop: post: description: 根据计划ID停止一个正在执行的计划。 parameters: - description: 计划ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: 业务失败,具体错误码和信息见响应体(例如400, 404, 500) schema: $ref: '#/definitions/controller.Response' summary: 停止计划 tags: - 计划管理 /users: post: consumes: - application/json description: 根据用户名和密码创建一个新的系统用户。 parameters: - description: 用户信息 in: body name: user required: true schema: $ref: '#/definitions/user.CreateUserRequest' produces: - application/json responses: "200": description: 业务失败,具体错误码和信息见响应体(例如400, 409, 500) schema: $ref: '#/definitions/controller.Response' summary: 创建新用户 tags: - 用户管理 /users/login: post: consumes: - application/json description: 用户使用用户名和密码登录,成功后返回 JWT 令牌。 parameters: - description: 登录凭证 in: body name: credentials required: true schema: $ref: '#/definitions/user.LoginRequest' produces: - application/json responses: "200": description: 业务失败,具体错误码和信息见响应体(例如400, 401, 500) schema: $ref: '#/definitions/controller.Response' summary: 用户登录 tags: - 用户管理 swagger: "2.0"