2639 lines
		
	
	
		
			64 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			2639 lines
		
	
	
		
			64 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| definitions:
 | ||
|   controller.Response:
 | ||
|     properties:
 | ||
|       code:
 | ||
|         allOf:
 | ||
|         - $ref: '#/definitions/controller.ResponseCode'
 | ||
|         description: 业务状态码
 | ||
|       data:
 | ||
|         description: 业务数据
 | ||
|       message:
 | ||
|         description: 提示信息
 | ||
|         type: string
 | ||
|     type: object
 | ||
|   controller.ResponseCode:
 | ||
|     enum:
 | ||
|     - 2000
 | ||
|     - 2001
 | ||
|     - 4000
 | ||
|     - 4001
 | ||
|     - 4004
 | ||
|     - 4009
 | ||
|     - 5000
 | ||
|     - 5003
 | ||
|     type: integer
 | ||
|     x-enum-comments:
 | ||
|       CodeBadRequest: 请求参数错误
 | ||
|       CodeConflict: 资源冲突
 | ||
|       CodeCreated: 创建成功
 | ||
|       CodeInternalError: 服务器内部错误
 | ||
|       CodeNotFound: 资源未找到
 | ||
|       CodeServiceUnavailable: 服务不可用
 | ||
|       CodeSuccess: 操作成功
 | ||
|       CodeUnauthorized: 未授权
 | ||
|     x-enum-descriptions:
 | ||
|     - 操作成功
 | ||
|     - 创建成功
 | ||
|     - 请求参数错误
 | ||
|     - 未授权
 | ||
|     - 资源未找到
 | ||
|     - 资源冲突
 | ||
|     - 服务器内部错误
 | ||
|     - 服务不可用
 | ||
|     x-enum-varnames:
 | ||
|     - CodeSuccess
 | ||
|     - CodeCreated
 | ||
|     - CodeBadRequest
 | ||
|     - CodeUnauthorized
 | ||
|     - CodeNotFound
 | ||
|     - CodeConflict
 | ||
|     - CodeInternalError
 | ||
|     - CodeServiceUnavailable
 | ||
|   dto.AreaControllerResponse:
 | ||
|     properties:
 | ||
|       created_at:
 | ||
|         type: string
 | ||
|       id:
 | ||
|         type: integer
 | ||
|       location:
 | ||
|         type: string
 | ||
|       name:
 | ||
|         type: string
 | ||
|       network_id:
 | ||
|         type: string
 | ||
|       properties:
 | ||
|         additionalProperties: true
 | ||
|         type: object
 | ||
|       status:
 | ||
|         type: string
 | ||
|       updated_at:
 | ||
|         type: string
 | ||
|     type: object
 | ||
|   dto.AssignEmptyPensToBatchRequest:
 | ||
|     type: object
 | ||
|   dto.BuyPigsRequest:
 | ||
|     properties:
 | ||
|       penID:
 | ||
|         description: 猪栏ID
 | ||
|         type: integer
 | ||
|       quantity:
 | ||
|         description: 买入猪只数量
 | ||
|         minimum: 1
 | ||
|         type: integer
 | ||
|       remarks:
 | ||
|         description: 备注
 | ||
|         type: string
 | ||
|       totalPrice:
 | ||
|         description: 总价
 | ||
|         minimum: 0
 | ||
|         type: number
 | ||
|       tradeDate:
 | ||
|         description: 交易日期
 | ||
|         type: string
 | ||
|       traderName:
 | ||
|         description: 交易方名称
 | ||
|         type: string
 | ||
|       unitPrice:
 | ||
|         description: 单价
 | ||
|         minimum: 0
 | ||
|         type: number
 | ||
|     required:
 | ||
|     - penID
 | ||
|     - quantity
 | ||
|     - totalPrice
 | ||
|     - tradeDate
 | ||
|     - traderName
 | ||
|     - unitPrice
 | ||
|     type: object
 | ||
|   dto.CreateAreaControllerRequest:
 | ||
|     properties:
 | ||
|       location:
 | ||
|         type: string
 | ||
|       name:
 | ||
|         type: string
 | ||
|       network_id:
 | ||
|         type: string
 | ||
|       properties:
 | ||
|         additionalProperties: true
 | ||
|         type: object
 | ||
|     required:
 | ||
|     - name
 | ||
|     - network_id
 | ||
|     type: object
 | ||
|   dto.CreateDeviceRequest:
 | ||
|     properties:
 | ||
|       area_controller_id:
 | ||
|         type: integer
 | ||
|       device_template_id:
 | ||
|         type: integer
 | ||
|       location:
 | ||
|         type: string
 | ||
|       name:
 | ||
|         type: string
 | ||
|       properties:
 | ||
|         additionalProperties: true
 | ||
|         type: object
 | ||
|     required:
 | ||
|     - area_controller_id
 | ||
|     - device_template_id
 | ||
|     - name
 | ||
|     type: object
 | ||
|   dto.CreateDeviceTemplateRequest:
 | ||
|     properties:
 | ||
|       category:
 | ||
|         $ref: '#/definitions/models.DeviceCategory'
 | ||
|       commands:
 | ||
|         additionalProperties: true
 | ||
|         type: object
 | ||
|       description:
 | ||
|         type: string
 | ||
|       manufacturer:
 | ||
|         type: string
 | ||
|       name:
 | ||
|         type: string
 | ||
|       values:
 | ||
|         items:
 | ||
|           $ref: '#/definitions/models.ValueDescriptor'
 | ||
|         type: array
 | ||
|     required:
 | ||
|     - category
 | ||
|     - commands
 | ||
|     - name
 | ||
|     type: object
 | ||
|   dto.CreatePenRequest:
 | ||
|     properties:
 | ||
|       capacity:
 | ||
|         type: integer
 | ||
|       house_id:
 | ||
|         type: integer
 | ||
|       pen_number:
 | ||
|         type: string
 | ||
|     required:
 | ||
|     - capacity
 | ||
|     - house_id
 | ||
|     - pen_number
 | ||
|     type: object
 | ||
|   dto.CreatePigHouseRequest:
 | ||
|     properties:
 | ||
|       description:
 | ||
|         type: string
 | ||
|       name:
 | ||
|         type: string
 | ||
|     required:
 | ||
|     - name
 | ||
|     type: object
 | ||
|   dto.CreatePlanRequest:
 | ||
|     properties:
 | ||
|       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: 自动
 | ||
|       name:
 | ||
|         example: 猪舍温度控制计划
 | ||
|         type: string
 | ||
|       sub_plan_ids:
 | ||
|         items:
 | ||
|           type: integer
 | ||
|         type: array
 | ||
|       tasks:
 | ||
|         items:
 | ||
|           $ref: '#/definitions/dto.TaskRequest'
 | ||
|         type: array
 | ||
|     required:
 | ||
|     - execution_type
 | ||
|     - name
 | ||
|     type: object
 | ||
|   dto.CreateUserRequest:
 | ||
|     properties:
 | ||
|       password:
 | ||
|         example: password123
 | ||
|         type: string
 | ||
|       username:
 | ||
|         example: newuser
 | ||
|         type: string
 | ||
|     required:
 | ||
|     - password
 | ||
|     - username
 | ||
|     type: object
 | ||
|   dto.CreateUserResponse:
 | ||
|     properties:
 | ||
|       id:
 | ||
|         example: 1
 | ||
|         type: integer
 | ||
|       username:
 | ||
|         example: newuser
 | ||
|         type: string
 | ||
|     type: object
 | ||
|   dto.DeviceResponse:
 | ||
|     properties:
 | ||
|       area_controller_id:
 | ||
|         type: integer
 | ||
|       area_controller_name:
 | ||
|         type: string
 | ||
