github.com/ngocphuongnb/tetua@v0.0.7-alpha/packages/entrepository/ent/migrate/schema.go (about) 1 // Code generated by entc, DO NOT EDIT. 2 3 package migrate 4 5 import ( 6 "entgo.io/ent/dialect/entsql" 7 "entgo.io/ent/dialect/sql/schema" 8 "entgo.io/ent/schema/field" 9 ) 10 11 var ( 12 // CommentsColumns holds the columns for the "comments" table. 13 CommentsColumns = []*schema.Column{ 14 {Name: "id", Type: field.TypeInt, Increment: true}, 15 {Name: "created_at", Type: field.TypeTime, SchemaType: map[string]string{"mysql": "datetime"}}, 16 {Name: "updated_at", Type: field.TypeTime, SchemaType: map[string]string{"mysql": "datetime"}}, 17 {Name: "deleted_at", Type: field.TypeTime, Nullable: true, SchemaType: map[string]string{"mysql": "datetime"}}, 18 {Name: "content", Type: field.TypeString, Size: 2147483647}, 19 {Name: "content_html", Type: field.TypeString, Size: 2147483647}, 20 {Name: "votes", Type: field.TypeInt64, Default: 0}, 21 {Name: "parent_id", Type: field.TypeInt, Nullable: true}, 22 {Name: "post_id", Type: field.TypeInt, Nullable: true}, 23 {Name: "user_id", Type: field.TypeInt, Nullable: true}, 24 } 25 // CommentsTable holds the schema information for the "comments" table. 26 CommentsTable = &schema.Table{ 27 Name: "comments", 28 Columns: CommentsColumns, 29 PrimaryKey: []*schema.Column{CommentsColumns[0]}, 30 ForeignKeys: []*schema.ForeignKey{ 31 { 32 Symbol: "comment_parent", 33 Columns: []*schema.Column{CommentsColumns[7]}, 34 RefColumns: []*schema.Column{CommentsColumns[0]}, 35 OnDelete: schema.SetNull, 36 }, 37 { 38 Symbol: "comment_post", 39 Columns: []*schema.Column{CommentsColumns[8]}, 40 RefColumns: []*schema.Column{PostsColumns[0]}, 41 OnDelete: schema.SetNull, 42 }, 43 { 44 Symbol: "comment_user", 45 Columns: []*schema.Column{CommentsColumns[9]}, 46 RefColumns: []*schema.Column{UsersColumns[0]}, 47 OnDelete: schema.SetNull, 48 }, 49 }, 50 } 51 // FilesColumns holds the columns for the "files" table. 52 FilesColumns = []*schema.Column{ 53 {Name: "id", Type: field.TypeInt, Increment: true}, 54 {Name: "created_at", Type: field.TypeTime, SchemaType: map[string]string{"mysql": "datetime"}}, 55 {Name: "updated_at", Type: field.TypeTime, SchemaType: map[string]string{"mysql": "datetime"}}, 56 {Name: "deleted_at", Type: field.TypeTime, Nullable: true, SchemaType: map[string]string{"mysql": "datetime"}}, 57 {Name: "disk", Type: field.TypeString}, 58 {Name: "path", Type: field.TypeString, SchemaType: map[string]string{"mysql": "varchar(500)"}}, 59 {Name: "type", Type: field.TypeString}, 60 {Name: "size", Type: field.TypeInt}, 61 {Name: "user_id", Type: field.TypeInt, Nullable: true}, 62 } 63 // FilesTable holds the schema information for the "files" table. 64 FilesTable = &schema.Table{ 65 Name: "files", 66 Columns: FilesColumns, 67 PrimaryKey: []*schema.Column{FilesColumns[0]}, 68 ForeignKeys: []*schema.ForeignKey{ 69 { 70 Symbol: "file_user", 71 Columns: []*schema.Column{FilesColumns[8]}, 72 RefColumns: []*schema.Column{UsersColumns[0]}, 73 OnDelete: schema.SetNull, 74 }, 75 }, 76 Indexes: []*schema.Index{ 77 { 78 Name: "path_idx", 79 Unique: false, 80 Columns: []*schema.Column{FilesColumns[5]}, 81 }, 82 }, 83 } 84 // PagesColumns holds the columns for the "pages" table. 85 PagesColumns = []*schema.Column{ 86 {Name: "id", Type: field.TypeInt, Increment: true}, 87 {Name: "created_at", Type: field.TypeTime, SchemaType: map[string]string{"mysql": "datetime"}}, 88 {Name: "updated_at", Type: field.TypeTime, SchemaType: map[string]string{"mysql": "datetime"}}, 89 {Name: "deleted_at", Type: field.TypeTime, Nullable: true, SchemaType: map[string]string{"mysql": "datetime"}}, 90 {Name: "name", Type: field.TypeString}, 91 {Name: "slug", Type: field.TypeString}, 92 {Name: "content", Type: field.TypeString, Size: 2147483647}, 93 {Name: "content_html", Type: field.TypeString, Size: 2147483647}, 94 {Name: "draft", Type: field.TypeBool, Nullable: true, Default: false}, 95 {Name: "featured_image_id", Type: field.TypeInt, Nullable: true}, 96 } 97 // PagesTable holds the schema information for the "pages" table. 98 PagesTable = &schema.Table{ 99 Name: "pages", 100 Columns: PagesColumns, 101 PrimaryKey: []*schema.Column{PagesColumns[0]}, 102 ForeignKeys: []*schema.ForeignKey{ 103 { 104 Symbol: "page_featured_image", 105 Columns: []*schema.Column{PagesColumns[9]}, 106 RefColumns: []*schema.Column{FilesColumns[0]}, 107 OnDelete: schema.SetNull, 108 }, 109 }, 110 Indexes: []*schema.Index{ 111 { 112 Name: "name_idx", 113 Unique: false, 114 Columns: []*schema.Column{PagesColumns[4]}, 115 }, 116 { 117 Name: "slug_unique", 118 Unique: true, 119 Columns: []*schema.Column{PagesColumns[5]}, 120 }, 121 }, 122 } 123 // PermissionsColumns holds the columns for the "permissions" table. 124 PermissionsColumns = []*schema.Column{ 125 {Name: "id", Type: field.TypeInt, Increment: true}, 126 {Name: "created_at", Type: field.TypeTime, SchemaType: map[string]string{"mysql": "datetime"}}, 127 {Name: "updated_at", Type: field.TypeTime, SchemaType: map[string]string{"mysql": "datetime"}}, 128 {Name: "deleted_at", Type: field.TypeTime, Nullable: true, SchemaType: map[string]string{"mysql": "datetime"}}, 129 {Name: "action", Type: field.TypeString}, 130 {Name: "value", Type: field.TypeString}, 131 {Name: "role_id", Type: field.TypeInt}, 132 } 133 // PermissionsTable holds the schema information for the "permissions" table. 134 PermissionsTable = &schema.Table{ 135 Name: "permissions", 136 Columns: PermissionsColumns, 137 PrimaryKey: []*schema.Column{PermissionsColumns[0]}, 138 ForeignKeys: []*schema.ForeignKey{ 139 { 140 Symbol: "permission_role", 141 Columns: []*schema.Column{PermissionsColumns[6]}, 142 RefColumns: []*schema.Column{RolesColumns[0]}, 143 OnDelete: schema.Cascade, 144 }, 145 }, 146 Indexes: []*schema.Index{ 147 { 148 Name: "role_action_unique_idx", 149 Unique: true, 150 Columns: []*schema.Column{PermissionsColumns[6], PermissionsColumns[4]}, 151 }, 152 }, 153 } 154 // PostsColumns holds the columns for the "posts" table. 155 PostsColumns = []*schema.Column{ 156 {Name: "id", Type: field.TypeInt, Increment: true}, 157 {Name: "created_at", Type: field.TypeTime, SchemaType: map[string]string{"mysql": "datetime"}}, 158 {Name: "updated_at", Type: field.TypeTime, SchemaType: map[string]string{"mysql": "datetime"}}, 159 {Name: "deleted_at", Type: field.TypeTime, Nullable: true, SchemaType: map[string]string{"mysql": "datetime"}}, 160 {Name: "name", Type: field.TypeString}, 161 {Name: "slug", Type: field.TypeString}, 162 {Name: "description", Type: field.TypeString, Nullable: true}, 163 {Name: "content", Type: field.TypeString, Size: 2147483647}, 164 {Name: "content_html", Type: field.TypeString, Size: 2147483647}, 165 {Name: "view_count", Type: field.TypeInt64, Default: 0}, 166 {Name: "comment_count", Type: field.TypeInt64, Default: 0}, 167 {Name: "rating_count", Type: field.TypeInt64, Nullable: true, Default: 0}, 168 {Name: "rating_total", Type: field.TypeInt64, Nullable: true, Default: 0}, 169 {Name: "draft", Type: field.TypeBool, Nullable: true, Default: false}, 170 {Name: "approved", Type: field.TypeBool, Nullable: true, Default: false}, 171 {Name: "featured_image_id", Type: field.TypeInt, Nullable: true}, 172 {Name: "user_id", Type: field.TypeInt, Nullable: true}, 173 } 174 // PostsTable holds the schema information for the "posts" table. 175 PostsTable = &schema.Table{ 176 Name: "posts", 177 Columns: PostsColumns, 178 PrimaryKey: []*schema.Column{PostsColumns[0]}, 179 ForeignKeys: []*schema.ForeignKey{ 180 { 181 Symbol: "post_featured_image", 182 Columns: []*schema.Column{PostsColumns[15]}, 183 RefColumns: []*schema.Column{FilesColumns[0]}, 184 OnDelete: schema.SetNull, 185 }, 186 { 187 Symbol: "post_user", 188 Columns: []*schema.Column{PostsColumns[16]}, 189 RefColumns: []*schema.Column{UsersColumns[0]}, 190 OnDelete: schema.SetNull, 191 }, 192 }, 193 Indexes: []*schema.Index{ 194 { 195 Name: "name_idx", 196 Unique: false, 197 Columns: []*schema.Column{PostsColumns[4]}, 198 }, 199 { 200 Name: "view_count_idx", 201 Unique: false, 202 Columns: []*schema.Column{PostsColumns[9]}, 203 }, 204 }, 205 } 206 // RolesColumns holds the columns for the "roles" table. 207 RolesColumns = []*schema.Column{ 208 {Name: "id", Type: field.TypeInt, Increment: true}, 209 {Name: "created_at", Type: field.TypeTime, SchemaType: map[string]string{"mysql": "datetime"}}, 210 {Name: "updated_at", Type: field.TypeTime, SchemaType: map[string]string{"mysql": "datetime"}}, 211 {Name: "deleted_at", Type: field.TypeTime, Nullable: true, SchemaType: map[string]string{"mysql": "datetime"}}, 212 {Name: "name", Type: field.TypeString, Unique: true}, 213 {Name: "description", Type: field.TypeString, Nullable: true}, 214 {Name: "root", Type: field.TypeBool, Nullable: true}, 215 } 216 // RolesTable holds the schema information for the "roles" table. 217 RolesTable = &schema.Table{ 218 Name: "roles", 219 Columns: RolesColumns, 220 PrimaryKey: []*schema.Column{RolesColumns[0]}, 221 } 222 // SettingsColumns holds the columns for the "settings" table. 223 SettingsColumns = []*schema.Column{ 224 {Name: "id", Type: field.TypeInt, Increment: true}, 225 {Name: "created_at", Type: field.TypeTime, SchemaType: map[string]string{"mysql": "datetime"}}, 226 {Name: "updated_at", Type: field.TypeTime, SchemaType: map[string]string{"mysql": "datetime"}}, 227 {Name: "deleted_at", Type: field.TypeTime, Nullable: true, SchemaType: map[string]string{"mysql": "datetime"}}, 228 {Name: "name", Type: field.TypeString}, 229 {Name: "value", Type: field.TypeString, Nullable: true, Size: 2147483647}, 230 {Name: "type", Type: field.TypeString, Nullable: true, Default: "input"}, 231 } 232 // SettingsTable holds the schema information for the "settings" table. 233 SettingsTable = &schema.Table{ 234 Name: "settings", 235 Columns: SettingsColumns, 236 PrimaryKey: []*schema.Column{SettingsColumns[0]}, 237 Indexes: []*schema.Index{ 238 { 239 Name: "setting_name", 240 Unique: true, 241 Columns: []*schema.Column{SettingsColumns[4]}, 242 }, 243 }, 244 } 245 // TopicsColumns holds the columns for the "topics" table. 246 TopicsColumns = []*schema.Column{ 247 {Name: "id", Type: field.TypeInt, Increment: true}, 248 {Name: "created_at", Type: field.TypeTime, SchemaType: map[string]string{"mysql": "datetime"}}, 249 {Name: "updated_at", Type: field.TypeTime, SchemaType: map[string]string{"mysql": "datetime"}}, 250 {Name: "deleted_at", Type: field.TypeTime, Nullable: true, SchemaType: map[string]string{"mysql": "datetime"}}, 251 {Name: "name", Type: field.TypeString, Unique: true}, 252 {Name: "slug", Type: field.TypeString, Unique: true}, 253 {Name: "description", Type: field.TypeString, Nullable: true}, 254 {Name: "content", Type: field.TypeString, Size: 2147483647}, 255 {Name: "content_html", Type: field.TypeString, Size: 2147483647}, 256 {Name: "parent_id", Type: field.TypeInt, Nullable: true}, 257 } 258 // TopicsTable holds the schema information for the "topics" table. 259 TopicsTable = &schema.Table{ 260 Name: "topics", 261 Columns: TopicsColumns, 262 PrimaryKey: []*schema.Column{TopicsColumns[0]}, 263 ForeignKeys: []*schema.ForeignKey{ 264 { 265 Symbol: "topic_parent", 266 Columns: []*schema.Column{TopicsColumns[9]}, 267 RefColumns: []*schema.Column{TopicsColumns[0]}, 268 OnDelete: schema.SetNull, 269 }, 270 }, 271 } 272 // UsersColumns holds the columns for the "users" table. 273 UsersColumns = []*schema.Column{ 274 {Name: "id", Type: field.TypeInt, Increment: true}, 275 {Name: "created_at", Type: field.TypeTime, SchemaType: map[string]string{"mysql": "datetime"}}, 276 {Name: "updated_at", Type: field.TypeTime, SchemaType: map[string]string{"mysql": "datetime"}}, 277 {Name: "deleted_at", Type: field.TypeTime, Nullable: true, SchemaType: map[string]string{"mysql": "datetime"}}, 278 {Name: "username", Type: field.TypeString, Unique: true}, 279 {Name: "display_name", Type: field.TypeString, Nullable: true}, 280 {Name: "url", Type: field.TypeString, Nullable: true}, 281 {Name: "provider", Type: field.TypeString, Nullable: true}, 282 {Name: "provider_id", Type: field.TypeString, Nullable: true}, 283 {Name: "provider_username", Type: field.TypeString, Nullable: true}, 284 {Name: "provider_avatar", Type: field.TypeString, Nullable: true}, 285 {Name: "email", Type: field.TypeString, Nullable: true}, 286 {Name: "password", Type: field.TypeString, Nullable: true}, 287 {Name: "bio", Type: field.TypeString, Nullable: true, Size: 2147483647}, 288 {Name: "bio_html", Type: field.TypeString, Nullable: true, Size: 2147483647}, 289 {Name: "active", Type: field.TypeBool, Default: true}, 290 {Name: "avatar_image_id", Type: field.TypeInt, Nullable: true}, 291 } 292 // UsersTable holds the schema information for the "users" table. 293 UsersTable = &schema.Table{ 294 Name: "users", 295 Columns: UsersColumns, 296 PrimaryKey: []*schema.Column{UsersColumns[0]}, 297 ForeignKeys: []*schema.ForeignKey{ 298 { 299 Symbol: "user_avatar_image", 300 Columns: []*schema.Column{UsersColumns[16]}, 301 RefColumns: []*schema.Column{FilesColumns[0]}, 302 OnDelete: schema.SetNull, 303 }, 304 }, 305 Indexes: []*schema.Index{ 306 { 307 Name: "provider_provider_id_unique", 308 Unique: true, 309 Columns: []*schema.Column{UsersColumns[7], UsersColumns[8]}, 310 }, 311 }, 312 } 313 // RoleUsersColumns holds the columns for the "role_users" table. 314 RoleUsersColumns = []*schema.Column{ 315 {Name: "role_id", Type: field.TypeInt}, 316 {Name: "user_id", Type: field.TypeInt}, 317 } 318 // RoleUsersTable holds the schema information for the "role_users" table. 319 RoleUsersTable = &schema.Table{ 320 Name: "role_users", 321 Columns: RoleUsersColumns, 322 PrimaryKey: []*schema.Column{RoleUsersColumns[0], RoleUsersColumns[1]}, 323 ForeignKeys: []*schema.ForeignKey{ 324 { 325 Symbol: "role_users_role_id", 326 Columns: []*schema.Column{RoleUsersColumns[0]}, 327 RefColumns: []*schema.Column{RolesColumns[0]}, 328 OnDelete: schema.Cascade, 329 }, 330 { 331 Symbol: "role_users_user_id", 332 Columns: []*schema.Column{RoleUsersColumns[1]}, 333 RefColumns: []*schema.Column{UsersColumns[0]}, 334 OnDelete: schema.Cascade, 335 }, 336 }, 337 } 338 // TopicPostsColumns holds the columns for the "topic_posts" table. 339 TopicPostsColumns = []*schema.Column{ 340 {Name: "topic_id", Type: field.TypeInt}, 341 {Name: "post_id", Type: field.TypeInt}, 342 } 343 // TopicPostsTable holds the schema information for the "topic_posts" table. 344 TopicPostsTable = &schema.Table{ 345 Name: "topic_posts", 346 Columns: TopicPostsColumns, 347 PrimaryKey: []*schema.Column{TopicPostsColumns[0], TopicPostsColumns[1]}, 348 ForeignKeys: []*schema.ForeignKey{ 349 { 350 Symbol: "topic_posts_topic_id", 351 Columns: []*schema.Column{TopicPostsColumns[0]}, 352 RefColumns: []*schema.Column{TopicsColumns[0]}, 353 OnDelete: schema.Cascade, 354 }, 355 { 356 Symbol: "topic_posts_post_id", 357 Columns: []*schema.Column{TopicPostsColumns[1]}, 358 RefColumns: []*schema.Column{PostsColumns[0]}, 359 OnDelete: schema.Cascade, 360 }, 361 }, 362 } 363 // Tables holds all the tables in the schema. 364 Tables = []*schema.Table{ 365 CommentsTable, 366 FilesTable, 367 PagesTable, 368 PermissionsTable, 369 PostsTable, 370 RolesTable, 371 SettingsTable, 372 TopicsTable, 373 UsersTable, 374 RoleUsersTable, 375 TopicPostsTable, 376 } 377 ) 378 379 func init() { 380 CommentsTable.ForeignKeys[0].RefTable = CommentsTable 381 CommentsTable.ForeignKeys[1].RefTable = PostsTable 382 CommentsTable.ForeignKeys[2].RefTable = UsersTable 383 CommentsTable.Annotation = &entsql.Annotation{ 384 Charset: "utf8mb4", 385 Collation: "utf8mb4_unicode_ci", 386 } 387 FilesTable.ForeignKeys[0].RefTable = UsersTable 388 FilesTable.Annotation = &entsql.Annotation{ 389 Charset: "utf8mb4", 390 Collation: "utf8mb4_unicode_ci", 391 } 392 PagesTable.ForeignKeys[0].RefTable = FilesTable 393 PagesTable.Annotation = &entsql.Annotation{ 394 Charset: "utf8mb4", 395 Collation: "utf8mb4_unicode_ci", 396 } 397 PermissionsTable.ForeignKeys[0].RefTable = RolesTable 398 PermissionsTable.Annotation = &entsql.Annotation{ 399 Charset: "utf8mb4", 400 Collation: "utf8mb4_unicode_ci", 401 } 402 PostsTable.ForeignKeys[0].RefTable = FilesTable 403 PostsTable.ForeignKeys[1].RefTable = UsersTable 404 PostsTable.Annotation = &entsql.Annotation{ 405 Charset: "utf8mb4", 406 Collation: "utf8mb4_unicode_ci", 407 } 408 RolesTable.Annotation = &entsql.Annotation{ 409 Charset: "utf8mb4", 410 Collation: "utf8mb4_unicode_ci", 411 } 412 SettingsTable.Annotation = &entsql.Annotation{ 413 Charset: "utf8mb4", 414 Collation: "utf8mb4_unicode_ci", 415 } 416 TopicsTable.ForeignKeys[0].RefTable = TopicsTable 417 TopicsTable.Annotation = &entsql.Annotation{ 418 Charset: "utf8mb4", 419 Collation: "utf8mb4_unicode_ci", 420 } 421 UsersTable.ForeignKeys[0].RefTable = FilesTable 422 UsersTable.Annotation = &entsql.Annotation{ 423 Charset: "utf8mb4", 424 Collation: "utf8mb4_unicode_ci", 425 } 426 RoleUsersTable.ForeignKeys[0].RefTable = RolesTable 427 RoleUsersTable.ForeignKeys[1].RefTable = UsersTable 428 TopicPostsTable.ForeignKeys[0].RefTable = TopicsTable 429 TopicPostsTable.ForeignKeys[1].RefTable = PostsTable 430 }