-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathschema.prisma
141 lines (119 loc) · 3.56 KB
/
schema.prisma
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}
model Article {
id String @id @unique
userId Int
title String @db.Text
content String @db.LongText
classify String? @db.Text
coverImg String? @db.Text
summary String @db.Text
source String? @db.Text // 00 博客创建 01 掘金同步
views Int @default(1)
likes Int @default(1)
favorites Int @default(1)
showNumber Int @default(1)
status String @db.Text
createdAt DateTime @default(now())
updatedAt DateTime? @updatedAt
deletedAt DateTime?
isDeleted Int? @default(0)
@@map("article")
}
model User {
id String @id @default(cuid())
name String?
username String? @unique
email String? @unique
password String? @db.Text
role String? @default("01")
emailVerified DateTime?
image String?
accounts Account[]
sessions Session[]
// Optional for WebAuthn support
Authenticator Authenticator[]
// 留言
messages Message[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@map("user")
}
model Account {
id String @id @default(cuid())
userId String @unique
type String
provider String
providerAccountId String
refresh_token String? @db.Text
access_token String? @db.Text
expires_at Int?
token_type String?
scope String?
id_token String? @db.Text
session_state String?
refresh_token_expires_in Int?
user User? @relation(fields: [userId], references: [id])
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@unique([provider, providerAccountId])
@@index([userId])
@@map("account")
}
model Session {
id String @id @default(cuid())
sessionToken String @unique
userId String
expires DateTime
user User @relation(fields: [userId], references: [id])
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([userId])
@@map("session")
}
model VerificationToken {
identifier String
token String
expires DateTime
@@unique([identifier, token])
@@map("verification_token")
}
// Optional for WebAuthn support
model Authenticator {
credentialID String @unique
userId String
providerAccountId String
credentialPublicKey String
counter Int
credentialDeviceType String
credentialBackedUp Boolean
transports String?
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
@@id([userId, credentialID])
@@map("authenticator")
}
// =============================== 留言板 ===============================
model Message {
id String @id @default(cuid())
content String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
deletedAt DateTime? // 删除时间
author User @relation(fields: [authorId], references: [id])
authorId String
@@map("message")
}
// =============================== 订阅 ===============================
model Subscriber {
id String @id @default(cuid())
email String @unique
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
deletedAt DateTime? // 删除时间
@@map("subscriber")
}