package sch import ( schsdk "gitlink.org.cn/cloudream/common/sdks/scheduler" cdssdk "gitlink.org.cn/cloudream/common/sdks/storage" "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 "block_chain" // 确保和数据库中的表名一致 } type Binding struct { ID schsdk.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 BindingDAO struct { ID schsdk.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"` BindingCluster []BindingCluster `gorm:"foreignKey:binding_id;references:id" json:"bindingCluster"` } type BindingAccessData struct { ID schsdk.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"` CreateTime time.Time `gorm:"column:created_at" json:"createTime"` } type BindingDetail struct { ID schsdk.DataID `json:"ID"` UserID cdssdk.UserID `json:"ownerID"` UserName string `json:"userName"` SSOId string `json:"ssoID"` Name string `json:"Name"` Info schsdk.DataBinding `json:"info"` Package Package `json:"package"` Status string `json:"status"` AccessLevel string `json:"accessLevel"` CreateTime time.Time `json:"createTime"` } func (Binding) TableName() string { return "bindings" // 确保和数据库中的表名一致 } type BindingCluster struct { BindingID schsdk.DataID `gorm:"column:binding_id" json:"bindingID"` ClusterID schsdk.ClusterID `gorm:"column:cluster_id" json:"clusterID"` Status string `gorm:"column:status" json:"status"` Param string `gorm:"column:param" json:"Param"` JsonData string `gorm:"column:json_data" json:"jsonData"` } func (BindingCluster) TableName() string { return "binding_cluster" // 确保和数据库中的表名一致 } 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"` } type BindingCount struct { Count int64 `gorm:"column:count" json:"count"` DataType string `gorm:"column:data_type" json:"dataType"` } 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 "uploaded_cluster" // 确保和数据库中的表名一致 } 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"` BindingID schsdk.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 []PackageCloneDAO `gorm:"foreignKey:parent_package_id;references:package_id" json:"versions"` UploadPriority UploadPriority `gorm:"column:upload_priority" json:"uploadPriority"` BindingInfo schsdk.DataBinding `gorm:"column:binding_info" json:"bindingInfo"` PackageType string `gorm:"column:package_type" json:"packageType"` } 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"` BindingID schsdk.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 []PackageCloneDAO `gorm:"foreignKey:parent_package_id;references:package_id" json:"versions"` UploadPriority string `gorm:"column:upload_priority" json:"uploadPriority"` Param string `gorm:"column:param" json:"param"` PackageType string `gorm:"column:package_type" json:"packageType"` } type PackageCloneDAO struct { ID schsdk.DataID `gorm:"column:id;primaryKey;autoIncrement" json:"ID"` ParentPackageID cdssdk.PackageID `gorm:"column:parent_package_id" json:"parentPackageID"` ClonePackageID cdssdk.PackageID `gorm:"column:clone_package_id" json:"clonePackageID"` Name string `gorm:"column:name" json:"name"` Description string `gorm:"column:description" json:"description"` BootstrapObjectID cdssdk.ObjectID `gorm:"column:bootstrap_object_id" json:"bootstrapObjectID"` ClusterID schsdk.ClusterID `gorm:"column:cluster_id" json:"clusterID"` //ParentImageID schsdk.ImageID `gorm:"column:parent_image_id" json:"parentImageID"` ImageID schsdk.ImageID `gorm:"column:image_id" json:"imageID"` BindingID schsdk.DataID `gorm:"column:binding_id" json:"bindingID"` CreateTime time.Time `gorm:"column:created_at" json:"createTime"` } func (PackageCloneDAO) TableName() string { return "package_clone" // 确保和数据库中的表名一致 } type PackageCloneParam struct { PackageID cdssdk.PackageID `json:"packageID" binding:"required"` PackageName string `json:"packageName" binding:"required"` Name string `json:"name"` Description string `json:"description"` BootstrapObjectID cdssdk.ObjectID `json:"bootstrapObjectID"` FilePath string `json:"filePath"` //当BootstrapObjectID为空时,filePath为必填 ClusterID schsdk.ClusterID `json:"clusterID"` Output string `json:"output"` ImageID schsdk.ImageID `json:"imageID"` IsUpload bool `json:"isUpload"` } type PackageCloneVO struct { ID schsdk.DataID `gorm:"column:id;primaryKey;autoIncrement" json:"ID"` ParentPackageID cdssdk.PackageID `gorm:"column:parent_package_id" json:"parentPackageID"` ClonePackageID cdssdk.PackageID `gorm:"column:clone_package_id" json:"clonePackageID"` Name string `gorm:"column:name" json:"name"` Description string `gorm:"column:description" json:"description"` BootstrapObjectID cdssdk.ObjectID `gorm:"column:bootstrap_object_id" json:"bootstrapObjectID"` ClusterID schsdk.ClusterID `gorm:"column:cluster_id" json:"clusterID"` //ParentImageID schsdk.ImageID `gorm:"column:parent_image_id" json:"parentImageID"` ImageID string `gorm:"column:image_id" json:"imageID"` BindingID schsdk.DataID `gorm:"column:binding_id" json:"bindingID"` CreateTime time.Time `gorm:"column:created_at" json:"createTime"` ClusterMapping ClusterMapping `gorm:"foreignKey:cluster_id;references:cluster_id" json:"cluster"` } type ClusterMapping struct { ClusterID schsdk.ClusterID `gorm:"column:cluster_id" json:"clusterID"` ClusterName string `gorm:"column:cluster_name" json:"clusterName"` StorageID cdssdk.StorageID `gorm:"column:storage_id" json:"storageID"` StorageType string `gorm:"column:storage_type" json:"storageType"` StoragePath string `gorm:"column:storage_path" json:"storagePath"` } func (ClusterMapping) TableName() string { return "cluster_mapping" }