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, } }