refactor(api): expose project identity DTOs
This commit is contained in:
42
backend/internal/logic/projects/dto.go
Normal file
42
backend/internal/logic/projects/dto.go
Normal file
@@ -0,0 +1,42 @@
|
||||
package projects
|
||||
|
||||
import "senlinai-agent/backend/internal/models"
|
||||
|
||||
// ProjectDTO 是项目 API 的稳定响应;ID 使用公开 identity,避免泄漏数据库自增主键。
|
||||
type ProjectDTO struct {
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Identifier string `json:"identifier"`
|
||||
Icon string `json:"icon"`
|
||||
Background string `json:"background"`
|
||||
Description string `json:"description"`
|
||||
}
|
||||
|
||||
// CreateProjectRequest 描述创建项目时允许客户端写入的字段。
|
||||
type CreateProjectRequest struct {
|
||||
Name string `json:"name"`
|
||||
Identifier string `json:"identifier"`
|
||||
Icon string `json:"icon"`
|
||||
Background string `json:"background"`
|
||||
Description string `json:"description"`
|
||||
}
|
||||
|
||||
// UpdateProjectRequest 使用指针区分“未提供”和“显式清空”,且只开放项目设置字段。
|
||||
type UpdateProjectRequest struct {
|
||||
Name *string `json:"name"`
|
||||
Identifier *string `json:"identifier"`
|
||||
Icon *string `json:"icon"`
|
||||
Background *string `json:"background"`
|
||||
Description *string `json:"description"`
|
||||
}
|
||||
|
||||
func projectDTO(project models.SenlinAgentProject) ProjectDTO {
|
||||
return ProjectDTO{
|
||||
ID: project.Identity,
|
||||
Name: project.Name,
|
||||
Identifier: project.Identifier,
|
||||
Icon: project.Icon,
|
||||
Background: project.Background,
|
||||
Description: project.Description,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user