/
schema.go
96 lines (92 loc) · 3.07 KB
/
schema.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
// Code generated by ent, DO NOT EDIT.
package migrate
import (
"entgo.io/ent/dialect/entsql"
"entgo.io/ent/dialect/sql/schema"
"entgo.io/ent/schema/field"
)
var (
// PlatformColumns holds the columns for the "platform" table.
PlatformColumns = []*schema.Column{
{Name: "id", Type: field.TypeInt, Increment: true},
{Name: "name", Type: field.TypeString, Unique: true},
{Name: "icon", Type: field.TypeString, Nullable: true},
}
// PlatformTable holds the schema information for the "platform" table.
PlatformTable = &schema.Table{
Name: "platform",
Columns: PlatformColumns,
PrimaryKey: []*schema.Column{PlatformColumns[0]},
}
// RepoColumns holds the columns for the "repo" table.
RepoColumns = []*schema.Column{
{Name: "id", Type: field.TypeInt, Increment: true},
{Name: "name", Type: field.TypeString, Size: 2147483647},
{Name: "description", Type: field.TypeString, Size: 2147483647},
{Name: "url", Type: field.TypeString, Size: 2147483647},
{Name: "sub_topic", Type: field.TypeString, Size: 2147483647},
{Name: "type", Type: field.TypeEnum, Enums: []string{"repo", "resource"}},
{Name: "star_count", Type: field.TypeInt, Nullable: true},
{Name: "fork_count", Type: field.TypeInt, Nullable: true},
{Name: "watch_count", Type: field.TypeInt, Nullable: true},
{Name: "updated_at", Type: field.TypeTime, Nullable: true},
{Name: "topic_id", Type: field.TypeInt},
}
// RepoTable holds the schema information for the "repo" table.
RepoTable = &schema.Table{
Name: "repo",
Columns: RepoColumns,
PrimaryKey: []*schema.Column{RepoColumns[0]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "repo_topic_repos",
Columns: []*schema.Column{RepoColumns[10]},
RefColumns: []*schema.Column{TopicColumns[0]},
OnDelete: schema.Cascade,
},
},
}
// TopicColumns holds the columns for the "topic" table.
TopicColumns = []*schema.Column{
{Name: "id", Type: field.TypeInt, Increment: true},
{Name: "name", Type: field.TypeString},
{Name: "sub_name", Type: field.TypeString},
{Name: "description", Type: field.TypeString},
{Name: "url", Type: field.TypeString, Unique: true},
{Name: "github_url", Type: field.TypeString},
{Name: "platform_id", Type: field.TypeInt},
}
// TopicTable holds the schema information for the "topic" table.
TopicTable = &schema.Table{
Name: "topic",
Columns: TopicColumns,
PrimaryKey: []*schema.Column{TopicColumns[0]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "topic_platform_topics",
Columns: []*schema.Column{TopicColumns[6]},
RefColumns: []*schema.Column{PlatformColumns[0]},
OnDelete: schema.Cascade,
},
},
}
// Tables holds all the tables in the schema.
Tables = []*schema.Table{
PlatformTable,
RepoTable,
TopicTable,
}
)
func init() {
PlatformTable.Annotation = &entsql.Annotation{
Table: "platform",
}
RepoTable.ForeignKeys[0].RefTable = TopicTable
RepoTable.Annotation = &entsql.Annotation{
Table: "repo",
}
TopicTable.ForeignKeys[0].RefTable = PlatformTable
TopicTable.Annotation = &entsql.Annotation{
Table: "topic",
}
}