|
- package uploadersdk
-
- import (
- "gitlink.org.cn/cloudream/common/pkgs/types"
- sch "gitlink.org.cn/cloudream/common/sdks/pcmscheduler"
- schsdk "gitlink.org.cn/cloudream/common/sdks/scheduler"
- cdssdk "gitlink.org.cn/cloudream/common/sdks/storage"
- "gitlink.org.cn/cloudream/common/utils/serder"
- "time"
- )
-
- type ClusterID string
-
- type BlockChain struct {
- ObjectID cdssdk.ObjectID `gorm:"column:object_id" json:"objectID"`
- BlockChainID string `gorm:"column:blockchain_id" json:"blockChainID"`
- BlockChainType string `gorm:"column:blockchain_type" json:"blockChainType"`
- //FileName string `gorm:"column:file_name" json:"fileName"`
- //FileHash string `gorm:"column:file_hash" json:"fileHash"`
- //FileSize int64 `gorm:"column:file_size" json:"fileSize"`
- }
-
- func (BlockChain) TableName() string {
- return "BlockChain" // 确保和数据库中的表名一致
- }
-
- type Binding struct {
- ID DataID `gorm:"column:id;primaryKey;autoIncrement" json:"ID"`
- UserID cdssdk.UserID `gorm:"column:user_id" json:"userID"`
- Name string `gorm:"column:name" json:"Name"`
- DataType string `gorm:"column:data_type" json:"dataType"`
- Content string `gorm:"column:content" json:"Content"`
- AccessLevel string `gorm:"column:access_level" json:"accessLevel"`
- CreateTime time.Time `gorm:"column:created_at" json:"createTime"`
- }
-
- type BindingAccessData struct {
- ID DataID `gorm:"column:id;primaryKey;autoIncrement" json:"ID"`
- UserID cdssdk.UserID `gorm:"column:user_id" json:"userID"`
- UserName string `gorm:"column:username" json:"userName"`
- SSOId string `gorm:"column:sso_id" json:"ssoID"`
- Name string `gorm:"column:name" json:"Name"`
- DataType string `gorm:"column:data_type" json:"dataType"`
- Content string `gorm:"column:content" json:"Content"`
- AccessLevel string `gorm:"column:access_level" json:"accessLevel"`
- ApplicantID cdssdk.UserID `gorm:"column:applicant_id" json:"applicantID"`
- Status string `gorm:"column:status" json:"status"`
- }
-
- type BindingDetail struct {
- ID DataID `json:"ID"`
- UserID cdssdk.UserID `json:"ownerID"`
- UserName string `json:"userName"`
- SSOId string `json:"ssoID"`
- Name string `json:"Name"`
- Info sch.DataBinding `json:"info"`
- Packages []Package `json:"packages"`
- Status string `json:"status"`
- AccessLevel string `json:"accessLevel"`
- }
-
- func (Binding) TableName() string {
- return "BindingData" // 确保和数据库中的表名一致
- }
-
- type Folder struct {
- PackageID cdssdk.PackageID `gorm:"column:package_id" json:"packageID"`
- Path string `gorm:"column:path_name" json:"path"`
- CreateTime time.Time `gorm:"column:create_time" json:"createTime"`
- }
-
- func (Folder) TableName() string {
- return "folders"
- }
-
- type DataID int64
- type FolderID int64
-
- type Cluster struct {
- PackageID cdssdk.PackageID `gorm:"column:package_id" json:"PackageID"`
- ClusterID schsdk.ClusterID `gorm:"column:cluster_id" json:"clusterID"`
- StorageID cdssdk.StorageID `gorm:"column:storage_id" json:"storageID"`
- }
-
- func (Cluster) TableName() string {
- return "uploadedCluster" // 确保和数据库中的表名一致
- }
-
- type Package struct {
- UserID cdssdk.UserID `gorm:"column:user_id" json:"userID"`
- PackageID cdssdk.PackageID `gorm:"column:package_id" json:"packageID"`
- PackageName string `gorm:"column:package_name" json:"packageName"`
- BucketID cdssdk.BucketID `gorm:"column:bucket_id" json:"bucketID"`
- DataType string `gorm:"column:data_type" json:"dataType"`
- JsonData string `gorm:"column:json_data" json:"jsonData"` // JSON 数据字段
- BindingID DataID `gorm:"column:binding_id" json:"bindingID"`
- CreateTime time.Time `gorm:"column:create_time" json:"createTime"`
- Objects []cdssdk.Object `gorm:"column:objects" json:"objects"`
- UploadedCluster []Cluster `gorm:"column:uploadedCluster" json:"uploadedCluster"`
- Versions []PackageVersion `gorm:"foreignKey:parent_package_id;references:package_id" json:"versions"`
- //BlockChain []BlockChain `gorm:"foreignKey:package_id;references:package_id" json:"blockChains"` // 关联 BlockChain 数据
- UploadPriority sch.UploadPriority `gorm:"column:upload_priority" json:"uploadPriority"`
- }
-
- type PackageDAO struct {
- UserID cdssdk.UserID `gorm:"column:user_id" json:"userID"`
- PackageID cdssdk.PackageID `gorm:"column:package_id" json:"packageID"`
- PackageName string `gorm:"column:package_name" json:"packageName"`
- BucketID cdssdk.BucketID `gorm:"column:bucket_id" json:"bucketID"`
- DataType string `gorm:"column:data_type" json:"dataType"`
- JsonData string `gorm:"column:json_data" json:"jsonData"` // JSON 数据字段
- BindingID DataID `gorm:"column:binding_id" json:"bindingID"`
- CreateTime time.Time `gorm:"column:create_time" json:"createTime"`
- UploadedCluster []Cluster `gorm:"foreignKey:package_id;references:package_id" json:"clusters"` // 关联 Cluster 数据
- Versions []PackageVersion `gorm:"foreignKey:parent_package_id;references:package_id" json:"versions"`
- UploadPriority string `gorm:"column:upload_priority" json:"uploadPriority"`
- }
-
- type PackageVersion struct {
- ParentPackageID cdssdk.PackageID `gorm:"column:parent_package_id" json:"parentPackageID"`
- PackageID cdssdk.PackageID `gorm:"column:package_id" json:"packageID"`
- PackageName string `gorm:"column:package_name" json:"packageName"`
- Version int64 `gorm:"column:package_version" json:"version"`
- }
-
- func (PackageVersion) TableName() string {
- return "packageVersion" // 确保和数据库中的表名一致
- }
-
- //type PackageScheduleType interface {
- // Noop()
- //}
- //
- //var PackageScheduleTypeUnion = types.NewTypeUnion[PackageScheduleType](
- // (*PackagePreferencesSchedule)(nil),
- // (*PackageSpecifyClusterSchedule)(nil),
- //)
- //
- //var _ = serder.UseTypeUnionInternallyTagged(&PackageScheduleTypeUnion, "type")
- //
- //type PackageScheduleBase struct{}
- //
- //func (d *PackageScheduleBase) Noop() {}
- //
- //type PackagePreferencesSchedule struct {
- // serder.Metadata `union:"region"`
- // PackageScheduleBase
- // Type string `json:"type"`
- // a sch.Preferences
- //}
- //
- //type PackageSpecifyClusterSchedule struct {
- // serder.Metadata `union:"region"`
- // PackageScheduleBase
- // Type string `json:"type"`
- //}
-
- type ScheduleTarget interface {
- Noop()
- }
-
- var DataScheduleTargetTypeUnion = types.NewTypeUnion[ScheduleTarget](
- (*JCSScheduleTarget)(nil),
- (*UrlScheduleTarget)(nil),
- )
-
- var _ = serder.UseTypeUnionInternallyTagged(&DataScheduleTargetTypeUnion, "type")
-
- type ScheduleTargetBase struct{}
-
- func (d *ScheduleTargetBase) Noop() {}
-
- type JCSScheduleTarget struct {
- ScheduleTargetBase
- UserID cdssdk.UserID `json:"userID"`
- ScheduleStorages []ScheduleStorage `json:"scheduleStorages"`
- }
-
- type UrlScheduleTarget struct {
- ScheduleTargetBase
- ScheduleUrls []ScheduleUrl `json:"scheduleUrls"`
- }
-
- type ScheduleUrl struct {
- ClusterID ClusterID `json:"clusterID"`
- //RepositoryName string `json:"repositoryName"`
- JsonData string `json:"jsonData"`
- }
-
- type ScheduleStorage struct {
- StorageID cdssdk.StorageID `json:"storageID"`
- RootPath string `json:"rootPath"`
- }
|