issue-5 #8
							
								
								
									
										24
									
								
								docs/docs.go
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								docs/docs.go
									
									
									
									
									
								
							| @@ -15,7 +15,7 @@ const docTemplate = `{ | |||||||
|     "host": "{{.Host}}", |     "host": "{{.Host}}", | ||||||
|     "basePath": "{{.BasePath}}", |     "basePath": "{{.BasePath}}", | ||||||
|     "paths": { |     "paths": { | ||||||
|         "/devices": { |         "/api/v1/devices": { | ||||||
|             "get": { |             "get": { | ||||||
|                 "description": "获取系统中所有设备的列表", |                 "description": "获取系统中所有设备的列表", | ||||||
|                 "produces": [ |                 "produces": [ | ||||||
| @@ -67,7 +67,7 @@ const docTemplate = `{ | |||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "/devices/{id}": { |         "/api/v1/devices/{id}": { | ||||||
|             "get": { |             "get": { | ||||||
|                 "description": "根据设备ID获取单个设备的详细信息", |                 "description": "根据设备ID获取单个设备的详细信息", | ||||||
|                 "produces": [ |                 "produces": [ | ||||||
| @@ -162,7 +162,7 @@ const docTemplate = `{ | |||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "/plans": { |         "/api/v1/plans": { | ||||||
|             "get": { |             "get": { | ||||||
|                 "description": "获取所有计划的列表", |                 "description": "获取所有计划的列表", | ||||||
|                 "produces": [ |                 "produces": [ | ||||||
| @@ -214,7 +214,7 @@ const docTemplate = `{ | |||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "/plans/{id}": { |         "/api/v1/plans/{id}": { | ||||||
|             "get": { |             "get": { | ||||||
|                 "description": "根据计划ID获取单个计划的详细信息。", |                 "description": "根据计划ID获取单个计划的详细信息。", | ||||||
|                 "produces": [ |                 "produces": [ | ||||||
| @@ -309,7 +309,7 @@ const docTemplate = `{ | |||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "/plans/{id}/start": { |         "/api/v1/plans/{id}/start": { | ||||||
|             "post": { |             "post": { | ||||||
|                 "description": "根据计划ID启动一个计划的执行。", |                 "description": "根据计划ID启动一个计划的执行。", | ||||||
|                 "produces": [ |                 "produces": [ | ||||||
| @@ -338,7 +338,7 @@ const docTemplate = `{ | |||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "/plans/{id}/stop": { |         "/api/v1/plans/{id}/stop": { | ||||||
|             "post": { |             "post": { | ||||||
|                 "description": "根据计划ID停止一个正在执行的计划。", |                 "description": "根据计划ID停止一个正在执行的计划。", | ||||||
|                 "produces": [ |                 "produces": [ | ||||||
| @@ -367,7 +367,7 @@ const docTemplate = `{ | |||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "/users": { |         "/api/v1/users": { | ||||||
|             "post": { |             "post": { | ||||||
|                 "description": "根据用户名和密码创建一个新的系统用户。", |                 "description": "根据用户名和密码创建一个新的系统用户。", | ||||||
|                 "consumes": [ |                 "consumes": [ | ||||||
| @@ -401,7 +401,7 @@ const docTemplate = `{ | |||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "/users/login": { |         "/api/v1/users/login": { | ||||||
|             "post": { |             "post": { | ||||||
|                 "description": "用户使用用户名和密码登录,成功后返回 JWT 令牌。", |                 "description": "用户使用用户名和密码登录,成功后返回 JWT 令牌。", | ||||||
|                 "consumes": [ |                 "consumes": [ | ||||||
| @@ -655,6 +655,10 @@ const docTemplate = `{ | |||||||
|                     "type": "string", |                     "type": "string", | ||||||
|                     "example": "根据温度自动调节风扇和加热器" |                     "example": "根据温度自动调节风扇和加热器" | ||||||
|                 }, |                 }, | ||||||
|  |                 "execute_num": { | ||||||
|  |                     "type": "integer", | ||||||
|  |                     "example": 10 | ||||||
|  |                 }, | ||||||
|                 "execution_type": { |                 "execution_type": { | ||||||
|                     "allOf": [ |                     "allOf": [ | ||||||
|                         { |                         { | ||||||
| @@ -868,6 +872,10 @@ const docTemplate = `{ | |||||||
|                     "type": "string", |                     "type": "string", | ||||||
|                     "example": "更新后的描述" |                     "example": "更新后的描述" | ||||||
|                 }, |                 }, | ||||||
|  |                 "execute_num": { | ||||||
|  |                     "type": "integer", | ||||||
|  |                     "example": 10 | ||||||
|  |                 }, | ||||||
|                 "execution_type": { |                 "execution_type": { | ||||||
|                     "allOf": [ |                     "allOf": [ | ||||||
|                         { |                         { | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ | |||||||
|         "contact": {} |         "contact": {} | ||||||
|     }, |     }, | ||||||
|     "paths": { |     "paths": { | ||||||
|         "/devices": { |         "/api/v1/devices": { | ||||||
|             "get": { |             "get": { | ||||||
|                 "description": "获取系统中所有设备的列表", |                 "description": "获取系统中所有设备的列表", | ||||||
|                 "produces": [ |                 "produces": [ | ||||||
| @@ -56,7 +56,7 @@ | |||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "/devices/{id}": { |         "/api/v1/devices/{id}": { | ||||||
|             "get": { |             "get": { | ||||||
|                 "description": "根据设备ID获取单个设备的详细信息", |                 "description": "根据设备ID获取单个设备的详细信息", | ||||||
|                 "produces": [ |                 "produces": [ | ||||||
| @@ -151,7 +151,7 @@ | |||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "/plans": { |         "/api/v1/plans": { | ||||||
|             "get": { |             "get": { | ||||||
|                 "description": "获取所有计划的列表", |                 "description": "获取所有计划的列表", | ||||||
|                 "produces": [ |                 "produces": [ | ||||||
| @@ -203,7 +203,7 @@ | |||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "/plans/{id}": { |         "/api/v1/plans/{id}": { | ||||||
|             "get": { |             "get": { | ||||||
|                 "description": "根据计划ID获取单个计划的详细信息。", |                 "description": "根据计划ID获取单个计划的详细信息。", | ||||||
|                 "produces": [ |                 "produces": [ | ||||||
| @@ -298,7 +298,7 @@ | |||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "/plans/{id}/start": { |         "/api/v1/plans/{id}/start": { | ||||||
|             "post": { |             "post": { | ||||||
|                 "description": "根据计划ID启动一个计划的执行。", |                 "description": "根据计划ID启动一个计划的执行。", | ||||||
|                 "produces": [ |                 "produces": [ | ||||||
| @@ -327,7 +327,7 @@ | |||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "/plans/{id}/stop": { |         "/api/v1/plans/{id}/stop": { | ||||||
|             "post": { |             "post": { | ||||||
|                 "description": "根据计划ID停止一个正在执行的计划。", |                 "description": "根据计划ID停止一个正在执行的计划。", | ||||||
|                 "produces": [ |                 "produces": [ | ||||||
| @@ -356,7 +356,7 @@ | |||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "/users": { |         "/api/v1/users": { | ||||||
|             "post": { |             "post": { | ||||||
|                 "description": "根据用户名和密码创建一个新的系统用户。", |                 "description": "根据用户名和密码创建一个新的系统用户。", | ||||||
|                 "consumes": [ |                 "consumes": [ | ||||||
| @@ -390,7 +390,7 @@ | |||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "/users/login": { |         "/api/v1/users/login": { | ||||||
|             "post": { |             "post": { | ||||||
|                 "description": "用户使用用户名和密码登录,成功后返回 JWT 令牌。", |                 "description": "用户使用用户名和密码登录,成功后返回 JWT 令牌。", | ||||||
|                 "consumes": [ |                 "consumes": [ | ||||||
| @@ -644,6 +644,10 @@ | |||||||
|                     "type": "string", |                     "type": "string", | ||||||
|                     "example": "根据温度自动调节风扇和加热器" |                     "example": "根据温度自动调节风扇和加热器" | ||||||
|                 }, |                 }, | ||||||
|  |                 "execute_num": { | ||||||
|  |                     "type": "integer", | ||||||
|  |                     "example": 10 | ||||||
|  |                 }, | ||||||
|                 "execution_type": { |                 "execution_type": { | ||||||
|                     "allOf": [ |                     "allOf": [ | ||||||
|                         { |                         { | ||||||
| @@ -857,6 +861,10 @@ | |||||||
|                     "type": "string", |                     "type": "string", | ||||||
|                     "example": "更新后的描述" |                     "example": "更新后的描述" | ||||||
|                 }, |                 }, | ||||||
|  |                 "execute_num": { | ||||||
|  |                     "type": "integer", | ||||||
|  |                     "example": 10 | ||||||
|  |                 }, | ||||||
|                 "execution_type": { |                 "execution_type": { | ||||||
|                     "allOf": [ |                     "allOf": [ | ||||||
|                         { |                         { | ||||||
|   | |||||||
| @@ -152,6 +152,9 @@ definitions: | |||||||
|       description: |       description: | ||||||
|         example: 根据温度自动调节风扇和加热器 |         example: 根据温度自动调节风扇和加热器 | ||||||
|         type: string |         type: string | ||||||
|  |       execute_num: | ||||||
|  |         example: 10 | ||||||
|  |         type: integer | ||||||
|       execution_type: |       execution_type: | ||||||
|         allOf: |         allOf: | ||||||
|         - $ref: '#/definitions/models.PlanExecutionType' |         - $ref: '#/definitions/models.PlanExecutionType' | ||||||
| @@ -294,6 +297,9 @@ definitions: | |||||||
|       description: |       description: | ||||||
|         example: 更新后的描述 |         example: 更新后的描述 | ||||||
|         type: string |         type: string | ||||||
|  |       execute_num: | ||||||
|  |         example: 10 | ||||||
|  |         type: integer | ||||||
|       execution_type: |       execution_type: | ||||||
|         allOf: |         allOf: | ||||||
|         - $ref: '#/definitions/models.PlanExecutionType' |         - $ref: '#/definitions/models.PlanExecutionType' | ||||||
| @@ -359,7 +365,7 @@ definitions: | |||||||
| info: | info: | ||||||
|   contact: {} |   contact: {} | ||||||
| paths: | paths: | ||||||
|   /devices: |   /api/v1/devices: | ||||||
|     get: |     get: | ||||||
|       description: 获取系统中所有设备的列表 |       description: 获取系统中所有设备的列表 | ||||||
|       produces: |       produces: | ||||||
| @@ -393,7 +399,7 @@ paths: | |||||||
|       summary: 创建新设备 |       summary: 创建新设备 | ||||||
|       tags: |       tags: | ||||||
|       - 设备管理 |       - 设备管理 | ||||||
|   /devices/{id}: |   /api/v1/devices/{id}: | ||||||
|     delete: |     delete: | ||||||
|       description: 根据设备ID删除一个设备(软删除) |       description: 根据设备ID删除一个设备(软删除) | ||||||
|       parameters: |       parameters: | ||||||
| @@ -456,7 +462,7 @@ paths: | |||||||
|       summary: 更新设备信息 |       summary: 更新设备信息 | ||||||
|       tags: |       tags: | ||||||
|       - 设备管理 |       - 设备管理 | ||||||
|   /plans: |   /api/v1/plans: | ||||||
|     get: |     get: | ||||||
|       description: 获取所有计划的列表 |       description: 获取所有计划的列表 | ||||||
|       produces: |       produces: | ||||||
| @@ -490,7 +496,7 @@ paths: | |||||||
|       summary: 创建计划 |       summary: 创建计划 | ||||||
|       tags: |       tags: | ||||||
|       - 计划管理 |       - 计划管理 | ||||||
|   /plans/{id}: |   /api/v1/plans/{id}: | ||||||
|     delete: |     delete: | ||||||
|       description: 根据计划ID删除计划。 |       description: 根据计划ID删除计划。 | ||||||
|       parameters: |       parameters: | ||||||
| @@ -553,7 +559,7 @@ paths: | |||||||
|       summary: 更新计划 |       summary: 更新计划 | ||||||
|       tags: |       tags: | ||||||
|       - 计划管理 |       - 计划管理 | ||||||
|   /plans/{id}/start: |   /api/v1/plans/{id}/start: | ||||||
|     post: |     post: | ||||||
|       description: 根据计划ID启动一个计划的执行。 |       description: 根据计划ID启动一个计划的执行。 | ||||||
|       parameters: |       parameters: | ||||||
| @@ -572,7 +578,7 @@ paths: | |||||||
|       summary: 启动计划 |       summary: 启动计划 | ||||||
|       tags: |       tags: | ||||||
|       - 计划管理 |       - 计划管理 | ||||||
|   /plans/{id}/stop: |   /api/v1/plans/{id}/stop: | ||||||
|     post: |     post: | ||||||
|       description: 根据计划ID停止一个正在执行的计划。 |       description: 根据计划ID停止一个正在执行的计划。 | ||||||
|       parameters: |       parameters: | ||||||
| @@ -591,7 +597,7 @@ paths: | |||||||
|       summary: 停止计划 |       summary: 停止计划 | ||||||
|       tags: |       tags: | ||||||
|       - 计划管理 |       - 计划管理 | ||||||
|   /users: |   /api/v1/users: | ||||||
|     post: |     post: | ||||||
|       consumes: |       consumes: | ||||||
|       - application/json |       - application/json | ||||||
| @@ -613,7 +619,7 @@ paths: | |||||||
|       summary: 创建新用户 |       summary: 创建新用户 | ||||||
|       tags: |       tags: | ||||||
|       - 用户管理 |       - 用户管理 | ||||||
|   /users/login: |   /api/v1/users/login: | ||||||
|     post: |     post: | ||||||
|       consumes: |       consumes: | ||||||
|       - application/json |       - application/json | ||||||
|   | |||||||
							
								
								
									
										65
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										65
									
								
								go.mod
									
									
									
									
									
								
							| @@ -7,7 +7,7 @@ require ( | |||||||
| 	github.com/go-openapi/errors v0.22.2 | 	github.com/go-openapi/errors v0.22.2 | ||||||
| 	github.com/go-openapi/runtime v0.28.0 | 	github.com/go-openapi/runtime v0.28.0 | ||||||
| 	github.com/go-openapi/strfmt v0.23.0 | 	github.com/go-openapi/strfmt v0.23.0 | ||||||
| 	github.com/go-openapi/swag v0.23.0 | 	github.com/go-openapi/swag v0.24.1 | ||||||
| 	github.com/go-openapi/validate v0.24.0 | 	github.com/go-openapi/validate v0.24.0 | ||||||
| 	github.com/golang-jwt/jwt/v5 v5.3.0 | 	github.com/golang-jwt/jwt/v5 v5.3.0 | ||||||
| 	github.com/panjf2000/ants/v2 v2.11.3 | 	github.com/panjf2000/ants/v2 v2.11.3 | ||||||
| @@ -17,8 +17,8 @@ require ( | |||||||
| 	github.com/swaggo/gin-swagger v1.6.1 | 	github.com/swaggo/gin-swagger v1.6.1 | ||||||
| 	github.com/swaggo/swag v1.16.6 | 	github.com/swaggo/swag v1.16.6 | ||||||
| 	go.uber.org/zap v1.27.0 | 	go.uber.org/zap v1.27.0 | ||||||
| 	golang.org/x/crypto v0.36.0 | 	golang.org/x/crypto v0.42.0 | ||||||
| 	google.golang.org/protobuf v1.34.1 | 	google.golang.org/protobuf v1.36.9 | ||||||
| 	gopkg.in/natefinch/lumberjack.v2 v2.2.1 | 	gopkg.in/natefinch/lumberjack.v2 v2.2.1 | ||||||
| 	gopkg.in/yaml.v2 v2.4.0 | 	gopkg.in/yaml.v2 v2.4.0 | ||||||
| 	gorm.io/datatypes v1.2.6 | 	gorm.io/datatypes v1.2.6 | ||||||
| @@ -31,25 +31,38 @@ require ( | |||||||
| 	filippo.io/edwards25519 v1.1.0 // indirect | 	filippo.io/edwards25519 v1.1.0 // indirect | ||||||
| 	github.com/KyleBanks/depth v1.2.1 // indirect | 	github.com/KyleBanks/depth v1.2.1 // indirect | ||||||
| 	github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect | 	github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect | ||||||
| 	github.com/bytedance/sonic v1.11.6 // indirect | 	github.com/bytedance/gopkg v0.1.3 // indirect | ||||||
| 	github.com/bytedance/sonic/loader v0.1.1 // indirect | 	github.com/bytedance/sonic v1.14.1 // indirect | ||||||
| 	github.com/cloudwego/base64x v0.1.4 // indirect | 	github.com/bytedance/sonic/loader v0.3.0 // indirect | ||||||
|  | 	github.com/cloudwego/base64x v0.1.6 // indirect | ||||||
| 	github.com/cloudwego/iasm v0.2.0 // indirect | 	github.com/cloudwego/iasm v0.2.0 // indirect | ||||||
|  | 	github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect | ||||||
| 	github.com/davecgh/go-spew v1.1.1 // indirect | 	github.com/davecgh/go-spew v1.1.1 // indirect | ||||||
| 	github.com/gabriel-vasile/mimetype v1.4.3 // indirect | 	github.com/gabriel-vasile/mimetype v1.4.10 // indirect | ||||||
| 	github.com/gin-contrib/sse v0.1.0 // indirect | 	github.com/gin-contrib/sse v1.1.0 // indirect | ||||||
| 	github.com/go-logr/logr v1.4.1 // indirect | 	github.com/go-logr/logr v1.4.1 // indirect | ||||||
| 	github.com/go-logr/stdr v1.2.2 // indirect | 	github.com/go-logr/stdr v1.2.2 // indirect | ||||||
| 	github.com/go-openapi/analysis v0.23.0 // indirect | 	github.com/go-openapi/analysis v0.23.0 // indirect | ||||||
| 	github.com/go-openapi/jsonpointer v0.21.0 // indirect | 	github.com/go-openapi/jsonpointer v0.22.0 // indirect | ||||||
| 	github.com/go-openapi/jsonreference v0.21.0 // indirect | 	github.com/go-openapi/jsonreference v0.21.1 // indirect | ||||||
| 	github.com/go-openapi/loads v0.22.0 // indirect | 	github.com/go-openapi/loads v0.22.0 // indirect | ||||||
| 	github.com/go-openapi/spec v0.21.0 // indirect | 	github.com/go-openapi/spec v0.21.0 // indirect | ||||||
|  | 	github.com/go-openapi/swag/cmdutils v0.24.0 // indirect | ||||||
|  | 	github.com/go-openapi/swag/conv v0.24.0 // indirect | ||||||
|  | 	github.com/go-openapi/swag/fileutils v0.24.0 // indirect | ||||||
|  | 	github.com/go-openapi/swag/jsonname v0.24.0 // indirect | ||||||
|  | 	github.com/go-openapi/swag/jsonutils v0.24.0 // indirect | ||||||
|  | 	github.com/go-openapi/swag/loading v0.24.0 // indirect | ||||||
|  | 	github.com/go-openapi/swag/mangling v0.24.0 // indirect | ||||||
|  | 	github.com/go-openapi/swag/netutils v0.24.0 // indirect | ||||||
|  | 	github.com/go-openapi/swag/stringutils v0.24.0 // indirect | ||||||
|  | 	github.com/go-openapi/swag/typeutils v0.24.0 // indirect | ||||||
|  | 	github.com/go-openapi/swag/yamlutils v0.24.0 // indirect | ||||||
| 	github.com/go-playground/locales v0.14.1 // indirect | 	github.com/go-playground/locales v0.14.1 // indirect | ||||||
| 	github.com/go-playground/universal-translator v0.18.1 // indirect | 	github.com/go-playground/universal-translator v0.18.1 // indirect | ||||||
| 	github.com/go-playground/validator/v10 v10.20.0 // indirect | 	github.com/go-playground/validator/v10 v10.27.0 // indirect | ||||||
| 	github.com/go-sql-driver/mysql v1.8.1 // indirect | 	github.com/go-sql-driver/mysql v1.8.1 // indirect | ||||||
| 	github.com/goccy/go-json v0.10.2 // indirect | 	github.com/goccy/go-json v0.10.5 // indirect | ||||||
| 	github.com/google/uuid v1.6.0 // indirect | 	github.com/google/uuid v1.6.0 // indirect | ||||||
| 	github.com/jackc/pgpassfile v1.0.0 // indirect | 	github.com/jackc/pgpassfile v1.0.0 // indirect | ||||||
| 	github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect | 	github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect | ||||||
| @@ -59,9 +72,9 @@ require ( | |||||||
| 	github.com/jinzhu/now v1.1.5 // indirect | 	github.com/jinzhu/now v1.1.5 // indirect | ||||||
| 	github.com/josharian/intern v1.0.0 // indirect | 	github.com/josharian/intern v1.0.0 // indirect | ||||||
| 	github.com/json-iterator/go v1.1.12 // indirect | 	github.com/json-iterator/go v1.1.12 // indirect | ||||||
| 	github.com/klauspost/cpuid/v2 v2.2.7 // indirect | 	github.com/klauspost/cpuid/v2 v2.3.0 // indirect | ||||||
| 	github.com/leodido/go-urn v1.4.0 // indirect | 	github.com/leodido/go-urn v1.4.0 // indirect | ||||||
| 	github.com/mailru/easyjson v0.7.7 // indirect | 	github.com/mailru/easyjson v0.9.1 // indirect | ||||||
| 	github.com/mattn/go-isatty v0.0.20 // indirect | 	github.com/mattn/go-isatty v0.0.20 // indirect | ||||||
| 	github.com/mattn/go-sqlite3 v1.14.22 // indirect | 	github.com/mattn/go-sqlite3 v1.14.22 // indirect | ||||||
| 	github.com/mitchellh/mapstructure v1.5.0 // indirect | 	github.com/mitchellh/mapstructure v1.5.0 // indirect | ||||||
| @@ -69,24 +82,30 @@ require ( | |||||||
| 	github.com/modern-go/reflect2 v1.0.2 // indirect | 	github.com/modern-go/reflect2 v1.0.2 // indirect | ||||||
| 	github.com/oklog/ulid v1.3.1 // indirect | 	github.com/oklog/ulid v1.3.1 // indirect | ||||||
| 	github.com/opentracing/opentracing-go v1.2.0 // indirect | 	github.com/opentracing/opentracing-go v1.2.0 // indirect | ||||||
| 	github.com/pelletier/go-toml/v2 v2.2.2 // indirect | 	github.com/pelletier/go-toml/v2 v2.2.4 // indirect | ||||||
| 	github.com/pmezard/go-difflib v1.0.0 // indirect | 	github.com/pmezard/go-difflib v1.0.0 // indirect | ||||||
| 	github.com/rogpeppe/go-internal v1.14.1 // indirect | 	github.com/rogpeppe/go-internal v1.14.1 // indirect | ||||||
|  | 	github.com/russross/blackfriday/v2 v2.1.0 // indirect | ||||||
|  | 	github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect | ||||||
| 	github.com/stretchr/objx v0.5.2 // indirect | 	github.com/stretchr/objx v0.5.2 // indirect | ||||||
| 	github.com/twitchyliquid64/golang-asm v0.15.1 // indirect | 	github.com/twitchyliquid64/golang-asm v0.15.1 // indirect | ||||||
| 	github.com/ugorji/go/codec v1.2.12 // indirect | 	github.com/ugorji/go/codec v1.3.0 // indirect | ||||||
|  | 	github.com/urfave/cli/v2 v2.27.7 // indirect | ||||||
|  | 	github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342 // indirect | ||||||
| 	go.mongodb.org/mongo-driver v1.14.0 // indirect | 	go.mongodb.org/mongo-driver v1.14.0 // indirect | ||||||
| 	go.opentelemetry.io/otel v1.24.0 // indirect | 	go.opentelemetry.io/otel v1.24.0 // indirect | ||||||
| 	go.opentelemetry.io/otel/metric v1.24.0 // indirect | 	go.opentelemetry.io/otel/metric v1.24.0 // indirect | ||||||
| 	go.opentelemetry.io/otel/trace v1.24.0 // indirect | 	go.opentelemetry.io/otel/trace v1.24.0 // indirect | ||||||
| 	go.uber.org/multierr v1.10.0 // indirect | 	go.uber.org/multierr v1.10.0 // indirect | ||||||
| 	golang.org/x/arch v0.8.0 // indirect | 	go.yaml.in/yaml/v2 v2.4.3 // indirect | ||||||
| 	golang.org/x/mod v0.21.0 // indirect | 	golang.org/x/arch v0.21.0 // indirect | ||||||
| 	golang.org/x/net v0.38.0 // indirect | 	golang.org/x/mod v0.28.0 // indirect | ||||||
| 	golang.org/x/sync v0.12.0 // indirect | 	golang.org/x/net v0.44.0 // indirect | ||||||
| 	golang.org/x/sys v0.31.0 // indirect | 	golang.org/x/sync v0.17.0 // indirect | ||||||
| 	golang.org/x/text v0.23.0 // indirect | 	golang.org/x/sys v0.36.0 // indirect | ||||||
| 	golang.org/x/tools v0.26.0 // indirect | 	golang.org/x/text v0.29.0 // indirect | ||||||
|  | 	golang.org/x/tools v0.37.0 // indirect | ||||||
| 	gopkg.in/yaml.v3 v3.0.1 // indirect | 	gopkg.in/yaml.v3 v3.0.1 // indirect | ||||||
| 	gorm.io/driver/mysql v1.5.6 // indirect | 	gorm.io/driver/mysql v1.5.6 // indirect | ||||||
|  | 	sigs.k8s.io/yaml v1.6.0 // indirect | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										85
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										85
									
								
								go.sum
									
									
									
									
									
								
							| @@ -4,23 +4,37 @@ github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc | |||||||
| github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE= | github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE= | ||||||
| github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= | github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= | ||||||
| github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= | github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= | ||||||
|  | github.com/bytedance/gopkg v0.1.3 h1:TPBSwH8RsouGCBcMBktLt1AymVo2TVsBVCY4b6TnZ/M= | ||||||
|  | github.com/bytedance/gopkg v0.1.3/go.mod h1:576VvJ+eJgyCzdjS+c4+77QF3p7ubbtiKARP3TxducM= | ||||||
| github.com/bytedance/sonic v1.11.6 h1:oUp34TzMlL+OY1OUWxHqsdkgC/Zfc85zGqw9siXjrc0= | github.com/bytedance/sonic v1.11.6 h1:oUp34TzMlL+OY1OUWxHqsdkgC/Zfc85zGqw9siXjrc0= | ||||||
| github.com/bytedance/sonic v1.11.6/go.mod h1:LysEHSvpvDySVdC2f87zGWf6CIKJcAvqab1ZaiQtds4= | github.com/bytedance/sonic v1.11.6/go.mod h1:LysEHSvpvDySVdC2f87zGWf6CIKJcAvqab1ZaiQtds4= | ||||||
|  | github.com/bytedance/sonic v1.14.1 h1:FBMC0zVz5XUmE4z9wF4Jey0An5FueFvOsTKKKtwIl7w= | ||||||
|  | github.com/bytedance/sonic v1.14.1/go.mod h1:gi6uhQLMbTdeP0muCnrjHLeCUPyb70ujhnNlhOylAFc= | ||||||
| github.com/bytedance/sonic/loader v0.1.1 h1:c+e5Pt1k/cy5wMveRDyk2X4B9hF4g7an8N3zCYjJFNM= | github.com/bytedance/sonic/loader v0.1.1 h1:c+e5Pt1k/cy5wMveRDyk2X4B9hF4g7an8N3zCYjJFNM= | ||||||
| github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= | github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= | ||||||
|  | github.com/bytedance/sonic/loader v0.3.0 h1:dskwH8edlzNMctoruo8FPTJDF3vLtDT0sXZwvZJyqeA= | ||||||
|  | github.com/bytedance/sonic/loader v0.3.0/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= | ||||||
| github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= | github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= | ||||||
| github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= | github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= | ||||||
|  | github.com/cloudwego/base64x v0.1.6 h1:t11wG9AECkCDk5fMSoxmufanudBtJ+/HemLstXDLI2M= | ||||||
|  | github.com/cloudwego/base64x v0.1.6/go.mod h1:OFcloc187FXDaYHvrNIjxSe8ncn0OOM8gEHfghB2IPU= | ||||||
| github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg= | github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg= | ||||||
| github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= | github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= | ||||||
|  | github.com/cpuguy83/go-md2man/v2 v2.0.7 h1:zbFlGlXEAKlwXpmvle3d8Oe3YnkKIK4xSRTd3sHPnBo= | ||||||
|  | github.com/cpuguy83/go-md2man/v2 v2.0.7/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= | ||||||
| github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||||
| github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | ||||||
| github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||||
| github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= | github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= | ||||||
| github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= | github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= | ||||||
|  | github.com/gabriel-vasile/mimetype v1.4.10 h1:zyueNbySn/z8mJZHLt6IPw0KoZsiQNszIpU+bX4+ZK0= | ||||||
|  | github.com/gabriel-vasile/mimetype v1.4.10/go.mod h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s= | ||||||
| github.com/gin-contrib/gzip v0.0.6 h1:NjcunTcGAj5CO1gn4N8jHOSIeRFHIbn51z6K+xaN4d4= | github.com/gin-contrib/gzip v0.0.6 h1:NjcunTcGAj5CO1gn4N8jHOSIeRFHIbn51z6K+xaN4d4= | ||||||
| github.com/gin-contrib/gzip v0.0.6/go.mod h1:QOJlmV2xmayAjkNS2Y8NQsMneuRShOU/kjovCXNuzzk= | github.com/gin-contrib/gzip v0.0.6/go.mod h1:QOJlmV2xmayAjkNS2Y8NQsMneuRShOU/kjovCXNuzzk= | ||||||
| github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= | github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= | ||||||
| github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= | github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= | ||||||
|  | github.com/gin-contrib/sse v1.1.0 h1:n0w2GMuUpWDVp7qSpvze6fAu9iRxJY4Hmj6AmBOU05w= | ||||||
|  | github.com/gin-contrib/sse v1.1.0/go.mod h1:hxRZ5gVpWMT7Z0B0gSNYqqsSCNIJMjzvm6fqCz9vjwM= | ||||||
| github.com/gin-gonic/gin v1.10.1 h1:T0ujvqyCSqRopADpgPgiTT63DUQVSfojyME59Ei63pQ= | github.com/gin-gonic/gin v1.10.1 h1:T0ujvqyCSqRopADpgPgiTT63DUQVSfojyME59Ei63pQ= | ||||||
| github.com/gin-gonic/gin v1.10.1/go.mod h1:4PMNQiOhvDRa013RKVbsiNwoyezlm2rm0uX/T7kzp5Y= | github.com/gin-gonic/gin v1.10.1/go.mod h1:4PMNQiOhvDRa013RKVbsiNwoyezlm2rm0uX/T7kzp5Y= | ||||||
| github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= | github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= | ||||||
| @@ -34,8 +48,12 @@ github.com/go-openapi/errors v0.22.2 h1:rdxhzcBUazEcGccKqbY1Y7NS8FDcMyIRr0934jrY | |||||||
| github.com/go-openapi/errors v0.22.2/go.mod h1:+n/5UdIqdVnLIJ6Q9Se8HNGUXYaY6CN8ImWzfi/Gzp0= | github.com/go-openapi/errors v0.22.2/go.mod h1:+n/5UdIqdVnLIJ6Q9Se8HNGUXYaY6CN8ImWzfi/Gzp0= | ||||||
| github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= | github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= | ||||||
| github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= | github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= | ||||||
|  | github.com/go-openapi/jsonpointer v0.22.0 h1:TmMhghgNef9YXxTu1tOopo+0BGEytxA+okbry0HjZsM= | ||||||
|  | github.com/go-openapi/jsonpointer v0.22.0/go.mod h1:xt3jV88UtExdIkkL7NloURjRQjbeUgcxFblMjq2iaiU= | ||||||
| github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= | github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= | ||||||
| github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4= | github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4= | ||||||
|  | github.com/go-openapi/jsonreference v0.21.1 h1:bSKrcl8819zKiOgxkbVNRUBIr6Wwj9KYrDbMjRs0cDA= | ||||||
|  | github.com/go-openapi/jsonreference v0.21.1/go.mod h1:PWs8rO4xxTUqKGu+lEvvCxD5k2X7QYkKAepJyCmSTT8= | ||||||
| github.com/go-openapi/loads v0.22.0 h1:ECPGd4jX1U6NApCGG1We+uEozOAvXvJSF4nnwHZ8Aco= | github.com/go-openapi/loads v0.22.0 h1:ECPGd4jX1U6NApCGG1We+uEozOAvXvJSF4nnwHZ8Aco= | ||||||
| github.com/go-openapi/loads v0.22.0/go.mod h1:yLsaTCS92mnSAZX5WWoxszLj0u+Ojl+Zs5Stn1oF+rs= | github.com/go-openapi/loads v0.22.0/go.mod h1:yLsaTCS92mnSAZX5WWoxszLj0u+Ojl+Zs5Stn1oF+rs= | ||||||
| github.com/go-openapi/runtime v0.28.0 h1:gpPPmWSNGo214l6n8hzdXYhPuJcGtziTOgUpvsFWGIQ= | github.com/go-openapi/runtime v0.28.0 h1:gpPPmWSNGo214l6n8hzdXYhPuJcGtziTOgUpvsFWGIQ= | ||||||
| @@ -46,6 +64,30 @@ github.com/go-openapi/strfmt v0.23.0 h1:nlUS6BCqcnAk0pyhi9Y+kdDVZdZMHfEKQiS4HaMg | |||||||
| github.com/go-openapi/strfmt v0.23.0/go.mod h1:NrtIpfKtWIygRkKVsxh7XQMDQW5HKQl6S5ik2elW+K4= | github.com/go-openapi/strfmt v0.23.0/go.mod h1:NrtIpfKtWIygRkKVsxh7XQMDQW5HKQl6S5ik2elW+K4= | ||||||
| github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= | github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= | ||||||
| github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= | github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= | ||||||
|  | github.com/go-openapi/swag v0.24.1 h1:DPdYTZKo6AQCRqzwr/kGkxJzHhpKxZ9i/oX0zag+MF8= | ||||||
|  | github.com/go-openapi/swag v0.24.1/go.mod h1:sm8I3lCPlspsBBwUm1t5oZeWZS0s7m/A+Psg0ooRU0A= | ||||||
|  | github.com/go-openapi/swag/cmdutils v0.24.0 h1:KlRCffHwXFI6E5MV9n8o8zBRElpY4uK4yWyAMWETo9I= | ||||||
|  | github.com/go-openapi/swag/cmdutils v0.24.0/go.mod h1:uxib2FAeQMByyHomTlsP8h1TtPd54Msu2ZDU/H5Vuf8= | ||||||
|  | github.com/go-openapi/swag/conv v0.24.0 h1:ejB9+7yogkWly6pnruRX45D1/6J+ZxRu92YFivx54ik= | ||||||
|  | github.com/go-openapi/swag/conv v0.24.0/go.mod h1:jbn140mZd7EW2g8a8Y5bwm8/Wy1slLySQQ0ND6DPc2c= | ||||||
|  | github.com/go-openapi/swag/fileutils v0.24.0 h1:U9pCpqp4RUytnD689Ek/N1d2N/a//XCeqoH508H5oak= | ||||||
|  | github.com/go-openapi/swag/fileutils v0.24.0/go.mod h1:3SCrCSBHyP1/N+3oErQ1gP+OX1GV2QYFSnrTbzwli90= | ||||||
|  | github.com/go-openapi/swag/jsonname v0.24.0 h1:2wKS9bgRV/xB8c62Qg16w4AUiIrqqiniJFtZGi3dg5k= | ||||||
|  | github.com/go-openapi/swag/jsonname v0.24.0/go.mod h1:GXqrPzGJe611P7LG4QB9JKPtUZ7flE4DOVechNaDd7Q= | ||||||
|  | github.com/go-openapi/swag/jsonutils v0.24.0 h1:F1vE1q4pg1xtO3HTyJYRmEuJ4jmIp2iZ30bzW5XgZts= | ||||||
|  | github.com/go-openapi/swag/jsonutils v0.24.0/go.mod h1:vBowZtF5Z4DDApIoxcIVfR8v0l9oq5PpYRUuteVu6f0= | ||||||
|  | github.com/go-openapi/swag/loading v0.24.0 h1:ln/fWTwJp2Zkj5DdaX4JPiddFC5CHQpvaBKycOlceYc= | ||||||
|  | github.com/go-openapi/swag/loading v0.24.0/go.mod h1:gShCN4woKZYIxPxbfbyHgjXAhO61m88tmjy0lp/LkJk= | ||||||
|  | github.com/go-openapi/swag/mangling v0.24.0 h1:PGOQpViCOUroIeak/Uj/sjGAq9LADS3mOyjznmHy2pk= | ||||||
|  | github.com/go-openapi/swag/mangling v0.24.0/go.mod h1:Jm5Go9LHkycsz0wfoaBDkdc4CkpuSnIEf62brzyCbhc= | ||||||
|  | github.com/go-openapi/swag/netutils v0.24.0 h1:Bz02HRjYv8046Ycg/w80q3g9QCWeIqTvlyOjQPDjD8w= | ||||||
|  | github.com/go-openapi/swag/netutils v0.24.0/go.mod h1:WRgiHcYTnx+IqfMCtu0hy9oOaPR0HnPbmArSRN1SkZM= | ||||||
|  | github.com/go-openapi/swag/stringutils v0.24.0 h1:i4Z/Jawf9EvXOLUbT97O0HbPUja18VdBxeadyAqS1FM= | ||||||
|  | github.com/go-openapi/swag/stringutils v0.24.0/go.mod h1:5nUXB4xA0kw2df5PRipZDslPJgJut+NjL7D25zPZ/4w= | ||||||
|  | github.com/go-openapi/swag/typeutils v0.24.0 h1:d3szEGzGDf4L2y1gYOSSLeK6h46F+zibnEas2Jm/wIw= | ||||||
|  | github.com/go-openapi/swag/typeutils v0.24.0/go.mod h1:q8C3Kmk/vh2VhpCLaoR2MVWOGP8y7Jc8l82qCTd1DYI= | ||||||
|  | github.com/go-openapi/swag/yamlutils v0.24.0 h1:bhw4894A7Iw6ne+639hsBNRHg9iZg/ISrOVr+sJGp4c= | ||||||
|  | github.com/go-openapi/swag/yamlutils v0.24.0/go.mod h1:DpKv5aYuaGm/sULePoeiG8uwMpZSfReo1HR3Ik0yaG8= | ||||||
| github.com/go-openapi/validate v0.24.0 h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3BumrGD58= | github.com/go-openapi/validate v0.24.0 h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3BumrGD58= | ||||||
| github.com/go-openapi/validate v0.24.0/go.mod h1:iyeX1sEufmv3nPbBdX3ieNviWnOZaJ1+zquzJEf2BAQ= | github.com/go-openapi/validate v0.24.0/go.mod h1:iyeX1sEufmv3nPbBdX3ieNviWnOZaJ1+zquzJEf2BAQ= | ||||||
| github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= | github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= | ||||||
| @@ -56,11 +98,15 @@ github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJn | |||||||
| github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= | github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= | ||||||
| github.com/go-playground/validator/v10 v10.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8= | github.com/go-playground/validator/v10 v10.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8= | ||||||
| github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= | github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= | ||||||
|  | github.com/go-playground/validator/v10 v10.27.0 h1:w8+XrWVMhGkxOaaowyKH35gFydVHOvC0/uWoy2Fzwn4= | ||||||
|  | github.com/go-playground/validator/v10 v10.27.0/go.mod h1:I5QpIEbmr8On7W0TktmJAumgzX4CA1XNl4ZmDuVHKKo= | ||||||
| github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= | github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= | ||||||
| github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= | github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= | ||||||
| github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= | github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= | ||||||
| github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= | github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= | ||||||
| github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= | github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= | ||||||
|  | github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4= | ||||||
|  | github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= | ||||||
| github.com/golang-jwt/jwt/v5 v5.3.0 h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9vvo= | github.com/golang-jwt/jwt/v5 v5.3.0 h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9vvo= | ||||||
| github.com/golang-jwt/jwt/v5 v5.3.0/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE= | github.com/golang-jwt/jwt/v5 v5.3.0/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE= | ||||||
| github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= | github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= | ||||||
| @@ -69,6 +115,7 @@ github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei | |||||||
| github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= | github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= | ||||||
| github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= | github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= | ||||||
| github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= | github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= | ||||||
|  | github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= | ||||||
| github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= | github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= | ||||||
| github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= | github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= | ||||||
| github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||||
| @@ -91,6 +138,8 @@ github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHm | |||||||
| github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= | github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= | ||||||
| github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= | github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= | ||||||
| github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= | github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= | ||||||
|  | github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y= | ||||||
|  | github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= | ||||||
| github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= | github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= | ||||||
| github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= | github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= | ||||||
| github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= | github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= | ||||||
| @@ -100,6 +149,8 @@ github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= | |||||||
| github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= | github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= | ||||||
| github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= | github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= | ||||||
| github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= | github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= | ||||||
|  | github.com/mailru/easyjson v0.9.1 h1:LbtsOm5WAswyWbvTEOqhypdPeZzHavpZx96/n553mR8= | ||||||
|  | github.com/mailru/easyjson v0.9.1/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU= | ||||||
| github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= | github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= | ||||||
| github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= | github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= | ||||||
| github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU= | github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU= | ||||||
| @@ -121,12 +172,18 @@ github.com/panjf2000/ants/v2 v2.11.3 h1:AfI0ngBoXJmYOpDh9m516vjqoUu2sLrIVgppI9TZ | |||||||
| github.com/panjf2000/ants/v2 v2.11.3/go.mod h1:8u92CYMUc6gyvTIw8Ru7Mt7+/ESnJahz5EVtqfrilek= | github.com/panjf2000/ants/v2 v2.11.3/go.mod h1:8u92CYMUc6gyvTIw8Ru7Mt7+/ESnJahz5EVtqfrilek= | ||||||
| github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= | github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= | ||||||
| github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= | github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= | ||||||
|  | github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4= | ||||||
|  | github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= | ||||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||||
| github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= | github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= | ||||||
| github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= | github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= | ||||||
| github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= | github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= | ||||||
| github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= | github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= | ||||||
|  | github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= | ||||||
|  | github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= | ||||||
|  | github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= | ||||||
|  | github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= | ||||||
| github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||||
| github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= | github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= | ||||||
| github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= | github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= | ||||||
| @@ -151,6 +208,12 @@ github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS | |||||||
| github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= | github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= | ||||||
| github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= | github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= | ||||||
| github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= | github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= | ||||||
|  | github.com/ugorji/go/codec v1.3.0 h1:Qd2W2sQawAfG8XSvzwhBeoGq71zXOC/Q1E9y/wUcsUA= | ||||||
|  | github.com/ugorji/go/codec v1.3.0/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4= | ||||||
|  | github.com/urfave/cli/v2 v2.27.7 h1:bH59vdhbjLv3LAvIu6gd0usJHgoTTPhCFib8qqOwXYU= | ||||||
|  | github.com/urfave/cli/v2 v2.27.7/go.mod h1:CyNAG/xg+iAOg0N4MPGZqVmv2rCoP267496AOXUZjA4= | ||||||
|  | github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342 h1:FnBeRrxr7OU4VvAzt5X7s6266i6cSVkkFPS0TuXWbIg= | ||||||
|  | github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= | ||||||
| github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= | github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= | ||||||
| go.mongodb.org/mongo-driver v1.14.0 h1:P98w8egYRjYe3XDjxhYJagTokP/H6HzlsnojRgZRd80= | go.mongodb.org/mongo-driver v1.14.0 h1:P98w8egYRjYe3XDjxhYJagTokP/H6HzlsnojRgZRd80= | ||||||
| go.mongodb.org/mongo-driver v1.14.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= | go.mongodb.org/mongo-driver v1.14.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= | ||||||
| @@ -168,26 +231,38 @@ go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= | |||||||
| go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= | go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= | ||||||
| go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= | go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= | ||||||
| go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= | go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= | ||||||
|  | go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= | ||||||
|  | go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= | ||||||
| golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= | golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= | ||||||
| golang.org/x/arch v0.8.0 h1:3wRIsP3pM4yUptoR96otTUOXI367OS0+c9eeRi9doIc= | golang.org/x/arch v0.8.0 h1:3wRIsP3pM4yUptoR96otTUOXI367OS0+c9eeRi9doIc= | ||||||
| golang.org/x/arch v0.8.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= | golang.org/x/arch v0.8.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= | ||||||
|  | golang.org/x/arch v0.21.0 h1:iTC9o7+wP6cPWpDWkivCvQFGAHDQ59SrSxsLPcnkArw= | ||||||
|  | golang.org/x/arch v0.21.0/go.mod h1:dNHoOeKiyja7GTvF9NJS1l3Z2yntpQNzgrjh1cU103A= | ||||||
| golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | ||||||
| golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= | golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= | ||||||
| golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= | golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= | ||||||
| golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= | golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= | ||||||
|  | golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI= | ||||||
|  | golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8= | ||||||
| golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= | golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= | ||||||
| golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= | golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= | ||||||
| golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= | golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= | ||||||
|  | golang.org/x/mod v0.28.0 h1:gQBtGhjxykdjY9YhZpSlZIsbnaE2+PgjfLWUQTnoZ1U= | ||||||
|  | golang.org/x/mod v0.28.0/go.mod h1:yfB/L0NOf/kmEbXjzCPOx1iK1fRutOydrCMsqRhEBxI= | ||||||
| golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||||
| golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= | golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= | ||||||
| golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | ||||||
| golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= | golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= | ||||||
| golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8= | golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8= | ||||||
| golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= | golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= | ||||||
|  | golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I= | ||||||
|  | golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY= | ||||||
| golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= | golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= | ||||||
| golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= | golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= | ||||||
|  | golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= | ||||||
|  | golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= | ||||||
| golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||||
| golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| @@ -197,6 +272,8 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | |||||||
| golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= | golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= | ||||||
| golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= | golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= | ||||||
|  | golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= | ||||||
|  | golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= | ||||||
| golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | ||||||
| golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= | golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= | ||||||
| golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= | golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= | ||||||
| @@ -206,14 +283,20 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= | |||||||
| golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= | golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= | ||||||
| golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= | golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= | ||||||
| golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= | golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= | ||||||
|  | golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk= | ||||||
|  | golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4= | ||||||
| golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||||
| golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | ||||||
| golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= | golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= | ||||||
| golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= | golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= | ||||||
| golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= | golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= | ||||||
|  | golang.org/x/tools v0.37.0 h1:DVSRzp7FwePZW356yEAChSdNcQo6Nsp+fex1SUW09lE= | ||||||
|  | golang.org/x/tools v0.37.0/go.mod h1:MBN5QPQtLMHVdvsbtarmTNukZDdgwdwlO5qGacAzF0w= | ||||||
| golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||||
| google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= | google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= | ||||||
| google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= | google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= | ||||||
|  | google.golang.org/protobuf v1.36.9 h1:w2gp2mA27hUeUzj9Ex9FBjsBm40zfaDtEWow293U7Iw= | ||||||
|  | google.golang.org/protobuf v1.36.9/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
| gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= | gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= | ||||||
| gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= | gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= | ||||||
| @@ -239,3 +322,5 @@ gorm.io/gorm v1.30.5 h1:dvEfYwxL+i+xgCNSGGBT1lDjCzfELK8fHZxL3Ee9X0s= | |||||||
| gorm.io/gorm v1.30.5/go.mod h1:8Z33v652h4//uMA76KjeDH8mJXPm1QNCYrMeatR0DOE= | gorm.io/gorm v1.30.5/go.mod h1:8Z33v652h4//uMA76KjeDH8mJXPm1QNCYrMeatR0DOE= | ||||||
| nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= | nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= | ||||||
| rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= | rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= | ||||||
|  | sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs= | ||||||
|  | sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4= | ||||||
|   | |||||||
| @@ -8,8 +8,6 @@ package api | |||||||
| // @contact.email divano@example.com | // @contact.email divano@example.com | ||||||
| // @license.name Apache 2.0 | // @license.name Apache 2.0 | ||||||
| // @license.url http://www.apache.org/licenses/LICENSE-2.0.html | // @license.url http://www.apache.org/licenses/LICENSE-2.0.html | ||||||
| // @host localhost:8086 |  | ||||||
| // @BasePath /api/v1 |  | ||||||
| import ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
| 	"fmt" | 	"fmt" | ||||||
|   | |||||||
| @@ -106,7 +106,7 @@ func newListDeviceResponse(devices []*models.Device) []*DeviceResponse { | |||||||
| // @Param        device body CreateDeviceRequest true "设备信息" | // @Param        device body CreateDeviceRequest true "设备信息" | ||||||
| // @Success      200 {object} controller.Response{data=DeviceResponse} "业务码为201代表创建成功" | // @Success      200 {object} controller.Response{data=DeviceResponse} "业务码为201代表创建成功" | ||||||
| // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体" | // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体" | ||||||
| // @Router       /devices [post] | // @Router       /api/v1/devices [post] | ||||||
| func (c *Controller) CreateDevice(ctx *gin.Context) { | func (c *Controller) CreateDevice(ctx *gin.Context) { | ||||||
| 	var req CreateDeviceRequest | 	var req CreateDeviceRequest | ||||||
| 	if err := ctx.ShouldBindJSON(&req); err != nil { | 	if err := ctx.ShouldBindJSON(&req); err != nil { | ||||||
| @@ -141,7 +141,7 @@ func (c *Controller) CreateDevice(ctx *gin.Context) { | |||||||
| // @Param        id path string true "设备ID" | // @Param        id path string true "设备ID" | ||||||
| // @Success      200 {object} controller.Response{data=DeviceResponse} "业务码为200代表获取成功" | // @Success      200 {object} controller.Response{data=DeviceResponse} "业务码为200代表获取成功" | ||||||
| // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体" | // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体" | ||||||
| // @Router       /devices/{id} [get] | // @Router       /api/v1/devices/{id} [get] | ||||||
| func (c *Controller) GetDevice(ctx *gin.Context) { | func (c *Controller) GetDevice(ctx *gin.Context) { | ||||||
| 	deviceID := ctx.Param("id") | 	deviceID := ctx.Param("id") | ||||||
|  |  | ||||||
| @@ -170,7 +170,7 @@ func (c *Controller) GetDevice(ctx *gin.Context) { | |||||||
| // @Produce      json | // @Produce      json | ||||||
| // @Success      200 {object} controller.Response{data=[]DeviceResponse} "业务码为200代表获取成功" | // @Success      200 {object} controller.Response{data=[]DeviceResponse} "业务码为200代表获取成功" | ||||||
| // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体" | // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体" | ||||||
| // @Router       /devices [get] | // @Router       /api/v1/devices [get] | ||||||
| func (c *Controller) ListDevices(ctx *gin.Context) { | func (c *Controller) ListDevices(ctx *gin.Context) { | ||||||
| 	devices, err := c.repo.ListAll() | 	devices, err := c.repo.ListAll() | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| @@ -192,7 +192,7 @@ func (c *Controller) ListDevices(ctx *gin.Context) { | |||||||
| // @Param        device body UpdateDeviceRequest true "要更新的设备信息" | // @Param        device body UpdateDeviceRequest true "要更新的设备信息" | ||||||
| // @Success      200 {object} controller.Response{data=DeviceResponse} "业务码为200代表更新成功" | // @Success      200 {object} controller.Response{data=DeviceResponse} "业务码为200代表更新成功" | ||||||
| // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体" | // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体" | ||||||
| // @Router       /devices/{id} [put] | // @Router       /api/v1/devices/{id} [put] | ||||||
| func (c *Controller) UpdateDevice(ctx *gin.Context) { | func (c *Controller) UpdateDevice(ctx *gin.Context) { | ||||||
| 	deviceID := ctx.Param("id") | 	deviceID := ctx.Param("id") | ||||||
|  |  | ||||||
| @@ -246,7 +246,7 @@ func (c *Controller) UpdateDevice(ctx *gin.Context) { | |||||||
| // @Param        id path string true "设备ID" | // @Param        id path string true "设备ID" | ||||||
| // @Success      200 {object} controller.Response "业务码为200代表删除成功" | // @Success      200 {object} controller.Response "业务码为200代表删除成功" | ||||||
| // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体" | // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体" | ||||||
| // @Router       /devices/{id} [delete] | // @Router       /api/v1/devices/{id} [delete] | ||||||
| func (c *Controller) DeleteDevice(ctx *gin.Context) { | func (c *Controller) DeleteDevice(ctx *gin.Context) { | ||||||
| 	deviceID := ctx.Param("id") | 	deviceID := ctx.Param("id") | ||||||
|  |  | ||||||
|   | |||||||
| @@ -118,7 +118,7 @@ func NewController(logger *logs.Logger, planRepo repository.PlanRepository, anal | |||||||
| // @Param        plan body CreatePlanRequest true "计划信息" | // @Param        plan body CreatePlanRequest true "计划信息" | ||||||
| // @Success      200 {object} controller.Response{data=plan.PlanResponse} "业务码为201代表创建成功" | // @Success      200 {object} controller.Response{data=plan.PlanResponse} "业务码为201代表创建成功" | ||||||
| // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体(例如400, 500)" | // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体(例如400, 500)" | ||||||
| // @Router       /plans [post] | // @Router       /api/v1/plans [post] | ||||||
| func (c *Controller) CreatePlan(ctx *gin.Context) { | func (c *Controller) CreatePlan(ctx *gin.Context) { | ||||||
| 	var req CreatePlanRequest | 	var req CreatePlanRequest | ||||||
| 	if err := ctx.ShouldBindJSON(&req); err != nil { | 	if err := ctx.ShouldBindJSON(&req); err != nil { | ||||||
| @@ -160,7 +160,7 @@ func (c *Controller) CreatePlan(ctx *gin.Context) { | |||||||
| // @Param        id path int true "计划ID" | // @Param        id path int true "计划ID" | ||||||
| // @Success      200 {object} controller.Response{data=plan.PlanResponse} "业务码为200代表成功获取" | // @Success      200 {object} controller.Response{data=plan.PlanResponse} "业务码为200代表成功获取" | ||||||
| // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体(例如400, 404, 500)" | // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体(例如400, 404, 500)" | ||||||
| // @Router       /plans/{id} [get] | // @Router       /api/v1/plans/{id} [get] | ||||||
| func (c *Controller) GetPlan(ctx *gin.Context) { | func (c *Controller) GetPlan(ctx *gin.Context) { | ||||||
| 	// 1. 从 URL 路径中获取 ID | 	// 1. 从 URL 路径中获取 ID | ||||||
| 	idStr := ctx.Param("id") | 	idStr := ctx.Param("id") | ||||||
| @@ -198,7 +198,7 @@ func (c *Controller) GetPlan(ctx *gin.Context) { | |||||||
| // @Produce      json | // @Produce      json | ||||||
| // @Success      200 {object} controller.Response{data=plan.ListPlansResponse} "业务码为200代表成功获取列表" | // @Success      200 {object} controller.Response{data=plan.ListPlansResponse} "业务码为200代表成功获取列表" | ||||||
| // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体(例如400, 500)" | // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体(例如400, 500)" | ||||||
| // @Router       /plans [get] | // @Router       /api/v1/plans [get] | ||||||
| func (c *Controller) ListPlans(ctx *gin.Context) { | func (c *Controller) ListPlans(ctx *gin.Context) { | ||||||
| 	// 1. 调用仓库层获取所有计划 | 	// 1. 调用仓库层获取所有计划 | ||||||
| 	plans, err := c.planRepo.ListBasicPlans() | 	plans, err := c.planRepo.ListBasicPlans() | ||||||
| @@ -232,7 +232,7 @@ func (c *Controller) ListPlans(ctx *gin.Context) { | |||||||
| // @Param        plan body UpdatePlanRequest true "更新后的计划信息" | // @Param        plan body UpdatePlanRequest true "更新后的计划信息" | ||||||
| // @Success      200 {object} controller.Response{data=plan.PlanResponse} "业务码为200代表更新成功" | // @Success      200 {object} controller.Response{data=plan.PlanResponse} "业务码为200代表更新成功" | ||||||
| // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体(例如400, 404, 500)" | // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体(例如400, 404, 500)" | ||||||
| // @Router       /plans/{id} [put] | // @Router       /api/v1/plans/{id} [put] | ||||||
| func (c *Controller) UpdatePlan(ctx *gin.Context) { | func (c *Controller) UpdatePlan(ctx *gin.Context) { | ||||||
| 	// 1. 从 URL 路径中获取 ID | 	// 1. 从 URL 路径中获取 ID | ||||||
| 	idStr := ctx.Param("id") | 	idStr := ctx.Param("id") | ||||||
| @@ -304,7 +304,7 @@ func (c *Controller) UpdatePlan(ctx *gin.Context) { | |||||||
| // @Param        id path int true "计划ID" | // @Param        id path int true "计划ID" | ||||||
| // @Success      200 {object} controller.Response "业务码为200代表删除成功" | // @Success      200 {object} controller.Response "业务码为200代表删除成功" | ||||||
| // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体(例如400, 404, 500)" | // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体(例如400, 404, 500)" | ||||||
| // @Router       /plans/{id} [delete] | // @Router       /api/v1/plans/{id} [delete] | ||||||
| func (c *Controller) DeletePlan(ctx *gin.Context) { | func (c *Controller) DeletePlan(ctx *gin.Context) { | ||||||
| 	// 1. 从 URL 路径中获取 ID | 	// 1. 从 URL 路径中获取 ID | ||||||
| 	idStr := ctx.Param("id") | 	idStr := ctx.Param("id") | ||||||
| @@ -333,7 +333,7 @@ func (c *Controller) DeletePlan(ctx *gin.Context) { | |||||||
| // @Param        id path int true "计划ID" | // @Param        id path int true "计划ID" | ||||||
| // @Success      200 {object} controller.Response "业务码为200代表成功启动计划" | // @Success      200 {object} controller.Response "业务码为200代表成功启动计划" | ||||||
| // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体(例如400, 404, 500)" | // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体(例如400, 404, 500)" | ||||||
| // @Router       /plans/{id}/start [post] | // @Router       /api/v1/plans/{id}/start [post] | ||||||
| func (c *Controller) StartPlan(ctx *gin.Context) { | func (c *Controller) StartPlan(ctx *gin.Context) { | ||||||
| 	// 占位符:此处应调用服务层或仓库层来启动计划 | 	// 占位符:此处应调用服务层或仓库层来启动计划 | ||||||
| 	c.logger.Infof("收到启动计划请求 (占位符)") | 	c.logger.Infof("收到启动计划请求 (占位符)") | ||||||
| @@ -348,7 +348,7 @@ func (c *Controller) StartPlan(ctx *gin.Context) { | |||||||
| // @Param        id path int true "计划ID" | // @Param        id path int true "计划ID" | ||||||
| // @Success      200 {object} controller.Response "业务码为200代表成功停止计划" | // @Success      200 {object} controller.Response "业务码为200代表成功停止计划" | ||||||
| // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体(例如400, 404, 500)" | // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体(例如400, 404, 500)" | ||||||
| // @Router       /plans/{id}/stop [post] | // @Router       /api/v1/plans/{id}/stop [post] | ||||||
| func (c *Controller) StopPlan(ctx *gin.Context) { | func (c *Controller) StopPlan(ctx *gin.Context) { | ||||||
| 	// 占位符:此处应调用服务层或仓库层来停止计划 | 	// 占位符:此处应调用服务层或仓库层来停止计划 | ||||||
| 	c.logger.Infof("收到停止计划请求 (占位符)") | 	c.logger.Infof("收到停止计划请求 (占位符)") | ||||||
|   | |||||||
| @@ -60,7 +60,7 @@ type LoginResponse struct { | |||||||
| // @Param        user body CreateUserRequest true "用户信息" | // @Param        user body CreateUserRequest true "用户信息" | ||||||
| // @Success      200 {object} controller.Response{data=user.CreateUserResponse} "业务码为201代表创建成功" | // @Success      200 {object} controller.Response{data=user.CreateUserResponse} "业务码为201代表创建成功" | ||||||
| // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体(例如400, 409, 500)" | // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体(例如400, 409, 500)" | ||||||
| // @Router       /users [post] | // @Router       /api/v1/users [post] | ||||||
| func (c *Controller) CreateUser(ctx *gin.Context) { | func (c *Controller) CreateUser(ctx *gin.Context) { | ||||||
| 	var req CreateUserRequest | 	var req CreateUserRequest | ||||||
| 	if err := ctx.ShouldBindJSON(&req); err != nil { | 	if err := ctx.ShouldBindJSON(&req); err != nil { | ||||||
| @@ -104,7 +104,7 @@ func (c *Controller) CreateUser(ctx *gin.Context) { | |||||||
| // @Param        credentials body LoginRequest true "登录凭证" | // @Param        credentials body LoginRequest true "登录凭证" | ||||||
| // @Success      200 {object} controller.Response{data=user.LoginResponse} "业务码为200代表登录成功" | // @Success      200 {object} controller.Response{data=user.LoginResponse} "业务码为200代表登录成功" | ||||||
| // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体(例如400, 401, 500)" | // @Failure      200 {object} controller.Response "业务失败,具体错误码和信息见响应体(例如400, 401, 500)" | ||||||
| // @Router       /users/login [post] | // @Router       /api/v1/users/login [post] | ||||||
| func (c *Controller) Login(ctx *gin.Context) { | func (c *Controller) Login(ctx *gin.Context) { | ||||||
| 	var req LoginRequest | 	var req LoginRequest | ||||||
| 	if err := ctx.ShouldBindJSON(&req); err != nil { | 	if err := ctx.ShouldBindJSON(&req); err != nil { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user