Skip to content

Commit 35a893e

Browse files
committed
refactor: update struct field types from interface{} to any for improved type safety
1 parent a03d664 commit 35a893e

File tree

6 files changed

+70
-70
lines changed

6 files changed

+70
-70
lines changed

backend/domain/codesnippet.go

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -24,47 +24,47 @@ type CodeSnippetRepo interface {
2424

2525
// 请求结构体
2626
type CreateCodeSnippetReq struct {
27-
WorkspaceFileID string `json:"workspace_file_id" validate:"required"` // 关联的workspace file ID
28-
Name string `json:"name"` // 代码片段名称
29-
SnippetType string `json:"snippet_type"` // 代码片段类型 (function, class, variable, etc.)
30-
Language string `json:"language"` // 编程语言
31-
Content string `json:"content"` // 代码片段内容
32-
Hash string `json:"hash"` // 内容哈希
33-
StartLine int `json:"start_line"` // 起始行号
34-
EndLine int `json:"end_line"` // 结束行号
35-
StartColumn int `json:"start_column"` // 起始列号
36-
EndColumn int `json:"end_column"` // 结束列号
37-
Namespace string `json:"namespace"` // 命名空间
38-
ContainerName string `json:"container_name"` // 容器名称 (类名、模块名等)
39-
Scope []string `json:"scope"` // 作用域信息
40-
Dependencies []string `json:"dependencies"` // 依赖项
41-
Parameters []map[string]interface{} `json:"parameters"` // 参数列表
42-
Signature string `json:"signature"` // 函数签名
43-
DefinitionText string `json:"definition_text"` // 定义文本
44-
StructuredInfo map[string]interface{} `json:"structured_info"` // 结构化信息
27+
WorkspaceFileID string `json:"workspace_file_id" validate:"required"` // 关联的workspace file ID
28+
Name string `json:"name"` // 代码片段名称
29+
SnippetType string `json:"snippet_type"` // 代码片段类型 (function, class, variable, etc.)
30+
Language string `json:"language"` // 编程语言
31+
Content string `json:"content"` // 代码片段内容
32+
Hash string `json:"hash"` // 内容哈希
33+
StartLine int `json:"start_line"` // 起始行号
34+
EndLine int `json:"end_line"` // 结束行号
35+
StartColumn int `json:"start_column"` // 起始列号
36+
EndColumn int `json:"end_column"` // 结束列号
37+
Namespace string `json:"namespace"` // 命名空间
38+
ContainerName string `json:"container_name"` // 容器名称 (类名、模块名等)
39+
Scope []string `json:"scope"` // 作用域信息
40+
Dependencies []string `json:"dependencies"` // 依赖项
41+
Parameters []map[string]any `json:"parameters"` // 参数列表
42+
Signature string `json:"signature"` // 函数签名
43+
DefinitionText string `json:"definition_text"` // 定义文本
44+
StructuredInfo map[string]any `json:"structured_info"` // 结构化信息
4545
}
4646

4747
// 数据模型
4848
type CodeSnippet struct {
49-
ID string `json:"id"` // 代码片段ID
50-
WorkspaceFileID string `json:"workspace_file_id"` // 关联的workspace file ID
51-
Name string `json:"name"` // 代码片段名称
52-
SnippetType string `json:"snippet_type"` // 代码片段类型
53-
Language string `json:"language"` // 编程语言
54-
Content string `json:"content"` // 代码片段内容
55-
Hash string `json:"hash"` // 内容哈希
56-
StartLine int `json:"start_line"` // 起始行号
57-
EndLine int `json:"end_line"` // 结束行号
58-
StartColumn int `json:"start_column"` // 起始列号
59-
EndColumn int `json:"end_column"` // 结束列号
60-
Namespace string `json:"namespace"` // 命名空间
61-
ContainerName string `json:"container_name"` // 容器名称
62-
Scope []string `json:"scope"` // 作用域信息
63-
Dependencies []string `json:"dependencies"` // 依赖项
64-
Parameters []map[string]interface{} `json:"parameters"` // 参数列表
65-
Signature string `json:"signature"` // 函数签名
66-
DefinitionText string `json:"definition_text"` // 定义文本
67-
StructuredInfo map[string]interface{} `json:"structured_info"` // 结构化信息
49+
ID string `json:"id"` // 代码片段ID
50+
WorkspaceFileID string `json:"workspace_file_id"` // 关联的workspace file ID
51+
Name string `json:"name"` // 代码片段名称
52+
SnippetType string `json:"snippet_type"` // 代码片段类型
53+
Language string `json:"language"` // 编程语言
54+
Content string `json:"content"` // 代码片段内容
55+
Hash string `json:"hash"` // 内容哈希
56+
StartLine int `json:"start_line"` // 起始行号
57+
EndLine int `json:"end_line"` // 结束行号
58+
StartColumn int `json:"start_column"` // 起始列号
59+
EndColumn int `json:"end_column"` // 结束列号
60+
Namespace string `json:"namespace"` // 命名空间
61+
ContainerName string `json:"container_name"` // 容器名称
62+
Scope []string `json:"scope"` // 作用域信息
63+
Dependencies []string `json:"dependencies"` // 依赖项
64+
Parameters []map[string]any `json:"parameters"` // 参数列表
65+
Signature string `json:"signature"` // 函数签名
66+
DefinitionText string `json:"definition_text"` // 定义文本
67+
StructuredInfo map[string]any `json:"structured_info"` // 结构化信息
6868
}
6969

7070
func (c *CodeSnippet) From(e *db.CodeSnippet) *CodeSnippet {

backend/domain/workspace.go

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -60,18 +60,18 @@ type WorkspaceFileRepo interface {
6060
// 请求结构体
6161

6262
type CreateWorkspaceReq struct {
63-
UserID string `json:"user_id" validate:"required"` // 用户ID
64-
Name string `json:"name" validate:"required"` // 工作区名称
65-
Description string `json:"description"` // 工作区描述
66-
RootPath string `json:"root_path" validate:"required"` // 工作区根路径
67-
Settings map[string]interface{} `json:"settings"` // 工作区设置
63+
UserID string `json:"user_id" validate:"required"` // 用户ID
64+
Name string `json:"name" validate:"required"` // 工作区名称
65+
Description string `json:"description"` // 工作区描述
66+
RootPath string `json:"root_path" validate:"required"` // 工作区根路径
67+
Settings map[string]any `json:"settings"` // 工作区设置
6868
}
6969

7070
type UpdateWorkspaceReq struct {
71-
ID string `json:"id" validate:"required"` // 工作区ID
72-
Name *string `json:"name"` // 工作区名称
73-
Description *string `json:"description"` // 工作区描述
74-
Settings map[string]interface{} `json:"settings"` // 工作区设置
71+
ID string `json:"id" validate:"required"` // 工作区ID
72+
Name *string `json:"name"` // 工作区名称
73+
Description *string `json:"description"` // 工作区描述
74+
Settings map[string]any `json:"settings"` // 工作区设置
7575
}
7676

7777
type ListWorkspaceReq struct {
@@ -151,15 +151,15 @@ type SyncWorkspaceFileResp struct {
151151
// 数据模型
152152

153153
type Workspace struct {
154-
ID string `json:"id"` // 工作区ID
155-
UserID string `json:"user_id"` // 用户ID
156-
Name string `json:"name"` // 工作区名称
157-
Description string `json:"description"` // 工作区描述
158-
RootPath string `json:"root_path"` // 工作区根路径
159-
Settings map[string]interface{} `json:"settings"` // 工作区设置
160-
LastAccessedAt int64 `json:"last_accessed_at"` // 最后访问时间
161-
CreatedAt int64 `json:"created_at"` // 创建时间
162-
UpdatedAt int64 `json:"updated_at"` // 更新时间
154+
ID string `json:"id"` // 工作区ID
155+
UserID string `json:"user_id"` // 用户ID
156+
Name string `json:"name"` // 工作区名称
157+
Description string `json:"description"` // 工作区描述
158+
RootPath string `json:"root_path"` // 工作区根路径
159+
Settings map[string]any `json:"settings"` // 工作区设置
160+
LastAccessedAt int64 `json:"last_accessed_at"` // 最后访问时间
161+
CreatedAt int64 `json:"created_at"` // 创建时间
162+
UpdatedAt int64 `json:"updated_at"` // 更新时间
163163
}
164164

165165
type WorkspaceFile struct {

backend/ent/schema/workspace.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ func (Workspace) Fields() []ent.Field {
3333
field.String("name").Optional().Comment("工作区名称"),
3434
field.String("description").Optional().Comment("工作区描述"),
3535
field.String("root_path").NotEmpty().Comment("工作区根路径"),
36-
field.JSON("settings", map[string]interface{}{}).Optional().Comment("工作区设置"),
36+
field.JSON("settings", map[string]any{}).Optional().Comment("工作区设置"),
3737
field.Time("last_accessed_at").Default(time.Now).Comment("最后访问时间"),
3838
field.Time("created_at").Default(time.Now).Immutable().Comment("创建时间"),
3939
field.Time("updated_at").Default(time.Now).UpdateDefault(time.Now).Comment("更新时间"),

backend/internal/codesnippet/usecase/codesnippet.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,13 @@ func (u *CodeSnippetUsecase) CreateFromIndexResult(ctx context.Context, workspac
3838
// StartColumn 和 EndColumn 在 IndexResult 中没有直接对应字段,暂时设置为 0
3939
StartColumn: 0,
4040
EndColumn: 0,
41-
Namespace: "", // IndexResult 中没有直接对应字段
42-
ContainerName: "", // IndexResult 中没有直接对应字段
43-
Dependencies: []string{}, // IndexResult 中没有直接对应字段
44-
Parameters: []map[string]interface{}{}, // IndexResult 中没有直接对应字段
41+
Namespace: "", // IndexResult 中没有直接对应字段
42+
ContainerName: "", // IndexResult 中没有直接对应字段
43+
Dependencies: []string{}, // IndexResult 中没有直接对应字段
44+
Parameters: []map[string]any{}, // IndexResult 中没有直接对应字段
4545
Signature: indexResult.Signature,
4646
DefinitionText: indexResult.DefinitionText,
47-
StructuredInfo: map[string]interface{}{
47+
StructuredInfo: map[string]any{
4848
"definition": indexResult.Definition,
4949
},
5050
}

backend/internal/socket/handler/socket.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -350,10 +350,10 @@ func (h *SocketHandler) processFileUpdateAsync(socket *socketio.Socket, updateDa
350350
codeFiles := domain.CodeFiles{
351351
Files: []domain.FileMeta{
352352
{
353-
FilePath: updateData.FilePath,
354-
FileExtension: fileExtension,
355-
Language: h.getFileLanguage(fileExtension),
356-
Content: updateData.Content,
353+
FilePath: updateData.FilePath,
354+
// FileExtension: fileExtension,
355+
Language: h.getFileLanguage(fileExtension),
356+
Content: updateData.Content,
357357
},
358358
},
359359
}
@@ -432,10 +432,10 @@ func (h *SocketHandler) processFileUpdateAsync(socket *socketio.Socket, updateDa
432432
codeFiles := domain.CodeFiles{
433433
Files: []domain.FileMeta{
434434
{
435-
FilePath: updateData.FilePath,
436-
FileExtension: fileExtension,
437-
Language: h.getFileLanguage(fileExtension),
438-
Content: updateData.Content,
435+
FilePath: updateData.FilePath,
436+
// FileExtension: fileExtension,
437+
Language: h.getFileLanguage(fileExtension),
438+
Content: updateData.Content,
439439
},
440440
},
441441
}

backend/internal/workspace/usecase/workspace.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ func (u *WorkspaceUsecase) EnsureWorkspace(ctx context.Context, userID, rootPath
163163
Name: name,
164164
Description: fmt.Sprintf("Auto-created workspace for %s", rootPath),
165165
RootPath: rootPath,
166-
Settings: map[string]interface{}{},
166+
Settings: map[string]any{},
167167
}
168168

169169
return u.Create(ctx, createReq)

0 commit comments

Comments
 (0)