首次提交
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
package models
|
||||
|
||||
import "time"
|
||||
|
||||
// Achievement 成就徽章
|
||||
type Achievement struct {
|
||||
ID string `gorm:"primaryKey;type:varchar(50)" json:"id"`
|
||||
Name string `gorm:"type:varchar(100);not null" json:"name"`
|
||||
Description *string `gorm:"type:varchar(200)" json:"description,omitempty"`
|
||||
Icon *string `gorm:"type:varchar(50)" json:"icon,omitempty"`
|
||||
Rarity string `gorm:"default:bronze;type:varchar(20)" json:"rarity"`
|
||||
Condition *string `gorm:"type:varchar(200)" json:"condition,omitempty"`
|
||||
|
||||
Users []UserAchievement `gorm:"foreignKey:AchievementID" json:"-"`
|
||||
}
|
||||
|
||||
func (Achievement) TableName() string { return "achievements" }
|
||||
|
||||
// UserAchievement 用户成就关联
|
||||
type UserAchievement struct {
|
||||
UserID string `gorm:"column:user_id;type:varchar(32);not null;primaryKey"`
|
||||
AchievementID string `gorm:"column:achievement_id;type:varchar(50);not null;primaryKey"`
|
||||
UnlockedAt time.Time `gorm:"column:unlocked_at"`
|
||||
|
||||
User User `gorm:"foreignKey:UserID" json:"-"`
|
||||
Achievement Achievement `gorm:"foreignKey:AchievementID" json:"-"`
|
||||
}
|
||||
|
||||
func (UserAchievement) TableName() string { return "user_achievements" }
|
||||
Reference in New Issue
Block a user