|       created_at:
 | ||
|         type: string
 | ||
|       device_template_id:
 | ||
|         type: integer
 | ||
|       device_template_name:
 | ||
|         type: string
 | ||
|       id:
 | ||
|         type: integer
 | ||
|       location:
 | ||
|         type: string
 | ||
|       name:
 | ||
|         type: string
 | ||
|       properties:
 | ||
|         additionalProperties: true
 | ||
|         type: object
 | ||
|       updated_at:
 | ||
|         type: string
 | ||
|     type: object
 | ||
|   dto.DeviceTemplateResponse:
 | ||
|     properties:
 | ||
|       category:
 | ||
|         $ref: '#/definitions/models.DeviceCategory'
 | ||
|       commands:
 | ||
|         additionalProperties: true
 | ||
|         type: object
 | ||
|       created_at:
 | ||
|         type: string
 | ||
|       description:
 | ||
|         type: string
 | ||
|       id:
 | ||
|         type: integer
 | ||
|       manufacturer:
 | ||
|         type: string
 | ||
|       name:
 | ||
|         type: string
 | ||
|       updated_at:
 | ||
|         type: string
 | ||
|       values:
 | ||
|         items:
 | ||
|           $ref: '#/definitions/models.ValueDescriptor'
 | ||
|         type: array
 | ||
|     type: object
 | ||
|   dto.HistoryResponse:
 | ||
|     properties:
 | ||
|       action_type:
 | ||
|         example: 更新设备
 | ||
|         type: string
 | ||
|       description:
 | ||
|         example: 设备更新成功
 | ||
|         type: string
 | ||
|       target_resource: {}
 | ||
|       time:
 | ||
|         type: string
 | ||
|       user_id:
 | ||
|         example: 101
 | ||
|         type: integer
 | ||
|       username:
 | ||
|         example: testuser
 | ||
|         type: string
 | ||
|     type: object
 | ||
|   dto.ListHistoryResponse:
 | ||
|     properties:
 | ||
|       history:
 | ||
|         items:
 | ||
|           $ref: '#/definitions/dto.HistoryResponse'
 | ||
|         type: array
 | ||
|       total:
 | ||
|         example: 100
 | ||
|         type: integer
 | ||
|     type: object
 | ||
|   dto.LoginRequest:
 | ||
|     properties:
 | ||
|       identifier:
 | ||
|         description: Identifier 可以是用户名、邮箱、手机号、微信号或飞书账号
 | ||
|         example: testuser
 | ||
|         type: string
 | ||
|       password:
 | ||
|         example: password123
 | ||
|         type: string
 | ||
|     required:
 | ||
|     - identifier
 | ||
|     - password
 | ||
|     type: object
 | ||
|   dto.LoginResponse:
 | ||
|     properties:
 | ||
|       id:
 | ||
|         example: 1
 | ||
|         type: integer
 | ||
|       token:
 | ||
|         example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
 | ||
|         type: string
 | ||
|       username:
 | ||
|         example: testuser
 | ||
|         type: string
 | ||
|     type: object
 | ||
|   dto.ManualControlDeviceRequest:
 | ||
|     properties:
 | ||
|       action:
 | ||
|         description: Action 不传表示这是一个传感器, 会触发一次采集
 | ||
|         type: string
 | ||
|     type: object
 | ||
|   dto.MovePigsIntoPenRequest:
 | ||
|     properties:
 | ||
|       quantity:
 | ||
|         description: 移入猪只数量
 | ||
|         minimum: 1
 | ||
|         type: integer
 | ||
|       remarks:
 | ||
|         description: 备注
 | ||
|         type: string
 | ||
|       toPenID:
 | ||
|         description: 目标猪栏ID
 | ||
|         type: integer
 | ||
|     required:
 | ||
|     - quantity
 | ||
|     - toPenID
 | ||
|     type: object
 | ||
|   dto.PenResponse:
 | ||
|     properties:
 | ||
|       capacity:
 | ||
|         type: integer
 | ||
|       house_id:
 | ||
|         type: integer
 | ||
|       id:
 | ||
|         type: integer
 | ||
|       pen_number:
 | ||
|         type: string
 | ||
|       pig_batch_id:
 | ||
|         type: integer
 | ||
|       status:
 | ||
|         $ref: '#/definitions/models.PenStatus'
 | ||
|     type: object
 | ||
|   dto.PigBatchCreateDTO:
 | ||
|     properties:
 | ||
|       batch_number:
 | ||
|         description: 批次编号,必填
 | ||
|         type: string
 | ||
|       initial_count:
 | ||
|         description: 初始数量,必填,最小为1
 | ||
|         minimum: 1
 | ||
|         type: integer
 | ||
|       origin_type:
 | ||
|         allOf:
 | ||
|         - $ref: '#/definitions/models.PigBatchOriginType'
 | ||
|         description: 批次来源,必填
 | ||
|       start_date:
 | ||
|         description: 批次开始日期,必填
 | ||
|         type: string
 | ||
|       status:
 | ||
|         allOf:
 | ||
|         - $ref: '#/definitions/models.PigBatchStatus'
 | ||
|         description: 批次状态,必填
 | ||
|     required:
 | ||
|     - batch_number
 | ||
|     - initial_count
 | ||
|     - origin_type
 | ||
|     - start_date
 | ||
|     - status
 | ||
|     type: object
 | ||
|   dto.PigBatchResponseDTO:
 | ||
|     properties:
 | ||
|       batch_number:
 | ||
|         description: 批次编号
 | ||
|         type: string
 | ||
|       create_time:
 | ||
|         description: 创建时间
 | ||
|         type: string
 | ||
|       end_date:
 | ||
|         description: 批次结束日期
 | ||
|         type: string
 | ||
|       id:
 | ||
|         description: 批次ID
 | ||
|         type: integer
 | ||
|       initial_count:
 | ||
|         description: 初始数量
 | ||
|         type: integer
 | ||
|       is_active:
 | ||
|         description: 是否活跃
 | ||
|         type: boolean
 | ||
|       origin_type:
 | ||
|         allOf:
 | ||
|         - $ref: '#/definitions/models.PigBatchOriginType'
 | ||
|         description: 批次来源
 | ||
|       start_date:
 | ||
|         description: 批次开始日期
 | ||
|         type: string
 | ||
|       status:
 | ||
|         allOf:
 | ||
|         - $ref: '#/definitions/models.PigBatchStatus'
 | ||
|         description: 批次状态
 | ||
|       update_time:
 | ||
|         description: 更新时间
 | ||
|         type: string
 | ||
|     type: object
 | ||
|   dto.PigBatchUpdateDTO:
 | ||
|     properties:
 | ||
|       batch_number:
 | ||
|         description: 批次编号,可选
 | ||
|         type: string
 | ||
|       end_date:
 | ||
|         description: 批次结束日期,可选
 | ||
|         type: string
 | ||
|       initial_count:
 | ||
|         description: 初始数量,可选
 | ||
|         type: integer
 | ||
|       origin_type:
 | ||
|         allOf:
 | ||
|         - $ref: '#/definitions/models.PigBatchOriginType'
 | ||
|         description: 批次来源,可选
 | ||
|       start_date:
 | ||
|         description: 批次开始日期,可选
 | ||
|         type: string
 | ||
|       status:
 | ||
|         allOf:
 | ||
|         - $ref: '#/definitions/models.PigBatchStatus'
 | ||
|         description: 批次状态,可选
 | ||
|     type: object
 | ||
|   dto.PigHouseResponse:
 | ||
|     properties:
 | ||
|       description:
 | ||
|         type: string
 | ||
|       id:
 | ||
|         type: integer
 | ||
|       name:
 | ||
|         type: string
 | ||
