definitions: controller.Response: properties: code: description: 业务状态码 type: integer data: description: 业务数据 message: description: 提示信息 type: string type: object device.CreateDeviceRequest: properties: location: type: string name: type: string parent_id: type: integer properties: additionalProperties: true type: object sub_type: $ref: '#/definitions/models.DeviceSubType' type: $ref: '#/definitions/models.DeviceType' required: - name - type type: object device.UpdateDeviceRequest: properties: location: type: string name: type: string parent_id: type: integer properties: additionalProperties: true type: object sub_type: $ref: '#/definitions/models.DeviceSubType' type: $ref: '#/definitions/models.DeviceType' required: - name - type type: object git_huangwc_com_pig_pig-farm-controller_internal_app_controller_device.DeviceResponse: properties: created_at: type: string id: type: integer location: type: string name: type: string parent_id: type: integer properties: additionalProperties: true type: object sub_type: $ref: '#/definitions/models.DeviceSubType' type: $ref: '#/definitions/models.DeviceType' updated_at: type: string 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 models.PlanContentType: enum: - sub_plans - tasks type: string x-enum-comments: PlanContentTypeSubPlans: 计划包含子计划 PlanContentTypeTasks: 计划包含任务 x-enum-descriptions: - 计划包含子计划 - 计划包含任务 x-enum-varnames: - PlanContentTypeSubPlans - PlanContentTypeTasks models.PlanExecutionType: enum: - automatic - manual type: string x-enum-comments: PlanExecutionTypeAutomatic: 自动执行 (包含定时和循环) PlanExecutionTypeManual: 手动执行 x-enum-descriptions: - 自动执行 (包含定时和循环) - 手动执行 x-enum-varnames: - PlanExecutionTypeAutomatic - PlanExecutionTypeManual models.PlanStatus: enum: - 0 - 1 - 2 format: int32 type: integer x-enum-comments: PlanStatusDisabled: 禁用计划 PlanStatusEnabled: 启用计划 PlanStatusStopeed: 执行完毕 x-enum-descriptions: - 启用计划 - 禁用计划 - 执行完毕 x-enum-varnames: - PlanStatusEnabled - PlanStatusDisabled - PlanStatusStopeed models.TaskType: enum: - plan_analysis - waiting type: string x-enum-comments: TaskPlanAnalysis: 解析Plan的Task列表并添加到待执行队列的特殊任务 TaskTypeWaiting: 等待任务 x-enum-descriptions: - 解析Plan的Task列表并添加到待执行队列的特殊任务 - 等待任务 x-enum-varnames: - TaskPlanAnalysis - TaskTypeWaiting plan.CreatePlanRequest: properties: content_type: allOf: - $ref: '#/definitions/models.PlanContentType' example: tasks cron_expression: example: 0 0 6 * * * type: string description: example: 根据温度自动调节风扇和加热器 type: string execute_num: example: 10 type: integer execution_type: allOf: - $ref: '#/definitions/models.PlanExecutionType' example: automatic name: example: 猪舍温度控制计划 type: string sub_plan_ids: items: type: integer type: array tasks: items: $ref: '#/definitions/plan.TaskRequest' type: array required: - content_type - execution_type - name type: object plan.ListPlansResponse: properties: plans: items: $ref: '#/definitions/plan.PlanResponse' type: array total: example: 100 type: integer type: object plan.PlanResponse: properties: content_type: allOf: - $ref: '#/definitions/models.PlanContentType' example: tasks cron_expression: example: 0 0 6 * * * type: string description: example: 根据温度自动调节风扇和加热器 type: string execute_count: example: 0 type: integer execute_num: example: 10 type: integer execution_type: allOf: - $ref: '#/definitions/models.PlanExecutionType' example: automatic id: example: 1 type: integer name: example: 猪舍温度控制计划 type: string status: allOf: - $ref: '#/definitions/models.PlanStatus' example: 0 sub_plans: items: $ref: '#/definitions/plan.SubPlanResponse' type: array tasks: items: $ref: '#/definitions/plan.TaskResponse' type: array type: object plan.SubPlanResponse: properties: child_plan: $ref: '#/definitions/plan.PlanResponse' child_plan_id: example: 2 type: integer execution_order: example: 1 type: integer id: example: 1 type: integer parent_plan_id: example: 1 type: integer type: object plan.TaskRequest: properties: description: example: 打开1号风扇 type: string execution_order: example: 1 type: integer name: example: 打开风扇 type: string parameters: additionalProperties: true type: object type: allOf: - $ref: '#/definitions/models.TaskType' example: waiting type: object plan.TaskResponse: properties: description: example: 打开1号风扇 type: string execution_order: example: 1 type: integer id: example: 1 type: integer name: example: 打开风扇 type: string parameters: additionalProperties: true type: object plan_id: example: 1 type: integer type: allOf: - $ref: '#/definitions/models.TaskType' example: waiting type: object plan.UpdatePlanRequest: properties: content_type: allOf: - $ref: '#/definitions/models.PlanContentType' example: tasks cron_expression: example: 0 0 6 * * * type: string description: example: 更新后的描述 type: string execute_num: example: 10 type: integer execution_type: allOf: - $ref: '#/definitions/models.PlanExecutionType' example: automatic name: example: 猪舍温度控制计划V2 type: string sub_plan_ids: items: type: integer type: array tasks: items: $ref: '#/definitions/plan.TaskRequest' type: array 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: /api/v1/devices: get: description: 获取系统中所有设备的列表 produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: items: $ref: '#/definitions/git_huangwc_com_pig_pig-farm-controller_internal_app_controller_device.DeviceResponse' type: array type: object 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: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/git_huangwc_com_pig_pig-farm-controller_internal_app_controller_device.DeviceResponse' type: object summary: 创建新设备 tags: - 设备管理 /api/v1/devices/{id}: delete: description: 根据设备ID删除一个设备(软删除) parameters: - description: 设备ID in: path name: id required: true type: string produces: - application/json responses: "200": description: OK 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: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/git_huangwc_com_pig_pig-farm-controller_internal_app_controller_device.DeviceResponse' type: object 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: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/git_huangwc_com_pig_pig-farm-controller_internal_app_controller_device.DeviceResponse' type: object summary: 更新设备信息 tags: - 设备管理 /api/v1/plans: get: description: 获取所有计划的列表 produces: - application/json responses: "200": description: 业务码为200代表成功获取列表 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/plan.ListPlansResponse' type: object 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: 业务码为201代表创建成功 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/plan.PlanResponse' type: object summary: 创建计划 tags: - 计划管理 /api/v1/plans/{id}: delete: description: 根据计划ID删除计划。 parameters: - description: 计划ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: 业务码为200代表删除成功 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: 业务码为200代表成功获取 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/plan.PlanResponse' type: object 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: 业务码为200代表更新成功 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/plan.PlanResponse' type: object summary: 更新计划 tags: - 计划管理 /api/v1/plans/{id}/start: post: description: 根据计划ID启动一个计划的执行。 parameters: - description: 计划ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: 业务码为200代表成功启动计划 schema: $ref: '#/definitions/controller.Response' summary: 启动计划 tags: - 计划管理 /api/v1/plans/{id}/stop: post: description: 根据计划ID停止一个正在执行的计划。 parameters: - description: 计划ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: 业务码为200代表成功停止计划 schema: $ref: '#/definitions/controller.Response' summary: 停止计划 tags: - 计划管理 /api/v1/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: 业务码为201代表创建成功 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/user.CreateUserResponse' type: object summary: 创建新用户 tags: - 用户管理 /api/v1/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: 业务码为200代表登录成功 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/user.LoginResponse' type: object summary: 用户登录 tags: - 用户管理 swagger: "2.0"