diff --git a/internal/model/music.go b/internal/model/music.go new file mode 100644 index 0000000..5b3731e --- /dev/null +++ b/internal/model/music.go @@ -0,0 +1,37 @@ +package model + +import "time" + +// MusicCategory 音乐分类(曲风) +type MusicCategory struct { + ID uint `gorm:"primaryKey" json:"id"` + Name string `gorm:"size:50;not null" json:"name"` + Icon string `gorm:"size:50" json:"icon"` + Sort int `gorm:"default:0" json:"sort"` + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` +} + +// Song 歌曲模型(3 套音乐网站共用同一套数据) +type Song struct { + ID uint `gorm:"primaryKey" json:"id"` + Title string `gorm:"size:200;not null" json:"title"` // 歌曲名 + Artist string `gorm:"size:100;not null" json:"artist"` // 歌手 + Album string `gorm:"size:200" json:"album"` // 专辑 + CategoryID uint `gorm:"index" json:"category_id"` + CategoryName string `gorm:"size:50" json:"category_name"` // 曲风 + Cover string `gorm:"size:255" json:"cover"` // 封面URL + Duration int `gorm:"default:0" json:"duration"` // 时长(秒) + PlayCount int `gorm:"default:0" json:"play_count"` // 播放量 + LikeCount int `gorm:"default:0" json:"like_count"` // 收藏量 + Lyrics string `gorm:"type:text" json:"lyrics"` // 歌词 + ReleaseDate string `gorm:"size:20" json:"release_date"` // 发行日期 + Language string `gorm:"size:50" json:"language"` // 语种 + Tags string `gorm:"type:text" json:"tags"` // JSON: 标签数组 + IsHot bool `gorm:"default:false" json:"is_hot"` // 热门 + IsNew bool `gorm:"default:false" json:"is_new"` // 新歌 + Sort int `gorm:"default:0" json:"sort"` + Status int `gorm:"default:1;not null" json:"status"` // 1=上架 + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` +}