do_project_module_files.go 1.7 KB
package domain

import "time"

const (
	Dir = iota + 1
	File
)

// ProjectModuleFiles
type ProjectModuleFiles struct {
	// 唯一标识
	Id int64 `json:"id"`
	// 项目编号
	ProjectModuleId int64 `json:"projectModuleId"`
	// 项目版本编号
	ProjectModuleVersionId int64 `json:"projectModuleVersionId"`
	// 文件类型 1:文件夹 2:文件
	FileType int `json:"fileType"`
	// 文件名称
	FileName string `json:"fileName"`
	// 文件键值
	FileKey string `json:"fileKey"`
	// 代码块
	CodeBlock string `json:"codeBlock"`
	// 父级编号
	ParentId int64 `json:"parentId"`
	// 排序
	Sort int `json:"-"`
	// 备注信息
	Remark string `json:"remark"`
	// 创建时间
	CreateTime time.Time `json:"-"`
	// 更新时间
	UpdateTime time.Time `json:"-"`
	// 当前文件相对路径  a/b/c
	Path string `json:"path"`
}

type ProjectModuleFilesRepository interface {
	Save(dm *ProjectModuleFiles) (*ProjectModuleFiles, error)
	Remove(dm *ProjectModuleFiles) (*ProjectModuleFiles, error)
	FindOne(queryOptions map[string]interface{}) (*ProjectModuleFiles, error)
	Find(queryOptions map[string]interface{}) (int64, []*ProjectModuleFiles, error)
}

func (m *ProjectModuleFiles) Identify() interface{} {
	if m.Id == 0 {
		return nil
	}
	return m.Id
}

func (m *ProjectModuleFiles) Update(data map[string]interface{}) error {
	if fileName, ok := data["fileName"]; ok {
		m.FileName = fileName.(string)
	}
	if codeBlock, ok := data["codeBlock"]; ok {
		m.CodeBlock = codeBlock.(string)
	}
	//if parentId, ok := data["parentId"]; ok {
	//	m.ParentId = parentId.(int64)
	//}
	if remark, ok := data["remark"]; ok {
		m.Remark = remark.(string)
	}
	if path, ok := data["path"]; ok {
		m.Path = path.(string)
	}
	m.UpdateTime = time.Now()
	return nil
}