|     type: object
 | ||
|   dto.PlanResponse:
 | ||
|     properties:
 | ||
|       content_type:
 | ||
|         allOf:
 | ||
|         - $ref: '#/definitions/models.PlanContentType'
 | ||
|         example: 任务
 | ||
|       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: 自动
 | ||
|       id:
 | ||
|         example: 1
 | ||
|         type: integer
 | ||
|       name:
 | ||
|         example: 猪舍温度控制计划
 | ||
|         type: string
 | ||
|       status:
 | ||
|         allOf:
 | ||
|         - $ref: '#/definitions/models.PlanStatus'
 | ||
|         example: 已启用
 | ||
|       sub_plans:
 | ||
|         items:
 | ||
|           $ref: '#/definitions/dto.SubPlanResponse'
 | ||
|         type: array
 | ||
|       tasks:
 | ||
|         items:
 | ||
|           $ref: '#/definitions/dto.TaskResponse'
 | ||
|         type: array
 | ||
|     type: object
 | ||
|   dto.ReclassifyPenToNewBatchRequest:
 | ||
|     properties:
 | ||
|       penID:
 | ||
|         description: 待划拨的猪栏ID
 | ||
|         type: integer
 | ||
|       remarks:
 | ||
|         description: 备注
 | ||
|         type: string
 | ||
|       toBatchID:
 | ||
|         description: 目标猪批次ID
 | ||
|         type: integer
 | ||
|     required:
 | ||
|     - penID
 | ||
|     - toBatchID
 | ||
|     type: object
 | ||
|   dto.RecordCullRequest:
 | ||
|     properties:
 | ||
|       happenedAt:
 | ||
|         description: 发生时间
 | ||
|         type: string
 | ||
|       penID:
 | ||
|         description: 猪栏ID
 | ||
|         type: integer
 | ||
|       quantity:
 | ||
|         description: 淘汰猪数量
 | ||
|         minimum: 1
 | ||
|         type: integer
 | ||
|       remarks:
 | ||
|         description: 备注
 | ||
|         type: string
 | ||
|     required:
 | ||
|     - happenedAt
 | ||
|     - penID
 | ||
|     - quantity
 | ||
|     type: object
 | ||
|   dto.RecordDeathRequest:
 | ||
|     properties:
 | ||
|       happenedAt:
 | ||
|         description: 发生时间
 | ||
|         type: string
 | ||
|       penID:
 | ||
|         description: 猪栏ID
 | ||
|         type: integer
 | ||
|       quantity:
 | ||
|         description: 死亡猪数量
 | ||
|         minimum: 1
 | ||
|         type: integer
 | ||
|       remarks:
 | ||
|         description: 备注
 | ||
|         type: string
 | ||
|     required:
 | ||
|     - happenedAt
 | ||
|     - penID
 | ||
|     - quantity
 | ||
|     type: object
 | ||
|   dto.RecordSickPigCullRequest:
 | ||
|     properties:
 | ||
|       happenedAt:
 | ||
|         description: 发生时间
 | ||
|         type: string
 | ||
|       penID:
 | ||
|         description: 猪栏ID
 | ||
|         type: integer
 | ||
|       quantity:
 | ||
|         description: 淘汰猪数量
 | ||
|         minimum: 1
 | ||
|         type: integer
 | ||
|       remarks:
 | ||
|         description: 备注
 | ||
|         type: string
 | ||
|       treatmentLocation:
 | ||
|         allOf:
 | ||
|         - $ref: '#/definitions/models.PigBatchSickPigTreatmentLocation'
 | ||
|         description: 治疗地点
 | ||
|     required:
 | ||
|     - happenedAt
 | ||
|     - penID
 | ||
|     - quantity
 | ||
|     - treatmentLocation
 | ||
|     type: object
 | ||
|   dto.RecordSickPigDeathRequest:
 | ||
|     properties:
 | ||
|       happenedAt:
 | ||
|         description: 发生时间
 | ||
|         type: string
 | ||
|       penID:
 | ||
|         description: 猪栏ID
 | ||
|         type: integer
 | ||
|       quantity:
 | ||
|         description: 死亡猪数量
 | ||
|         minimum: 1
 | ||
|         type: integer
 | ||
|       remarks:
 | ||
|         description: 备注
 | ||
|         type: string
 | ||
|       treatmentLocation:
 | ||
|         allOf:
 | ||
|         - $ref: '#/definitions/models.PigBatchSickPigTreatmentLocation'
 | ||
|         description: 治疗地点
 | ||
|     required:
 | ||
|     - happenedAt
 | ||
|     - penID
 | ||
|     - quantity
 | ||
|     - treatmentLocation
 | ||
|     type: object
 | ||
|   dto.RecordSickPigRecoveryRequest:
 | ||
|     properties:
 | ||
|       happenedAt:
 | ||
|         description: 发生时间
 | ||
|         type: string
 | ||
|       penID:
 | ||
|         description: 猪栏ID
 | ||
|         type: integer
 | ||
|       quantity:
 | ||
|         description: 康复猪数量
 | ||
|         minimum: 1
 | ||
|         type: integer
 | ||
|       remarks:
 | ||
|         description: 备注
 | ||
|         type: string
 | ||
|       treatmentLocation:
 | ||
|         allOf:
 | ||
|         - $ref: '#/definitions/models.PigBatchSickPigTreatmentLocation'
 | ||
|         description: 治疗地点
 | ||
|     required:
 | ||
|     - happenedAt
 | ||
|     - penID
 | ||
|     - quantity
 | ||
|     - treatmentLocation
 | ||
|     type: object
 | ||
|   dto.RecordSickPigsRequest:
 | ||
|     properties:
 | ||
|       happenedAt:
 | ||
|         description: 发生时间
 | ||
|         type: string
 | ||
|       penID:
 | ||
|         description: 猪栏ID
 | ||
|         type: integer
 | ||
|       quantity:
 | ||
|         description: 病猪数量
 | ||
|         minimum: 1
 | ||
|         type: integer
 | ||
|       remarks:
 | ||
|         description: 备注
 | ||
|         type: string
 | ||
|       treatmentLocation:
 | ||
|         allOf:
 | ||
|         - $ref: '#/definitions/models.PigBatchSickPigTreatmentLocation'
 | ||
|         description: 治疗地点
 | ||
|     required:
 | ||
|     - happenedAt
 | ||
|     - penID
 | ||
|     - quantity
 | ||
|     - treatmentLocation
 | ||
|     type: object
 | ||
|   dto.SellPigsRequest:
 | ||
|     properties:
 | ||
|       penID:
 | ||
|         description: 猪栏ID
 | ||
|         type: integer
 | ||
|       quantity:
 | ||
|         description: 卖出猪只数量
 | ||
|         minimum: 1
 | ||
|         type: integer
 | ||
|       remarks:
 | ||
|         description: 备注
 | ||
|         type: string
 | ||
|       totalPrice:
 | ||
|         description: 总价
 | ||
|         minimum: 0
 | ||
|         type: number
 | ||
|       tradeDate:
 | ||
|         description: 交易日期
 | ||
|         type: string
 | ||
|       traderName:
 | ||
|         description: 交易方名称
 | ||
|         type: string
 | ||
|       unitPrice:
 | ||
|         description: 单价
 | ||
|         minimum: 0
 | ||
|         type: number
 | ||
|     required:
 | ||
|     - penID
 | ||
|     - quantity
 | ||
|     - totalPrice
 | ||
|     - tradeDate
 | ||
|     - traderName
 | ||
|     - unitPrice
 | ||
|     type: object
 | ||
|   dto.SubPlanResponse:
 | ||
|     properties:
 | ||
|       child_plan:
 | ||
