update
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -41,3 +41,6 @@ yarn-error.log*
|
||||
next-env.d.ts
|
||||
|
||||
/app/generated/prisma
|
||||
|
||||
# test database
|
||||
/database
|
||||
11
README.md
11
README.md
@@ -1,3 +1,12 @@
|
||||
## 更新数据库prisma
|
||||
|
||||
`npx prisma migrate dev --name init`
|
||||
`npx prisma migrate dev --name init`
|
||||
|
||||
### arch笔记本mysql测试服务器
|
||||
|
||||
``
|
||||
mysqld --basedir=/usr \
|
||||
--datadir=/home/aecw/re-AstarCupWeb/database \
|
||||
--socket=/home/aecw/re-AstarCupWeb/database/mysql.sock \
|
||||
--pid-file=/home/aecw/re-AstarCupWeb/database/mysql.pid &
|
||||
``
|
||||
|
||||
65
prisma/models/Beatmap.prisma
Normal file
65
prisma/models/Beatmap.prisma
Normal file
@@ -0,0 +1,65 @@
|
||||
model Beatmap {
|
||||
id Int @id @default(autoincrement())
|
||||
beatmap_id Int @unique
|
||||
beatmapset_id Int @unique
|
||||
title String
|
||||
title_unicode String
|
||||
artist String
|
||||
artist_unicode String
|
||||
creator String
|
||||
cover_url String
|
||||
version String
|
||||
ar Float
|
||||
od Float
|
||||
cs Float
|
||||
hp Float
|
||||
bpm Float
|
||||
length Int
|
||||
max_combo Int
|
||||
star_rating Float
|
||||
mod Json @default("{}")
|
||||
selectMod BeatmapSelectMod @default(NM)
|
||||
selectModSlot Int @default(1)
|
||||
selectByosuId Int
|
||||
user User @relation(fields: [selectByosuId], references: [osuid])
|
||||
selectNote String @default("")
|
||||
approved Boolean @default(false)
|
||||
needTest Boolean @default(false)
|
||||
isCustom Boolean @default(false)
|
||||
isOriginal Boolean @default(false)
|
||||
season Int @default(1)
|
||||
category BeatmapCategory @default(QUA)
|
||||
enabled Boolean @default(true)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
beatmapComment BeatmapComment?
|
||||
}
|
||||
|
||||
enum BeatmapCategory {
|
||||
QUA
|
||||
RO16
|
||||
QF
|
||||
SF
|
||||
F
|
||||
GF
|
||||
}
|
||||
|
||||
enum BeatmapSelectMod {
|
||||
NM
|
||||
HD
|
||||
HR
|
||||
DT
|
||||
LZ
|
||||
TB
|
||||
}
|
||||
|
||||
model BeatmapComment {
|
||||
id Int @id @default(autoincrement())
|
||||
beatmap_id Int @unique
|
||||
beatmap Beatmap @relation(fields: [beatmap_id], references: [beatmap_id])
|
||||
comment String @default("")
|
||||
osuid Int @unique
|
||||
user User @relation(fields: [osuid], references: [osuid])
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
}
|
||||
7
prisma/models/Message.prisma
Normal file
7
prisma/models/Message.prisma
Normal file
@@ -0,0 +1,7 @@
|
||||
model Message {
|
||||
id Int @id @default(autoincrement())
|
||||
content String
|
||||
osuid Int
|
||||
user User @relation(fields: [osuid], references: [osuid])
|
||||
receiverId Int
|
||||
}
|
||||
18
prisma/models/Multiplayer.prisma
Normal file
18
prisma/models/Multiplayer.prisma
Normal file
@@ -0,0 +1,18 @@
|
||||
enum MultiplayerRoomType {
|
||||
SOLO
|
||||
TEAM_VS
|
||||
}
|
||||
|
||||
model MultiplayerSoloRoom {
|
||||
room_id Int @id @default(autoincrement())
|
||||
type MultiplayerRoomType @default(SOLO)
|
||||
player_red_id Int @unique
|
||||
player_blue_id Int @unique
|
||||
score_red Int
|
||||
score_blue Int
|
||||
start_time DateTime
|
||||
end_time DateTime
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
teamId Int?
|
||||
}
|
||||
12
prisma/models/MultiplayerTeamVs.prisma
Normal file
12
prisma/models/MultiplayerTeamVs.prisma
Normal file
@@ -0,0 +1,12 @@
|
||||
model MultiplayerTeamvsRoom {
|
||||
room_id Int @id @default(autoincrement())
|
||||
type MultiplayerRoomType @default(SOLO)
|
||||
team_red_id Int @unique
|
||||
team_blue_id Int @unique
|
||||
start_time DateTime
|
||||
end_time DateTime
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
team Team? @relation(fields: [teamId], references: [id])
|
||||
teamId Int?
|
||||
}
|
||||
23
prisma/models/Team.prisma
Normal file
23
prisma/models/Team.prisma
Normal file
@@ -0,0 +1,23 @@
|
||||
model Team {
|
||||
id Int @id @default(autoincrement())
|
||||
name String
|
||||
banner_url String
|
||||
teamType TeamColor
|
||||
members User[]
|
||||
teamState TeamState @default(ACTIVE)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
multiplayerRooms MultiplayerTeamvsRoom[]
|
||||
}
|
||||
|
||||
enum TeamColor {
|
||||
blue_team
|
||||
red_team
|
||||
}
|
||||
|
||||
enum TeamState {
|
||||
ACTIVE
|
||||
UNAPPROVED
|
||||
APPROVED
|
||||
BANNED
|
||||
}
|
||||
49
prisma/models/User.prisma
Normal file
49
prisma/models/User.prisma
Normal file
@@ -0,0 +1,49 @@
|
||||
model User {
|
||||
id Int @id @default(autoincrement())
|
||||
userState UserState @default(ACTIVE)
|
||||
osuid Int @unique
|
||||
username String @unique
|
||||
pp Float @default(0)
|
||||
global_rank Int @default(0)
|
||||
country_rank Int @default(0)
|
||||
country String
|
||||
approved Int @default(0)
|
||||
seed Int @default(0)
|
||||
seasonal Int @default(1)
|
||||
teams Team[]
|
||||
userGroups UserGroup[]
|
||||
beatmapComments BeatmapComment[]
|
||||
messages Message[]
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
beatmaps Beatmap[]
|
||||
}
|
||||
|
||||
enum UserState {
|
||||
ACTIVE
|
||||
REGISTERED
|
||||
ABANDONED
|
||||
BANNED
|
||||
}
|
||||
|
||||
model UserGroup {
|
||||
id Int @id @default(autoincrement())
|
||||
group UserGroupType
|
||||
users User[]
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
}
|
||||
|
||||
enum UserGroupType {
|
||||
HOST
|
||||
ADMIN
|
||||
POOLER
|
||||
STREAMER
|
||||
TESTER
|
||||
GFX
|
||||
SHEETER
|
||||
PLAYER
|
||||
COMMENTATOR
|
||||
MAPPER
|
||||
REFEREE
|
||||
}
|
||||
21
prisma/models/UserGroup.prisma
Normal file
21
prisma/models/UserGroup.prisma
Normal file
@@ -0,0 +1,21 @@
|
||||
model UserGroup {
|
||||
id Int @id @default(autoincrement())
|
||||
group UserGroupType
|
||||
users User[]
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
}
|
||||
|
||||
enum UserGroupType {
|
||||
HOST
|
||||
ADMIN
|
||||
POOLER
|
||||
STREAMER
|
||||
TESTER
|
||||
GFX
|
||||
SHEETER
|
||||
PLAYER
|
||||
COMMENTATOR
|
||||
MAPPER
|
||||
REFEREE
|
||||
}
|
||||
@@ -10,143 +10,14 @@ generator client {
|
||||
}
|
||||
|
||||
datasource db {
|
||||
// provider = "postgres"
|
||||
provider = "mysql"
|
||||
}
|
||||
|
||||
model User {
|
||||
id Int @id @default(autoincrement())
|
||||
osuid Int @unique
|
||||
username String @unique
|
||||
pp Float @default(0)
|
||||
global_rank Int @default(0)
|
||||
country_rank Int @default(0)
|
||||
country String
|
||||
approved Int @default(0)
|
||||
teams Team[]
|
||||
seed Int @default(0)
|
||||
seasonal Int @default(1)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
userGroups UserGroup[]
|
||||
beatmapComments BeatmapComment[]
|
||||
beatmap Beatmap?
|
||||
}
|
||||
|
||||
model UserGroup {
|
||||
id Int @id @default(autoincrement())
|
||||
name String @unique
|
||||
users User[]
|
||||
group UserGroupType
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
}
|
||||
|
||||
enum UserGroupType {
|
||||
HOST
|
||||
ADMIN
|
||||
POOLER
|
||||
STREAMER
|
||||
TESTER
|
||||
GFX
|
||||
SHEETER
|
||||
PLAYER
|
||||
COMMENTATOR
|
||||
MAPPER
|
||||
REFEREE
|
||||
}
|
||||
|
||||
model Team {
|
||||
id Int @id @default(autoincrement())
|
||||
name String @unique
|
||||
banner_url String
|
||||
members User[]
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
}
|
||||
|
||||
model Setting {
|
||||
model TournamentConfig {
|
||||
id Int @id @default(autoincrement())
|
||||
tournament_name String @default("AstarCup")
|
||||
max_pp_for_registration Float @default(0)
|
||||
min_approved_playcount Float @default(0)
|
||||
current_seasonal Int @default(1)
|
||||
}
|
||||
|
||||
model Beatmap {
|
||||
id Int @id @default(autoincrement())
|
||||
beatmap_id Int @unique
|
||||
beatmapset_id Int @unique
|
||||
title String @unique
|
||||
title_unicode String @unique
|
||||
artist String @unique
|
||||
artist_unicode String @unique
|
||||
creator String @unique
|
||||
cover_url String @unique
|
||||
version String @unique
|
||||
ar Float @unique
|
||||
od Float @unique
|
||||
cs Float @unique
|
||||
hp Float @unique
|
||||
bpm Float @unique
|
||||
length Int @unique
|
||||
max_combo Int @unique
|
||||
star_rating Float @unique
|
||||
mod Json
|
||||
selectMod BeatmapSelectMod @default(NM)
|
||||
selectModSlot Int @default(1)
|
||||
selectByosuId Int @unique
|
||||
user User @relation(fields: [selectByosuId], references: [osuid])
|
||||
approved Boolean @default(false)
|
||||
needTest Boolean @default(false)
|
||||
isCustom Boolean @default(false)
|
||||
isOriginal Boolean @default(false)
|
||||
season Int @default(1)
|
||||
category BeatmapCategory
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
beatmapComment BeatmapComment?
|
||||
}
|
||||
|
||||
enum BeatmapCategory {
|
||||
qua
|
||||
ro16
|
||||
sf
|
||||
f
|
||||
gf
|
||||
// todo: fix this
|
||||
}
|
||||
|
||||
enum BeatmapSelectMod {
|
||||
NM
|
||||
HD
|
||||
HR
|
||||
DT
|
||||
LZ
|
||||
TB
|
||||
}
|
||||
|
||||
model BeatmapComment {
|
||||
id Int @id @default(autoincrement())
|
||||
beatmap_id Int @unique
|
||||
beatmap Beatmap @relation(fields: [beatmap_id], references: [beatmap_id])
|
||||
comment String @default("")
|
||||
osuid Int @unique
|
||||
user User @relation(fields: [osuid], references: [osuid])
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
}
|
||||
|
||||
model MultiplayerRoom {
|
||||
room_id Int @id @default(autoincrement())
|
||||
type MultiplayerRoomType @default(SOLO)
|
||||
start_time DateTime
|
||||
end_time DateTime
|
||||
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
}
|
||||
|
||||
enum MultiplayerRoomType {
|
||||
SOLO
|
||||
TEAM_VS
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user