qq_bot/service/shared_models.go
2025-07-05 15:46:36 +08:00

133 lines
7.2 KiB
Go

package service
import "time"
// SSBind ScoreSaber和BeatLeader共享的绑定表GORM模型
type SSBind struct {
ID int64 `json:"id" gorm:"primaryKey;autoIncrement"`
QQID string `json:"qqid" gorm:"column:qqid;uniqueIndex"`
SSID string `json:"ssid" gorm:"column:ssid;uniqueIndex"`
}
// TableName 指定表名
func (SSBind) TableName() string {
return "ssBind"
}
// SSData ScoreSaber数据GORM模型
type SSData struct {
ID string `json:"id" gorm:"column:id;primaryKey"`
Name string `json:"name" gorm:"column:name"`
Country string `json:"country" gorm:"column:country"`
PP float64 `json:"pp" gorm:"column:pp"`
Rank int `json:"rank" gorm:"column:rank"`
CountryRank int `json:"country_rank" gorm:"column:country_rank"`
TotalScore int64 `json:"total_score" gorm:"column:total_score"`
TotalRankedScore int64 `json:"total_ranked_score" gorm:"column:total_ranked_score"`
AverageRankedAccuracy float64 `json:"average_ranked_accuracy" gorm:"column:average_ranked_accuracy"`
TotalPlayCount int `json:"total_play_count" gorm:"column:total_play_count"`
RankedPlayCount int `json:"ranked_play_count" gorm:"column:ranked_play_count"`
ReplaysWatched int `json:"replays_watched" gorm:"column:replays_watched"`
GeneratedTime time.Time `json:"generated_time" gorm:"column:generated_time"`
}
// TableName 指定表名
func (SSData) TableName() string {
return "ssData"
}
// BLData BeatLeader数据GORM模型
type BLData struct {
ID string `json:"id" gorm:"column:id;primaryKey"`
Name string `json:"name" gorm:"column:name"`
Country string `json:"country" gorm:"column:country"`
PP float64 `json:"pp" gorm:"column:pp"`
Rank int `json:"rank" gorm:"column:rank"`
CountryRank int `json:"country_rank" gorm:"column:country_rank"`
TotalScore int64 `json:"total_score" gorm:"column:total_score"`
TotalRankedScore int64 `json:"total_ranked_score" gorm:"column:total_ranked_score"`
AverageRankedAccuracy float64 `json:"average_ranked_accuracy" gorm:"column:average_ranked_accuracy"`
TotalPlayCount int `json:"total_play_count" gorm:"column:total_play_count"`
RankedPlayCount int `json:"ranked_play_count" gorm:"column:ranked_play_count"`
ReplaysWatched int `json:"replays_watched" gorm:"column:replays_watched"`
GeneratedTime time.Time `json:"generated_time" gorm:"column:generated_time"`
}
// TableName 指定表名
func (BLData) TableName() string {
return "blData"
}
// SSRecordData ScoreSaber记录数据GORM模型
type SSRecordData struct {
ID int64 `json:"id" gorm:"primaryKey;autoIncrement"`
ScoreID int `json:"score_id" gorm:"column:score_id"`
SSID string `json:"ss_id" gorm:"column:ss_id"`
Name string `json:"name" gorm:"column:name"`
Country string `json:"country" gorm:"column:country"`
SongName string `json:"song_name" gorm:"column:song_name"`
SongSubName string `json:"song_sub_name" gorm:"column:song_sub_name"`
SongAuthorName string `json:"song_author_name" gorm:"column:song_author_name"`
SongHash string `json:"song_hash" gorm:"column:song_hash"`
CoverImage string `json:"cover_image" gorm:"column:cover_image"`
DifficultyRaw string `json:"difficulty_raw" gorm:"column:difficulty_raw"`
PP float64 `json:"pp" gorm:"column:pp"`
Stars float64 `json:"stars" gorm:"column:stars"`
Weight float64 `json:"weight" gorm:"column:weight"`
Modifiers string `json:"modifiers" gorm:"column:modifiers"`
Multiplier float64 `json:"multiplier" gorm:"column:multiplier"`
Rank int `json:"rank" gorm:"column:rank"`
BadCuts int `json:"bad_cuts" gorm:"column:bad_cuts"`
Score int `json:"score" gorm:"column:score"`
MaxScore int `json:"max_score" gorm:"column:max_score"`
MissedNotes int `json:"missed_notes" gorm:"column:missed_notes"`
MaxCombo int `json:"max_combo" gorm:"column:max_combo"`
FullCombo bool `json:"full_combo" gorm:"column:full_combo"`
DeviceHmd string `json:"device_hmd" gorm:"column:device_hmd"`
DeviceControllerLeft string `json:"device_controller_left" gorm:"column:device_controller_left"`
DeviceControllerRight string `json:"device_controller_right" gorm:"column:device_controller_right"`
GeneratedTime time.Time `json:"generated_time" gorm:"column:generated_time"`
}
// TableName 指定表名
func (SSRecordData) TableName() string {
return "ssRecordData"
}
// BLRecordData BeatLeader记录数据GORM模型
type BLRecordData struct {
ID int64 `json:"id" gorm:"primaryKey;autoIncrement"`
ScoreID int `json:"score_id" gorm:"column:score_id"`
BLID string `json:"bl_id" gorm:"column:bl_id"`
Name string `json:"name" gorm:"column:name"`
Country string `json:"country" gorm:"column:country"`
SongName string `json:"song_name" gorm:"column:song_name"`
SongSubName string `json:"song_sub_name" gorm:"column:song_sub_name"`
SongAuthorName string `json:"song_author_name" gorm:"column:song_author_name"`
SongHash string `json:"song_hash" gorm:"column:song_hash"`
SongID string `json:"song_id" gorm:"column:song_id"`
CoverImage string `json:"cover_image" gorm:"column:cover_image"`
DifficultyRaw string `json:"difficulty_raw" gorm:"column:difficulty_raw"`
PP float64 `json:"pp" gorm:"column:pp"`
Stars float64 `json:"stars" gorm:"column:stars"`
Weight float64 `json:"weight" gorm:"column:weight"`
Modifiers string `json:"modifiers" gorm:"column:modifiers"`
Multiplier float64 `json:"multiplier" gorm:"column:multiplier"`
BadCuts int `json:"bad_cuts" gorm:"column:bad_cuts"`
Score int `json:"score" gorm:"column:score"`
Rank int `json:"rank" gorm:"column:rank"`
MaxScore int `json:"max_score" gorm:"column:max_score"`
MissedNotes int `json:"missed_notes" gorm:"column:missed_notes"`
MaxCombo int `json:"max_combo" gorm:"column:max_combo"`
FullCombo bool `json:"full_combo" gorm:"column:full_combo"`
DeviceHmd string `json:"device_hmd" gorm:"column:device_hmd"`
DeviceControllerLeft string `json:"device_controller_left" gorm:"column:device_controller_left"`
DeviceControllerRight string `json:"device_controller_right" gorm:"column:device_controller_right"`
GeneratedTime time.Time `json:"generated_time" gorm:"column:generated_time"`
}
// TableName 指定表名
func (BLRecordData) TableName() string {
return "blRecordData"
}