|         $ref: '#/definitions/dto.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
 | ||
|   dto.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: 等待
 | ||
|     type: object
 | ||
|   dto.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: 等待
 | ||
|     type: object
 | ||
|   dto.TransferPigsAcrossBatchesRequest:
 | ||
|     properties:
 | ||
|       destBatchID:
 | ||
|         description: 目标猪批次ID
 | ||
|         type: integer
 | ||
|       fromPenID:
 | ||
|         description: 源猪栏ID
 | ||
|         type: integer
 | ||
|       quantity:
 | ||
|         description: 调栏猪只数量
 | ||
|         minimum: 1
 | ||
|         type: integer
 | ||
|       remarks:
 | ||
|         description: 备注
 | ||
|         type: string
 | ||
|       toPenID:
 | ||
|         description: 目标猪栏ID
 | ||
|         type: integer
 | ||
|     required:
 | ||
|     - destBatchID
 | ||
|     - fromPenID
 | ||
|     - quantity
 | ||
|     - toPenID
 | ||
|     type: object
 | ||
|   dto.TransferPigsWithinBatchRequest:
 | ||
|     properties:
 | ||
|       fromPenID:
 | ||
|         description: 源猪栏ID
 | ||
|         type: integer
 | ||
|       quantity:
 | ||
|         description: 调栏猪只数量
 | ||
|         minimum: 1
 | ||
|         type: integer
 | ||
|       remarks:
 | ||
|         description: 备注
 | ||
|         type: string
 | ||
|       toPenID:
 | ||
|         description: 目标猪栏ID
 | ||
|         type: integer
 | ||
|     required:
 | ||
|     - fromPenID
 | ||
|     - quantity
 | ||
|     - toPenID
 | ||
|     type: object
 | ||
|   dto.UpdateAreaControllerRequest:
 | ||
|     properties:
 | ||
|       location:
 | ||
|         type: string
 | ||
|       name:
 | ||
|         type: string
 | ||
|       network_id:
 | ||
|         type: string
 | ||
|       properties:
 | ||
|         additionalProperties: true
 | ||
|         type: object
 | ||
|     required:
 | ||
|     - name
 | ||
|     - network_id
 | ||
|     type: object
 | ||
|   dto.UpdateDeviceRequest:
 | ||
|     properties:
 | ||
|       area_controller_id:
 | ||
|         type: integer
 | ||
|       device_template_id:
 | ||
|         type: integer
 | ||
|       location:
 | ||
|         type: string
 | ||
|       name:
 | ||
|         type: string
 | ||
|       properties:
 | ||
|         additionalProperties: true
 | ||
|         type: object
 | ||
|     required:
 | ||
|     - area_controller_id
 | ||
|     - device_template_id
 | ||
|     - name
 | ||
|     type: object
 | ||
|   dto.UpdateDeviceTemplateRequest:
 | ||
|     properties:
 | ||
|       category:
 | ||
|         $ref: '#/definitions/models.DeviceCategory'
 | ||
|       commands:
 | ||
|         additionalProperties: true
 | ||
|         type: object
 | ||
|       description:
 | ||
|         type: string
 | ||
|       manufacturer:
 | ||
|         type: string
 | ||
|       name:
 | ||
|         type: string
 | ||
|       values:
 | ||
|         items:
 | ||
|           $ref: '#/definitions/models.ValueDescriptor'
 | ||
|         type: array
 | ||
|     required:
 | ||
|     - category
 | ||
|     - commands
 | ||
|     - name
 | ||
|     type: object
 | ||
|   dto.UpdatePenRequest:
 | ||
|     properties:
 | ||
|       capacity:
 | ||
|         type: integer
 | ||
|       house_id:
 | ||
|         type: integer
 | ||
|       pen_number:
 | ||
|         type: string
 | ||
|       status:
 | ||
|         allOf:
 | ||
|         - $ref: '#/definitions/models.PenStatus'
 | ||
|         description: 添加oneof校验
 | ||
|         enum:
 | ||
|         - 空闲
 | ||
|         - 使用中
 | ||
|         - 病猪栏
 | ||
|         - 康复栏
 | ||
|         - 清洗消毒
 | ||
|         - 维修中
 | ||
|     required:
 | ||
|     - capacity
 | ||
|     - house_id
 | ||
|     - pen_number
 | ||
|     - status
 | ||
|     type: object
 | ||
|   dto.UpdatePenStatusRequest:
 | ||
|     properties:
 | ||
|       status:
 | ||
|         allOf:
 | ||
|         - $ref: '#/definitions/models.PenStatus'
 | ||
|         enum:
 | ||
|         - 空闲
 | ||
|         - 使用中
 | ||
|         - 病猪栏
 | ||
|         - 康复栏
 | ||
|         - 清洗消毒
 | ||
|         - 维修中
 | ||
|         example: 病猪栏
 | ||
|     required:
 | ||
|     - status
 | ||
|     type: object
 | ||
|   dto.UpdatePigHouseRequest:
 | ||
|     properties:
 | ||
|       description:
 | ||
|         type: string
 | ||
|       name:
 | ||
|         type: string
 | ||
|     required:
 | ||
|     - name
 | ||
|     type: object
 | ||
|   dto.UpdatePlanRequest:
 | ||
|     properties:
 | ||
|       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: 自动
 | ||
|       name:
 | ||
|         example: 猪舍温度控制计划V2
 | ||
|         type: string
 | ||
|       sub_plan_ids:
 | ||
|         items:
 | ||
|           type: integer
 | ||
|         type: array
 | ||
|       tasks:
 | ||
|         items:
 | ||
|           $ref: '#/definitions/dto.TaskRequest'
 | ||
|         type: array
 | ||
|     required:
 | ||
|     - execution_type
 | ||
|     type: object
 | ||
|   models.DeviceCategory:
 | ||
|     enum:
 | ||
|     - 执行器
 | ||
|     - 传感器
 | ||
|     type: string
 | ||
|     x-enum-varnames:
 | ||
|     - CategoryActuator
 | ||
|     - CategorySensor
 | ||
|   models.PenStatus:
 | ||
|     enum:
 | ||
|     - 空闲
 | ||
|     - 使用中
 | ||
|     - 病猪栏
 | ||
|     - 康复栏
 | ||
|     - 清洗消毒
 | ||
|     - 维修中
 | ||
|     type: string
 | ||
|     x-enum-varnames:
 | ||
|     - PenStatusEmpty
 | ||
|     - PenStatusOccupied
 | ||
|     - PenStatusSickPen
 | ||
|     - PenStatusRecovering
 | ||
|     - PenStatusCleaning
 | ||
|     - PenStatusUnderMaint
 | ||
|   models.PigBatchOriginType:
 | ||
|     enum:
 | ||
|     - 自繁
 | ||
|     - 外购
 | ||
|     type: string
 | ||
|     x-enum-varnames:
 | ||
|     - OriginTypeSelfFarrowed
 | ||
|     - OriginTypePurchased
 | ||
|   models.PigBatchSickPigTreatmentLocation:
 | ||
|     enum:
 | ||
|     - 原地治疗
 | ||
|     - 病猪栏治疗
 | ||
|     type: string
 | ||
|     x-enum-varnames:
 | ||
|     - TreatmentLocationOnSite
 | ||
|     - TreatmentLocationSickBay
 | ||
|   models.PigBatchStatus:
 | ||
|     enum:
 | ||
|     - 保育
 | ||
|     - 生长
 | ||
|     - 育肥
 | ||
|     - 待售
 | ||
|     - 已出售
 | ||
|     - 已归档
 | ||
|     type: string
 | ||
|     x-enum-comments:
 | ||
|       BatchStatusArchived: 批次结束(如全群淘汰等)
 | ||
