update
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -41,3 +41,6 @@ yarn-error.log*
|
|||||||
next-env.d.ts
|
next-env.d.ts
|
||||||
|
|
||||||
/app/generated/prisma
|
/app/generated/prisma
|
||||||
|
|
||||||
|
# test database
|
||||||
|
/database
|
||||||
11
README.md
11
README.md
@@ -1,3 +1,12 @@
|
|||||||
## 更新数据库prisma
|
## 更新数据库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 {
|
datasource db {
|
||||||
|
// provider = "postgres"
|
||||||
provider = "mysql"
|
provider = "mysql"
|
||||||
}
|
}
|
||||||
|
|
||||||
model User {
|
model TournamentConfig {
|
||||||
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 {
|
|
||||||
id Int @id @default(autoincrement())
|
id Int @id @default(autoincrement())
|
||||||
tournament_name String @default("AstarCup")
|
tournament_name String @default("AstarCup")
|
||||||
max_pp_for_registration Float @default(0)
|
max_pp_for_registration Float @default(0)
|
||||||
min_approved_playcount Float @default(0)
|
min_approved_playcount Float @default(0)
|
||||||
current_seasonal Int @default(1)
|
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