/
schema.go
105 lines (101 loc) · 3.33 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
97
98
99
100
101
102
103
104
105
// Code generated by entc, DO NOT EDIT.
package migrate
import (
"entgo.io/ent/dialect/sql/schema"
"entgo.io/ent/schema/field"
)
var (
// ChatsColumns holds the columns for the "chats" table.
ChatsColumns = []*schema.Column{
{Name: "id", Type: field.TypeInt64, Increment: true},
{Name: "owner_id", Type: field.TypeInt64, Unique: true},
}
// ChatsTable holds the schema information for the "chats" table.
ChatsTable = &schema.Table{
Name: "chats",
Columns: ChatsColumns,
PrimaryKey: []*schema.Column{ChatsColumns[0]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "chats_users_chat",
Columns: []*schema.Column{ChatsColumns[1]},
RefColumns: []*schema.Column{UsersColumns[0]},
OnDelete: schema.NoAction,
},
},
}
// MessagesColumns holds the columns for the "messages" table.
MessagesColumns = []*schema.Column{
{Name: "id", Type: field.TypeInt64, Increment: true},
{Name: "text", Type: field.TypeString, Size: 2147483647},
{Name: "timestamp", Type: field.TypeTime},
{Name: "chat_id", Type: field.TypeInt64},
{Name: "user_id", Type: field.TypeInt64},
}
// MessagesTable holds the schema information for the "messages" table.
MessagesTable = &schema.Table{
Name: "messages",
Columns: MessagesColumns,
PrimaryKey: []*schema.Column{MessagesColumns[0]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "messages_chats_messages",
Columns: []*schema.Column{MessagesColumns[3]},
RefColumns: []*schema.Column{ChatsColumns[0]},
OnDelete: schema.NoAction,
},
{
Symbol: "messages_users_messages",
Columns: []*schema.Column{MessagesColumns[4]},
RefColumns: []*schema.Column{UsersColumns[0]},
OnDelete: schema.NoAction,
},
},
}
// UsersColumns holds the columns for the "users" table.
UsersColumns = []*schema.Column{
{Name: "id", Type: field.TypeInt64, Increment: true},
{Name: "email", Type: field.TypeString, Unique: true},
{Name: "password", Type: field.TypeString},
}
// UsersTable holds the schema information for the "users" table.
UsersTable = &schema.Table{
Name: "users",
Columns: UsersColumns,
PrimaryKey: []*schema.Column{UsersColumns[0]},
}
// UserMetadataColumns holds the columns for the "user_metadata" table.
UserMetadataColumns = []*schema.Column{
{Name: "id", Type: field.TypeInt64, Increment: true},
{Name: "name", Type: field.TypeString, Unique: true},
{Name: "color", Type: field.TypeInt32},
{Name: "user_id", Type: field.TypeInt64, Unique: true},
}
// UserMetadataTable holds the schema information for the "user_metadata" table.
UserMetadataTable = &schema.Table{
Name: "user_metadata",
Columns: UserMetadataColumns,
PrimaryKey: []*schema.Column{UserMetadataColumns[0]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "user_metadata_users_metadata",
Columns: []*schema.Column{UserMetadataColumns[3]},
RefColumns: []*schema.Column{UsersColumns[0]},
OnDelete: schema.NoAction,
},
},
}
// Tables holds all the tables in the schema.
Tables = []*schema.Table{
ChatsTable,
MessagesTable,
UsersTable,
UserMetadataTable,
}
)
func init() {
ChatsTable.ForeignKeys[0].RefTable = UsersTable
MessagesTable.ForeignKeys[0].RefTable = ChatsTable
MessagesTable.ForeignKeys[1].RefTable = UsersTable
UserMetadataTable.ForeignKeys[0].RefTable = UsersTable
}