|       BatchStatusFinishing: 最后的育肥阶段
 | ||
|       BatchStatusForSale: 达到出栏标准
 | ||
|       BatchStatusGrowing: 生长育肥阶段
 | ||
|       BatchStatusWeaning: 从断奶到保育结束
 | ||
|     x-enum-descriptions:
 | ||
|     - 从断奶到保育结束
 | ||
|     - 生长育肥阶段
 | ||
|     - 最后的育肥阶段
 | ||
|     - 达到出栏标准
 | ||
|     - ""
 | ||
|     - 批次结束(如全群淘汰等)
 | ||
|     x-enum-varnames:
 | ||
|     - BatchStatusWeaning
 | ||
|     - BatchStatusGrowing
 | ||
|     - BatchStatusFinishing
 | ||
|     - BatchStatusForSale
 | ||
|     - BatchStatusSold
 | ||
|     - BatchStatusArchived
 | ||
|   models.PlanContentType:
 | ||
|     enum:
 | ||
|     - 子计划
 | ||
|     - 任务
 | ||
|     type: string
 | ||
|     x-enum-comments:
 | ||
|       PlanContentTypeSubPlans: 计划包含子计划
 | ||
|       PlanContentTypeTasks: 计划包含任务
 | ||
|     x-enum-descriptions:
 | ||
|     - 计划包含子计划
 | ||
|     - 计划包含任务
 | ||
|     x-enum-varnames:
 | ||
|     - PlanContentTypeSubPlans
 | ||
|     - PlanContentTypeTasks
 | ||
|   models.PlanExecutionType:
 | ||
|     enum:
 | ||
|     - 自动
 | ||
|     - 手动
 | ||
|     type: string
 | ||
|     x-enum-comments:
 | ||
|       PlanExecutionTypeAutomatic: 自动执行 (包含定时和循环)
 | ||
|       PlanExecutionTypeManual: 手动执行
 | ||
|     x-enum-descriptions:
 | ||
|     - 自动执行 (包含定时和循环)
 | ||
|     - 手动执行
 | ||
|     x-enum-varnames:
 | ||
|     - PlanExecutionTypeAutomatic
 | ||
|     - PlanExecutionTypeManual
 | ||
|   models.PlanStatus:
 | ||
|     enum:
 | ||
|     - 已禁用
 | ||
|     - 已启用
 | ||
|     - 执行完毕
 | ||
|     - 执行失败
 | ||
|     type: string
 | ||
|     x-enum-comments:
 | ||
|       PlanStatusDisabled: 禁用计划
 | ||
|       PlanStatusEnabled: 启用计划
 | ||
|       PlanStatusFailed: 执行失败
 | ||
|       PlanStatusStopped: 执行完毕
 | ||
|     x-enum-descriptions:
 | ||
|     - 禁用计划
 | ||
|     - 启用计划
 | ||
|     - 执行完毕
 | ||
|     - 执行失败
 | ||
|     x-enum-varnames:
 | ||
|     - PlanStatusDisabled
 | ||
|     - PlanStatusEnabled
 | ||
|     - PlanStatusStopped
 | ||
|     - PlanStatusFailed
 | ||
|   models.SensorType:
 | ||
|     enum:
 | ||
|     - 信号强度
 | ||
|     - 电池电量
 | ||
|     - 温度
 | ||
|     - 湿度
 | ||
|     - 重量
 | ||
|     type: string
 | ||
|     x-enum-comments:
 | ||
|       SensorTypeBatteryLevel: 电池电量
 | ||
|       SensorTypeHumidity: 湿度
 | ||
|       SensorTypeSignalMetrics: 信号强度
 | ||
|       SensorTypeTemperature: 温度
 | ||
|       SensorTypeWeight: 重量
 | ||
|     x-enum-descriptions:
 | ||
|     - 信号强度
 | ||
|     - 电池电量
 | ||
|     - 温度
 | ||
|     - 湿度
 | ||
|     - 重量
 | ||
|     x-enum-varnames:
 | ||
|     - SensorTypeSignalMetrics
 | ||
|     - SensorTypeBatteryLevel
 | ||
|     - SensorTypeTemperature
 | ||
|     - SensorTypeHumidity
 | ||
|     - SensorTypeWeight
 | ||
|   models.TaskType:
 | ||
|     enum:
 | ||
|     - 计划分析
 | ||
|     - 等待
 | ||
|     - 下料
 | ||
|     type: string
 | ||
|     x-enum-comments:
 | ||
|       TaskPlanAnalysis: 解析Plan的Task列表并添加到待执行队列的特殊任务
 | ||
|       TaskTypeReleaseFeedWeight: 下料口释放指定重量任务
 | ||
|       TaskTypeWaiting: 等待任务
 | ||
|     x-enum-descriptions:
 | ||
|     - 解析Plan的Task列表并添加到待执行队列的特殊任务
 | ||
|     - 等待任务
 | ||
|     - 下料口释放指定重量任务
 | ||
|     x-enum-varnames:
 | ||
|     - TaskPlanAnalysis
 | ||
|     - TaskTypeWaiting
 | ||
|     - TaskTypeReleaseFeedWeight
 | ||
|   models.ValueDescriptor:
 | ||
|     properties:
 | ||
|       multiplier:
 | ||
|         description: 乘数,用于原始数据转换
 | ||
|         type: number
 | ||
|       offset:
 | ||
|         description: 偏移量,用于原始数据转换
 | ||
|         type: number
 | ||
|       type:
 | ||
|         $ref: '#/definitions/models.SensorType'
 | ||
|     type: object
 | ||
| info:
 | ||
|   contact:
 | ||
|     email: divano@example.com
 | ||
|     name: Divano
 | ||
|     url: http://www.example.com
 | ||
|   description: 这是一个用于管理猪场设备的后端服务。
 | ||
|   license:
 | ||
|     name: Apache 2.0
 | ||
|     url: http://www.apache.org/licenses/LICENSE-2.0.html
 | ||
|   title: 猪场管理系统 API
 | ||
|   version: "1.0"
 | ||
| paths:
 | ||
|   /api/v1/area-controllers:
 | ||
|     get:
 | ||
|       description: 获取系统中所有区域主控的列表
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: OK
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   items:
 | ||
|                     $ref: '#/definitions/dto.AreaControllerResponse'
 | ||
|                   type: array
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 获取所有区域主控列表
 | ||
|       tags:
 | ||
|       - 区域主控管理
 | ||
|     post:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 根据提供的信息创建一个新区域主控
 | ||
|       parameters:
 | ||
|       - description: 区域主控信息
 | ||
|         in: body
 | ||
|         name: areaController
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.CreateAreaControllerRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: OK
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   $ref: '#/definitions/dto.AreaControllerResponse'
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 创建新区域主控
 | ||
|       tags:
 | ||
|       - 区域主控管理
 | ||
