You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

uploader_models.go 10 kB

6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. package sch
  2. import (
  3. schsdk "gitlink.org.cn/cloudream/common/sdks/scheduler"
  4. cdssdk "gitlink.org.cn/cloudream/common/sdks/storage"
  5. "time"
  6. )
  7. //type ClusterID string
  8. type BlockChain struct {
  9. ObjectID cdssdk.ObjectID `gorm:"column:object_id" json:"objectID"`
  10. BlockChainID string `gorm:"column:blockchain_id" json:"blockChainID"`
  11. BlockChainType string `gorm:"column:blockchain_type" json:"blockChainType"`
  12. //FileName string `gorm:"column:file_name" json:"fileName"`
  13. //FileHash string `gorm:"column:file_hash" json:"fileHash"`
  14. //FileSize int64 `gorm:"column:file_size" json:"fileSize"`
  15. }
  16. func (BlockChain) TableName() string {
  17. return "block_chain" // 确保和数据库中的表名一致
  18. }
  19. type Binding struct {
  20. ID schsdk.DataID `gorm:"column:id;primaryKey;autoIncrement" json:"ID"`
  21. UserID cdssdk.UserID `gorm:"column:user_id" json:"userID"`
  22. Name string `gorm:"column:name" json:"Name"`
  23. DataType string `gorm:"column:data_type" json:"dataType"`
  24. Content string `gorm:"column:content" json:"Content"`
  25. AccessLevel string `gorm:"column:access_level" json:"accessLevel"`
  26. CreateTime time.Time `gorm:"column:created_at" json:"createTime"`
  27. }
  28. type BindingDAO struct {
  29. ID schsdk.DataID `gorm:"column:id;primaryKey;autoIncrement" json:"ID"`
  30. UserID cdssdk.UserID `gorm:"column:user_id" json:"userID"`
  31. Name string `gorm:"column:name" json:"Name"`
  32. DataType string `gorm:"column:data_type" json:"dataType"`
  33. Content string `gorm:"column:content" json:"Content"`
  34. AccessLevel string `gorm:"column:access_level" json:"accessLevel"`
  35. CreateTime time.Time `gorm:"column:created_at" json:"createTime"`
  36. BindingCluster []BindingCluster `gorm:"foreignKey:binding_id;references:id" json:"bindingCluster"`
  37. }
  38. type BindingAccessData struct {
  39. ID schsdk.DataID `gorm:"column:id;primaryKey;autoIncrement" json:"ID"`
  40. UserID cdssdk.UserID `gorm:"column:user_id" json:"userID"`
  41. UserName string `gorm:"column:username" json:"userName"`
  42. SSOId string `gorm:"column:sso_id" json:"ssoID"`
  43. Name string `gorm:"column:name" json:"Name"`
  44. DataType string `gorm:"column:data_type" json:"dataType"`
  45. Content string `gorm:"column:content" json:"Content"`
  46. AccessLevel string `gorm:"column:access_level" json:"accessLevel"`
  47. ApplicantID cdssdk.UserID `gorm:"column:applicant_id" json:"applicantID"`
  48. Status string `gorm:"column:status" json:"status"`
  49. CreateTime time.Time `gorm:"column:created_at" json:"createTime"`
  50. }
  51. type BindingDetail struct {
  52. ID schsdk.DataID `json:"ID"`
  53. UserID cdssdk.UserID `json:"ownerID"`
  54. UserName string `json:"userName"`
  55. SSOId string `json:"ssoID"`
  56. Name string `json:"Name"`
  57. Info schsdk.DataBinding `json:"info"`
  58. Package Package `json:"package"`
  59. Status string `json:"status"`
  60. AccessLevel string `json:"accessLevel"`
  61. CreateTime time.Time `json:"createTime"`
  62. }
  63. func (Binding) TableName() string {
  64. return "bindings" // 确保和数据库中的表名一致
  65. }
  66. type BindingCluster struct {
  67. BindingID schsdk.DataID `gorm:"column:binding_id" json:"bindingID"`
  68. ClusterID schsdk.ClusterID `gorm:"column:cluster_id" json:"clusterID"`
  69. Status string `gorm:"column:status" json:"status"`
  70. Param string `gorm:"column:param" json:"Param"`
  71. JsonData string `gorm:"column:json_data" json:"jsonData"`
  72. }
  73. func (BindingCluster) TableName() string {
  74. return "binding_cluster" // 确保和数据库中的表名一致
  75. }
  76. type Folder struct {
  77. PackageID cdssdk.PackageID `gorm:"column:package_id" json:"packageID"`
  78. Path string `gorm:"column:path_name" json:"path"`
  79. CreateTime time.Time `gorm:"column:create_time" json:"createTime"`
  80. }
  81. type BindingCount struct {
  82. Count int64 `gorm:"column:count" json:"count"`
  83. DataType string `gorm:"column:data_type" json:"dataType"`
  84. }
  85. func (Folder) TableName() string {
  86. return "folders"
  87. }
  88. // type DataID int64
  89. type FolderID int64
  90. type Cluster struct {
  91. PackageID cdssdk.PackageID `gorm:"column:package_id" json:"PackageID"`
  92. ClusterID schsdk.ClusterID `gorm:"column:cluster_id" json:"clusterID"`
  93. StorageID cdssdk.StorageID `gorm:"column:storage_id" json:"storageID"`
  94. }
  95. func (Cluster) TableName() string {
  96. return "uploaded_cluster" // 确保和数据库中的表名一致
  97. }
  98. type Package struct {
  99. UserID cdssdk.UserID `gorm:"column:user_id" json:"userID"`
  100. PackageID cdssdk.PackageID `gorm:"column:package_id" json:"packageID"`
  101. PackageName string `gorm:"column:package_name" json:"packageName"`
  102. BucketID cdssdk.BucketID `gorm:"column:bucket_id" json:"bucketID"`
  103. DataType string `gorm:"column:data_type" json:"dataType"`
  104. BindingID schsdk.DataID `gorm:"column:binding_id" json:"bindingID"`
  105. CreateTime time.Time `gorm:"column:create_time" json:"createTime"`
  106. Objects []cdssdk.Object `gorm:"column:objects" json:"objects"`
  107. UploadedCluster []Cluster `gorm:"column:uploadedCluster" json:"uploadedCluster"`
  108. Versions []PackageCloneDAO `gorm:"foreignKey:parent_package_id;references:package_id" json:"versions"`
  109. UploadPriority UploadPriority `gorm:"column:upload_priority" json:"uploadPriority"`
  110. BindingInfo schsdk.DataBinding `gorm:"column:binding_info" json:"bindingInfo"`
  111. PackageType string `gorm:"column:package_type" json:"packageType"`
  112. }
  113. type PackageDAO struct {
  114. UserID cdssdk.UserID `gorm:"column:user_id" json:"userID"`
  115. PackageID cdssdk.PackageID `gorm:"column:package_id" json:"packageID"`
  116. PackageName string `gorm:"column:package_name" json:"packageName"`
  117. BucketID cdssdk.BucketID `gorm:"column:bucket_id" json:"bucketID"`
  118. DataType string `gorm:"column:data_type" json:"dataType"`
  119. BindingID schsdk.DataID `gorm:"column:binding_id" json:"bindingID"`
  120. CreateTime time.Time `gorm:"column:create_time" json:"createTime"`
  121. UploadedCluster []Cluster `gorm:"foreignKey:package_id;references:package_id" json:"clusters"` // 关联 Cluster 数据
  122. Versions []PackageCloneDAO `gorm:"foreignKey:parent_package_id;references:package_id" json:"versions"`
  123. UploadPriority string `gorm:"column:upload_priority" json:"uploadPriority"`
  124. Param string `gorm:"column:param" json:"param"`
  125. PackageType string `gorm:"column:package_type" json:"packageType"`
  126. }
  127. type PackageCloneDAO struct {
  128. ID schsdk.DataID `gorm:"column:id;primaryKey;autoIncrement" json:"ID"`
  129. ParentPackageID cdssdk.PackageID `gorm:"column:parent_package_id" json:"parentPackageID"`
  130. ClonePackageID cdssdk.PackageID `gorm:"column:clone_package_id" json:"clonePackageID"`
  131. Name string `gorm:"column:name" json:"name"`
  132. Description string `gorm:"column:description" json:"description"`
  133. BootstrapObjectID cdssdk.ObjectID `gorm:"column:bootstrap_object_id" json:"bootstrapObjectID"`
  134. ClusterID schsdk.ClusterID `gorm:"column:cluster_id" json:"clusterID"`
  135. //ParentImageID schsdk.ImageID `gorm:"column:parent_image_id" json:"parentImageID"`
  136. ImageID schsdk.ImageID `gorm:"column:image_id" json:"imageID"`
  137. BindingID schsdk.DataID `gorm:"column:binding_id" json:"bindingID"`
  138. CreateTime time.Time `gorm:"column:created_at" json:"createTime"`
  139. }
  140. func (PackageCloneDAO) TableName() string {
  141. return "package_clone" // 确保和数据库中的表名一致
  142. }
  143. type PackageCloneParam struct {
  144. PackageID cdssdk.PackageID `json:"packageID" binding:"required"`
  145. PackageName string `json:"packageName" binding:"required"`
  146. Name string `json:"name"`
  147. Description string `json:"description"`
  148. BootstrapObjectID cdssdk.ObjectID `json:"bootstrapObjectID"`
  149. FilePath string `json:"filePath"` //当BootstrapObjectID为空时,filePath为必填
  150. ClusterID schsdk.ClusterID `json:"clusterID"`
  151. Output string `json:"output"`
  152. ImageID schsdk.ImageID `json:"imageID"`
  153. IsUpload bool `json:"isUpload"`
  154. }
  155. type PackageCloneVO struct {
  156. ID schsdk.DataID `gorm:"column:id;primaryKey;autoIncrement" json:"ID"`
  157. ParentPackageID cdssdk.PackageID `gorm:"column:parent_package_id" json:"parentPackageID"`
  158. ClonePackageID cdssdk.PackageID `gorm:"column:clone_package_id" json:"clonePackageID"`
  159. Name string `gorm:"column:name" json:"name"`
  160. Description string `gorm:"column:description" json:"description"`
  161. BootstrapObjectID cdssdk.ObjectID `gorm:"column:bootstrap_object_id" json:"bootstrapObjectID"`
  162. ClusterID schsdk.ClusterID `gorm:"column:cluster_id" json:"clusterID"`
  163. //ParentImageID schsdk.ImageID `gorm:"column:parent_image_id" json:"parentImageID"`
  164. ImageID string `gorm:"column:image_id" json:"imageID"`
  165. BindingID schsdk.DataID `gorm:"column:binding_id" json:"bindingID"`
  166. CreateTime time.Time `gorm:"column:created_at" json:"createTime"`
  167. ClusterMapping ClusterMapping `gorm:"foreignKey:cluster_id;references:cluster_id" json:"cluster"`
  168. }
  169. type ClusterMapping struct {
  170. ClusterID schsdk.ClusterID `gorm:"column:cluster_id" json:"clusterID"`
  171. ClusterName string `gorm:"column:cluster_name" json:"clusterName"`
  172. StorageID cdssdk.StorageID `gorm:"column:storage_id" json:"storageID"`
  173. StorageType string `gorm:"column:storage_type" json:"storageType"`
  174. StoragePath string `gorm:"column:storage_path" json:"storagePath"`
  175. }
  176. func (ClusterMapping) TableName() string {
  177. return "cluster_mapping"
  178. }