Files
crawlab/core/interfaces/model.go
2024-06-14 15:42:50 +08:00

99 lines
2.3 KiB
Go

package interfaces
import (
"go.mongodb.org/mongo-driver/bson/primitive"
)
type Model interface {
GetId() (id primitive.ObjectID)
SetId(id primitive.ObjectID)
}
type ModelV2 interface {
GetId() (id primitive.ObjectID)
SetId(id primitive.ObjectID)
SetCreated(by primitive.ObjectID)
SetUpdated(by primitive.ObjectID)
}
type ModelId int
const (
ModelIdArtifact = iota
ModelIdTag
ModelIdNode
ModelIdProject
ModelIdSpider
ModelIdTask
ModelIdJob
ModelIdSchedule
ModelIdUser
ModelIdSetting
ModelIdToken
ModelIdVariable
ModelIdTaskQueue
ModelIdTaskStat
ModelIdSpiderStat
ModelIdDataSource
ModelIdDataCollection
ModelIdResult
ModelIdPassword
ModelIdExtraValue
ModelIdGit
ModelIdRole
ModelIdUserRole
ModelIdPermission
ModelIdRolePermission
ModelIdEnvironment
ModelIdDependencySetting
)
const (
ModelColNameArtifact = "artifacts"
ModelColNameTag = "tags"
ModelColNameNode = "nodes"
ModelColNameProject = "projects"
ModelColNameSpider = "spiders"
ModelColNameTask = "tasks"
ModelColNameJob = "jobs"
ModelColNameSchedule = "schedules"
ModelColNameUser = "users"
ModelColNameSetting = "settings"
ModelColNameToken = "tokens"
ModelColNameVariable = "variables"
ModelColNameTaskQueue = "task_queue"
ModelColNameTaskStat = "task_stats"
ModelColNameSpiderStat = "spider_stats"
ModelColNameDataSource = "data_sources"
ModelColNameDataCollection = "data_collections"
ModelColNamePasswords = "passwords"
ModelColNameExtraValues = "extra_values"
ModelColNameGit = "gits"
ModelColNameRole = "roles"
ModelColNameUserRole = "user_roles"
ModelColNamePermission = "permissions"
ModelColNameRolePermission = "role_permissions"
ModelColNameEnvironment = "environments"
ModelColNameDependencySetting = "dependency_settings"
)
type ModelWithTags interface {
Model
SetTags(tags []Tag)
GetTags() (tags []Tag)
}
type ModelWithNameDescription interface {
Model
GetName() (name string)
SetName(name string)
GetDescription() (description string)
SetDescription(description string)
}
type ModelWithKey interface {
Model
GetKey() (key string)
SetKey(key string)
}