|   /api/v1/area-controllers/{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'
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       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/dto.AreaControllerResponse'
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 获取区域主控信息
 | ||
|       tags:
 | ||
|       - 区域主控管理
 | ||
|     put:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 根据ID更新一个已存在的区域主控信息
 | ||
|       parameters:
 | ||
|       - description: 区域主控ID
 | ||
|         in: path
 | ||
|         name: id
 | ||
|         required: true
 | ||
|         type: string
 | ||
|       - description: 要更新的区域主控信息
 | ||
|         in: body
 | ||
|         name: areaController
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.UpdateAreaControllerRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: OK
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   $ref: '#/definitions/dto.AreaControllerResponse'
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 更新区域主控信息
 | ||
|       tags:
 | ||
|       - 区域主控管理
 | ||
|   /api/v1/device-templates:
 | ||
|     get:
 | ||
|       description: 获取系统中所有设备模板的列表
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: OK
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   items:
 | ||
|                     $ref: '#/definitions/dto.DeviceTemplateResponse'
 | ||
|                   type: array
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 获取设备模板列表
 | ||
|       tags:
 | ||
|       - 设备模板管理
 | ||
|     post:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 根据提供的信息创建一个新设备模板
 | ||
|       parameters:
 | ||
|       - description: 设备模板信息
 | ||
|         in: body
 | ||
|         name: deviceTemplate
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.CreateDeviceTemplateRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: OK
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   $ref: '#/definitions/dto.DeviceTemplateResponse'
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 创建新设备模板
 | ||
|       tags:
 | ||
|       - 设备模板管理
 | ||
|   /api/v1/device-templates/{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'
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       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/dto.DeviceTemplateResponse'
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 获取设备模板信息
 | ||
|       tags:
 | ||
|       - 设备模板管理
 | ||
|     put:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 根据设备模板ID更新一个已存在的设备模板信息
 | ||
|       parameters:
 | ||
|       - description: 设备模板ID
 | ||
|         in: path
 | ||
|         name: id
 | ||
|         required: true
 | ||
|         type: string
 | ||
|       - description: 要更新的设备模板信息
 | ||
|         in: body
 | ||
|         name: deviceTemplate
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.UpdateDeviceTemplateRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: OK
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   $ref: '#/definitions/dto.DeviceTemplateResponse'
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 更新设备模板信息
 | ||
|       tags:
 | ||
|       - 设备模板管理
 | ||
|   /api/v1/devices:
 | ||
|     get:
 | ||
|       description: 获取系统中所有设备的列表
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: OK
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   items:
 | ||
|                     $ref: '#/definitions/dto.DeviceResponse'
 | ||
|                   type: array
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 获取设备列表
 | ||
|       tags:
 | ||
|       - 设备管理
 | ||
|     post:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 根据提供的信息创建一个新设备
 | ||
|       parameters:
 | ||
|       - description: 设备信息
 | ||
|         in: body
 | ||
|         name: device
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.CreateDeviceRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: OK
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   $ref: '#/definitions/dto.DeviceResponse'
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       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'
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       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/dto.DeviceResponse'
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       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/dto.UpdateDeviceRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: OK
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   $ref: '#/definitions/dto.DeviceResponse'
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 更新设备信息
 | ||
|       tags:
 | ||
|       - 设备管理
 | ||
|   /api/v1/devices/manual-control/{id}:
 | ||
|     post:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 根据设备ID和指定的动作(开启或关闭)来手动控制设备
 | ||
|       parameters:
 | ||
|       - description: 设备ID
 | ||
|         in: path
 | ||
|         name: id
 | ||
|         required: true
 | ||
|         type: string
 | ||
|       - description: 手动控制指令
 | ||
|         in: body
 | ||
|         name: manualControl
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.ManualControlDeviceRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: OK
 | ||
|           schema:
 | ||
|             $ref: '#/definitions/controller.Response'
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 手动控制设备
 | ||
|       tags:
 | ||
|       - 设备管理
 | ||
|   /api/v1/pens:
 | ||
|     get:
 | ||
|       description: 获取所有猪栏的列表
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 获取成功
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   items:
 | ||
|                     $ref: '#/definitions/dto.PenResponse'
 | ||
|                   type: array
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 获取猪栏列表
 | ||
|       tags:
 | ||
|       - 猪场管理
 | ||
|     post:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 创建一个新的猪栏
 | ||
|       parameters:
 | ||
|       - description: 猪栏信息
 | ||
|         in: body
 | ||
|         name: body
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.CreatePenRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "201":
 | ||
|           description: 创建成功
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   $ref: '#/definitions/dto.PenResponse'
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 创建猪栏
 | ||
|       tags:
 | ||
|       - 猪场管理
 | ||
|   /api/v1/pens/{id}:
 | ||
|     delete:
 | ||
|       description: 根据ID删除一个猪栏
 | ||
|       parameters:
 | ||
|       - description: 猪栏ID
 | ||
|         in: path
 | ||
|         name: id
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 删除成功
 | ||
|           schema:
 | ||
|             $ref: '#/definitions/controller.Response'
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 删除猪栏
 | ||
|       tags:
 | ||
|       - 猪场管理
 | ||
|     get:
 | ||
|       description: 根据ID获取单个猪栏信息
 | ||
|       parameters:
 | ||
|       - description: 猪栏ID
 | ||
|         in: path
 | ||
|         name: id
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 获取成功
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   $ref: '#/definitions/dto.PenResponse'
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 获取单个猪栏
 | ||
|       tags:
 | ||
|       - 猪场管理
 | ||
|     put:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 更新一个已存在的猪栏信息
 | ||
|       parameters:
 | ||
|       - description: 猪栏ID
 | ||
|         in: path
 | ||
|         name: id
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       - description: 猪栏信息
 | ||
|         in: body
 | ||
|         name: body
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.UpdatePenRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 更新成功
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   $ref: '#/definitions/dto.PenResponse'
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 更新猪栏
 | ||
|       tags:
 | ||
|       - 猪场管理
 | ||
|   /api/v1/pens/{id}/status:
 | ||
|     put:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 更新指定猪栏的当前状态
 | ||
|       parameters:
 | ||
|       - description: 猪栏ID
 | ||
|         in: path
 | ||
|         name: id
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       - description: 新的猪栏状态
 | ||
|         in: body
 | ||
|         name: body
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.UpdatePenStatusRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 更新成功
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   $ref: '#/definitions/dto.PenResponse'
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 更新猪栏状态
 | ||
|       tags:
 | ||
|       - 猪场管理
 | ||
|   /api/v1/pig-batches:
 | ||
|     get:
 | ||
|       description: 获取所有猪批次的列表,支持按活跃状态筛选
 | ||
|       parameters:
 | ||
|       - description: 是否活跃 (true/false)
 | ||
|         in: query
 | ||
|         name: is_active
 | ||
|         type: boolean
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 获取成功
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   items:
 | ||
|                     $ref: '#/definitions/dto.PigBatchResponseDTO'
 | ||
|                   type: array
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 获取猪批次列表
 | ||
|       tags:
 | ||
|       - 猪群管理
 | ||
|     post:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 创建一个新的猪批次
 | ||
|       parameters:
 | ||
|       - description: 猪批次信息
 | ||
|         in: body
 | ||
|         name: body
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.PigBatchCreateDTO'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "201":
 | ||
|           description: 创建成功
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   $ref: '#/definitions/dto.PigBatchResponseDTO'
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 创建猪批次
 | ||
|       tags:
 | ||
|       - 猪群管理
 | ||
|   /api/v1/pig-batches/{id}:
 | ||
|     delete:
 | ||
|       description: 根据ID删除一个猪批次
 | ||
|       parameters:
 | ||
|       - description: 猪批次ID
 | ||
|         in: path
 | ||
|         name: id
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 删除成功
 | ||
|           schema:
 | ||
|             $ref: '#/definitions/controller.Response'
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 删除猪批次
 | ||
|       tags:
 | ||
|       - 猪群管理
 | ||
|     get:
 | ||
|       description: 根据ID获取单个猪批次信息
 | ||
|       parameters:
 | ||
|       - description: 猪批次ID
 | ||
|         in: path
 | ||
|         name: id
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 获取成功
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   $ref: '#/definitions/dto.PigBatchResponseDTO'
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 获取单个猪批次
 | ||
|       tags:
 | ||
|       - 猪群管理
 | ||
|     put:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 更新一个已存在的猪批次信息
 | ||
|       parameters:
 | ||
|       - description: 猪批次ID
 | ||
|         in: path
 | ||
|         name: id
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       - description: 猪批次信息
 | ||
|         in: body
 | ||
|         name: body
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.PigBatchUpdateDTO'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 更新成功
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   $ref: '#/definitions/dto.PigBatchResponseDTO'
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 更新猪批次
 | ||
|       tags:
 | ||
|       - 猪群管理
 | ||
|   /api/v1/pig-batches/assign-pens/{id}:
 | ||
|     post:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 将一个或多个空闲猪栏分配给指定的猪批次
 | ||
|       parameters:
 | ||
|       - description: 猪批次ID
 | ||
|         in: path
 | ||
|         name: id
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       - description: 待分配的猪栏ID列表
 | ||
|         in: body
 | ||
|         name: body
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.AssignEmptyPensToBatchRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 分配成功
 | ||
|           schema:
 | ||
|             $ref: '#/definitions/controller.Response'
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 为猪批次分配空栏
 | ||
|       tags:
 | ||
|       - 猪群管理
 | ||
|   /api/v1/pig-batches/buy-pigs/{id}:
 | ||
|     post:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 记录猪批次中的猪只购买事件
 | ||
|       parameters:
 | ||
|       - description: 猪批次ID
 | ||
|         in: path
 | ||
|         name: id
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       - description: 买猪请求信息
 | ||
|         in: body
 | ||
|         name: body
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.BuyPigsRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 买猪成功
 | ||
|           schema:
 | ||
|             $ref: '#/definitions/controller.Response'
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 处理买猪的业务逻辑
 | ||
|       tags:
 | ||
|       - 猪群管理
 | ||
|   /api/v1/pig-batches/move-pigs-into-pen/{id}:
 | ||
|     post:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 将指定数量的猪只从批次的“虚拟库存”移入一个已分配的猪栏
 | ||
|       parameters:
 | ||
|       - description: 猪批次ID
 | ||
|         in: path
 | ||
|         name: id
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       - description: 移入猪只请求信息 (包含目标猪栏ID、数量和备注)
 | ||
|         in: body
 | ||
|         name: body
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.MovePigsIntoPenRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 移入成功
 | ||
|           schema:
 | ||
|             $ref: '#/definitions/controller.Response'
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 将猪只从“虚拟库存”移入指定猪栏
 | ||
|       tags:
 | ||
|       - 猪群管理
 | ||
|   /api/v1/pig-batches/reclassify-pen/{fromBatchID}:
 | ||
|     post:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 将一个猪栏(连同其中的猪只)从一个批次整体划拨到另一个批次
 | ||
|       parameters:
 | ||
|       - description: 源猪批次ID
 | ||
|         in: path
 | ||
|         name: fromBatchID
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       - description: 划拨请求信息 (包含目标批次ID、猪栏ID和备注)
 | ||
|         in: body
 | ||
|         name: body
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.ReclassifyPenToNewBatchRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 划拨成功
 | ||
|           schema:
 | ||
|             $ref: '#/definitions/controller.Response'
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 将猪栏划拨到新批次
 | ||
|       tags:
 | ||
|       - 猪群管理
 | ||
|   /api/v1/pig-batches/record-cull/{id}:
 | ||
|     post:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 记录猪批次中正常猪只淘汰的数量和发生时间
 | ||
|       parameters:
 | ||
|       - description: 猪批次ID
 | ||
|         in: path
 | ||
|         name: id
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       - description: 记录正常猪只淘汰请求信息
 | ||
|         in: body
 | ||
|         name: body
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.RecordCullRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 记录成功
 | ||
|           schema:
 | ||
|             $ref: '#/definitions/controller.Response'
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 记录正常猪只淘汰事件
 | ||
|       tags:
 | ||
|       - 猪群管理
 | ||
|   /api/v1/pig-batches/record-death/{id}:
 | ||
|     post:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 记录猪批次中正常猪只死亡的数量和发生时间
 | ||
|       parameters:
 | ||
|       - description: 猪批次ID
 | ||
|         in: path
 | ||
|         name: id
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       - description: 记录正常猪只死亡请求信息
 | ||
|         in: body
 | ||
|         name: body
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.RecordDeathRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 记录成功
 | ||
|           schema:
 | ||
|             $ref: '#/definitions/controller.Response'
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 记录正常猪只死亡事件
 | ||
|       tags:
 | ||
|       - 猪群管理
 | ||
|   /api/v1/pig-batches/record-sick-pig-cull/{id}:
 | ||
|     post:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 记录猪批次中病猪淘汰的数量、治疗地点和发生时间
 | ||
|       parameters:
 | ||
|       - description: 猪批次ID
 | ||
|         in: path
 | ||
|         name: id
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       - description: 记录病猪淘汰请求信息
 | ||
|         in: body
 | ||
|         name: body
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.RecordSickPigCullRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 记录成功
 | ||
|           schema:
 | ||
|             $ref: '#/definitions/controller.Response'
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 记录病猪淘汰事件
 | ||
|       tags:
 | ||
|       - 猪群管理
 | ||
|   /api/v1/pig-batches/record-sick-pig-death/{id}:
 | ||
|     post:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 记录猪批次中病猪死亡的数量、治疗地点和发生时间
 | ||
|       parameters:
 | ||
|       - description: 猪批次ID
 | ||
|         in: path
 | ||
|         name: id
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       - description: 记录病猪死亡请求信息
 | ||
|         in: body
 | ||
|         name: body
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.RecordSickPigDeathRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 记录成功
 | ||
|           schema:
 | ||
|             $ref: '#/definitions/controller.Response'
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 记录病猪死亡事件
 | ||
|       tags:
 | ||
|       - 猪群管理
 | ||
|   /api/v1/pig-batches/record-sick-pig-recovery/{id}:
 | ||
|     post:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 记录猪批次中病猪康复的数量、治疗地点和发生时间
 | ||
|       parameters:
 | ||
|       - description: 猪批次ID
 | ||
|         in: path
 | ||
|         name: id
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       - description: 记录病猪康复请求信息
 | ||
|         in: body
 | ||
|         name: body
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.RecordSickPigRecoveryRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 记录成功
 | ||
|           schema:
 | ||
|             $ref: '#/definitions/controller.Response'
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 记录病猪康复事件
 | ||
|       tags:
 | ||
|       - 猪群管理
 | ||
|   /api/v1/pig-batches/record-sick-pigs/{id}:
 | ||
|     post:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 记录猪批次中新增病猪的数量、治疗地点和发生时间
 | ||
|       parameters:
 | ||
|       - description: 猪批次ID
 | ||
|         in: path
 | ||
|         name: id
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       - description: 记录病猪请求信息
 | ||
|         in: body
 | ||
|         name: body
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.RecordSickPigsRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 记录成功
 | ||
|           schema:
 | ||
|             $ref: '#/definitions/controller.Response'
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 记录新增病猪事件
 | ||
|       tags:
 | ||
|       - 猪群管理
 | ||
|   /api/v1/pig-batches/remove-pen/{penID}/{batchID}:
 | ||
|     delete:
 | ||
|       description: 将一个空闲猪栏从指定的猪批次中移除
 | ||
|       parameters:
 | ||
|       - description: 猪批次ID
 | ||
|         in: path
 | ||
|         name: batchID
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       - description: 待移除的猪栏ID
 | ||
|         in: path
 | ||
|         name: penID
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 移除成功
 | ||
|           schema:
 | ||
|             $ref: '#/definitions/controller.Response'
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 从猪批次移除空栏
 | ||
|       tags:
 | ||
|       - 猪群管理
 | ||
|   /api/v1/pig-batches/sell-pigs/{id}:
 | ||
|     post:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 记录猪批次中的猪只出售事件
 | ||
|       parameters:
 | ||
|       - description: 猪批次ID
 | ||
|         in: path
 | ||
|         name: id
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       - description: 卖猪请求信息
 | ||
|         in: body
 | ||
|         name: body
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.SellPigsRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 卖猪成功
 | ||
|           schema:
 | ||
|             $ref: '#/definitions/controller.Response'
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 处理卖猪的业务逻辑
 | ||
|       tags:
 | ||
|       - 猪群管理
 | ||
|   /api/v1/pig-batches/transfer-across-batches/{sourceBatchID}:
 | ||
|     post:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 将指定数量的猪只从一个猪群的猪栏调动到另一个猪群的猪栏
 | ||
|       parameters:
 | ||
|       - description: 源猪批次ID
 | ||
|         in: path
 | ||
|         name: sourceBatchID
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       - description: 跨群调栏请求信息
 | ||
|         in: body
 | ||
|         name: body
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.TransferPigsAcrossBatchesRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 调栏成功
 | ||
|           schema:
 | ||
|             $ref: '#/definitions/controller.Response'
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 跨猪群调栏
 | ||
|       tags:
 | ||
|       - 猪群管理
 | ||
|   /api/v1/pig-batches/transfer-within-batch/{id}:
 | ||
|     post:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 将指定数量的猪只在同一个猪群的不同猪栏间调动
 | ||
|       parameters:
 | ||
|       - description: 猪批次ID
 | ||
|         in: path
 | ||
|         name: id
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       - description: 群内调栏请求信息
 | ||
|         in: body
 | ||
|         name: body
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.TransferPigsWithinBatchRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 调栏成功
 | ||
|           schema:
 | ||
|             $ref: '#/definitions/controller.Response'
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 群内调栏
 | ||
|       tags:
 | ||
|       - 猪群管理
 | ||
|   /api/v1/pig-houses:
 | ||
|     get:
 | ||
|       description: 获取所有猪舍的列表
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 获取成功
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   items:
 | ||
|                     $ref: '#/definitions/dto.PigHouseResponse'
 | ||
|                   type: array
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 获取猪舍列表
 | ||
|       tags:
 | ||
|       - 猪场管理
 | ||
|     post:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 创建一个新的猪舍
 | ||
|       parameters:
 | ||
|       - description: 猪舍信息
 | ||
|         in: body
 | ||
|         name: body
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.CreatePigHouseRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "201":
 | ||
|           description: 创建成功
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   $ref: '#/definitions/dto.PigHouseResponse'
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 创建猪舍
 | ||
|       tags:
 | ||
|       - 猪场管理
 | ||
|   /api/v1/pig-houses/{id}:
 | ||
|     delete:
 | ||
|       description: 根据ID删除一个猪舍
 | ||
|       parameters:
 | ||
|       - description: 猪舍ID
 | ||
|         in: path
 | ||
|         name: id
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 删除成功
 | ||
|           schema:
 | ||
|             $ref: '#/definitions/controller.Response'
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 删除猪舍
 | ||
|       tags:
 | ||
|       - 猪场管理
 | ||
|     get:
 | ||
|       description: 根据ID获取单个猪舍信息
 | ||
|       parameters:
 | ||
|       - description: 猪舍ID
 | ||
|         in: path
 | ||
|         name: id
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 获取成功
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   $ref: '#/definitions/dto.PigHouseResponse'
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 获取单个猪舍
 | ||
|       tags:
 | ||
|       - 猪场管理
 | ||
|     put:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 更新一个已存在的猪舍信息
 | ||
|       parameters:
 | ||
|       - description: 猪舍ID
 | ||
|         in: path
 | ||
|         name: id
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       - description: 猪舍信息
 | ||
|         in: body
 | ||
|         name: body
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.UpdatePigHouseRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 更新成功
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   $ref: '#/definitions/dto.PigHouseResponse'
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 更新猪舍
 | ||
|       tags:
 | ||
|       - 猪场管理
 | ||
|   /api/v1/plans:
 | ||
|     get:
 | ||
|       description: 获取所有计划的列表
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 业务码为200代表成功获取列表
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   items:
 | ||
|                     $ref: '#/definitions/dto.PlanResponse'
 | ||
|                   type: array
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 获取计划列表
 | ||
|       tags:
 | ||
|       - 计划管理
 | ||
|     post:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 创建一个新的计划,包括其基本信息和所有关联的子计划/任务。
 | ||
|       parameters:
 | ||
|       - description: 计划信息
 | ||
|         in: body
 | ||
|         name: plan
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.CreatePlanRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 业务码为201代表创建成功
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   $ref: '#/definitions/dto.PlanResponse'
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       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'
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       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/dto.PlanResponse'
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       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/dto.UpdatePlanRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 业务码为200代表更新成功
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   $ref: '#/definitions/dto.PlanResponse'
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       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'
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       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'
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 停止计划
 | ||
|       tags:
 | ||
|       - 计划管理
 | ||
|   /api/v1/users:
 | ||
|     post:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 根据用户名和密码创建一个新的系统用户。
 | ||
|       parameters:
 | ||
|       - description: 用户信息
 | ||
|         in: body
 | ||
|         name: user
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.CreateUserRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 业务码为201代表创建成功
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   $ref: '#/definitions/dto.CreateUserResponse'
 | ||
|               type: object
 | ||
|       summary: 创建新用户
 | ||
|       tags:
 | ||
|       - 用户管理
 | ||
|   /api/v1/users/{id}/history:
 | ||
|     get:
 | ||
|       description: 根据用户ID,分页获取该用户的操作审计日志。
 | ||
|       parameters:
 | ||
|       - description: 用户ID
 | ||
|         in: path
 | ||
|         name: id
 | ||
|         required: true
 | ||
|         type: integer
 | ||
|       - default: 1
 | ||
|         description: 页码
 | ||
|         in: query
 | ||
|         name: page
 | ||
|         type: integer
 | ||
|       - default: 10
 | ||
|         description: 每页大小
 | ||
|         in: query
 | ||
|         name: page_size
 | ||
|         type: integer
 | ||
|       - description: 按操作类型过滤
 | ||
|         in: query
 | ||
|         name: action_type
 | ||
|         type: string
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 业务码为200代表成功获取
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   $ref: '#/definitions/dto.ListHistoryResponse'
 | ||
|               type: object
 | ||
|       security:
 | ||
|       - BearerAuth: []
 | ||
|       summary: 获取指定用户的操作历史
 | ||
|       tags:
 | ||
|       - 用户管理
 | ||
|   /api/v1/users/login:
 | ||
|     post:
 | ||
|       consumes:
 | ||
|       - application/json
 | ||
|       description: 用户可以使用用户名、邮箱、手机号、微信号或飞书账号进行登录,成功后返回 JWT 令牌。
 | ||
|       parameters:
 | ||
|       - description: 登录凭证
 | ||
|         in: body
 | ||
|         name: credentials
 | ||
|         required: true
 | ||
|         schema:
 | ||
|           $ref: '#/definitions/dto.LoginRequest'
 | ||
|       produces:
 | ||
|       - application/json
 | ||
|       responses:
 | ||
|         "200":
 | ||
|           description: 业务码为200代表登录成功
 | ||
|           schema:
 | ||
|             allOf:
 | ||
|             - $ref: '#/definitions/controller.Response'
 | ||
|             - properties:
 | ||
|                 data:
 | ||
|                   $ref: '#/definitions/dto.LoginResponse'
 | ||
|               type: object
 | ||
|       summary: 用户登录
 | ||
|       tags:
 | ||
|       - 用户管理
 | ||
| securityDefinitions:
 | ||
|   BearerAuth:
 | ||
|     in: header
 | ||
|     name: Authorization
 | ||
|     type: apiKey
 | ||
| swagger: "2.0"
 |