init: init refactor
This commit is contained in:
@@ -0,0 +1,230 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"sundynix-micro-go/common/model"
|
||||
"time"
|
||||
)
|
||||
|
||||
// ========== 用户扩展表(radio业务特有字段) ==========
|
||||
|
||||
// SundynixRadioUserProfile 电台服务用户扩展表
|
||||
type SundynixRadioUserProfile struct {
|
||||
model.BaseModel
|
||||
UserID string `gorm:"size:50;uniqueIndex;column:user_id" json:"userId"`
|
||||
NickName string `gorm:"size:100;column:nick_name" json:"nickName"`
|
||||
AvatarID string `gorm:"size:50;column:avatar_id" json:"avatarId"`
|
||||
IsVip int `gorm:"default:0;column:is_vip" json:"isVip"`
|
||||
VipExpireAt *time.Time `gorm:"column:vip_expire_at" json:"vipExpireAt"`
|
||||
VipLevel int `gorm:"default:0;column:vip_level" json:"vipLevel"`
|
||||
}
|
||||
|
||||
func (SundynixRadioUserProfile) TableName() string {
|
||||
return "sundynix_radio_user_profile"
|
||||
}
|
||||
|
||||
// ========== 分类 ==========
|
||||
|
||||
// SundynixRadioCategory 电台分类
|
||||
type SundynixRadioCategory struct {
|
||||
model.BaseModel
|
||||
Name string `gorm:"size:50;column:name" json:"name"`
|
||||
Icon string `gorm:"size:255;column:icon" json:"icon"`
|
||||
Sort int `gorm:"default:0;column:sort" json:"sort"`
|
||||
}
|
||||
|
||||
func (SundynixRadioCategory) TableName() string {
|
||||
return "sundynix_radio_category"
|
||||
}
|
||||
|
||||
// ========== 频道 ==========
|
||||
|
||||
// SundynixRadioChannel 电台频道
|
||||
type SundynixRadioChannel struct {
|
||||
model.BaseModel
|
||||
CategoryID string `gorm:"size:50;index;column:category_id" json:"categoryId"`
|
||||
Name string `gorm:"size:50;column:name" json:"name"`
|
||||
Description string `gorm:"size:500;column:description" json:"description"`
|
||||
IsFree int `gorm:"default:0;column:is_free" json:"isFree"`
|
||||
IsVipOnly int `gorm:"default:0;column:is_vip_only" json:"isVipOnly"`
|
||||
MonthlyPrice int `gorm:"default:0;column:monthly_price" json:"monthlyPrice"`
|
||||
QuarterlyPrice int `gorm:"default:0;column:quarterly_price" json:"quarterlyPrice"`
|
||||
AnnualPrice int `gorm:"default:0;column:annual_price" json:"annualPrice"`
|
||||
Cover string `gorm:"size:100;column:cover" json:"cover"`
|
||||
Tags string `gorm:"size:255;column:tags" json:"tags"`
|
||||
Sort int `gorm:"default:0;column:sort" json:"sort"`
|
||||
Status int `gorm:"default:1;column:status" json:"status"`
|
||||
}
|
||||
|
||||
func (SundynixRadioChannel) TableName() string {
|
||||
return "sundynix_radio_channel"
|
||||
}
|
||||
|
||||
// ========== 节目 ==========
|
||||
|
||||
// SundynixRadioProgram 电台节目
|
||||
type SundynixRadioProgram struct {
|
||||
model.BaseModel
|
||||
ChannelID string `gorm:"size:50;index;column:channel_id" json:"channelId"`
|
||||
Title string `gorm:"size:100;column:title" json:"title"`
|
||||
Description string `gorm:"size:500;column:description" json:"description"`
|
||||
Content string `gorm:"type:text;column:content" json:"content"`
|
||||
Cover string `gorm:"size:100;column:cover" json:"cover"`
|
||||
AudioID string `gorm:"size:50;column:audio_id" json:"audioId"`
|
||||
AudioStatus int `gorm:"default:0;column:audio_status" json:"audioStatus"`
|
||||
Duration int `gorm:"default:0;column:duration" json:"duration"`
|
||||
Tags string `gorm:"size:255;column:tags" json:"tags"`
|
||||
PlayCount int `gorm:"default:0;column:play_count" json:"playCount"`
|
||||
LikeCount int `gorm:"default:0;column:like_count" json:"likeCount"`
|
||||
Status int `gorm:"default:1;column:status" json:"status"`
|
||||
}
|
||||
|
||||
func (SundynixRadioProgram) TableName() string {
|
||||
return "sundynix_radio_program"
|
||||
}
|
||||
|
||||
// ========== 音色 ==========
|
||||
|
||||
// SundynixRadioVoice 音色管理
|
||||
type SundynixRadioVoice struct {
|
||||
model.BaseModel
|
||||
SpeakerID string `gorm:"size:50;uniqueIndex;column:speaker_id" json:"speakerId"`
|
||||
Name string `gorm:"size:50;column:name" json:"name"`
|
||||
Description string `gorm:"size:255;column:description" json:"description"`
|
||||
Gender string `gorm:"size:10;column:gender" json:"gender"`
|
||||
Icon string `gorm:"size:255;column:icon" json:"icon"`
|
||||
AudioID string `gorm:"size:50;column:audio_id" json:"audioId"`
|
||||
Sort int `gorm:"default:0;column:sort" json:"sort"`
|
||||
Status int `gorm:"default:1;column:status" json:"status"`
|
||||
IsDefault int `gorm:"default:0;column:is_default" json:"isDefault"`
|
||||
UseCount int `gorm:"default:0;column:use_count" json:"useCount"`
|
||||
}
|
||||
|
||||
func (SundynixRadioVoice) TableName() string {
|
||||
return "sundynix_radio_voice"
|
||||
}
|
||||
|
||||
// ========== 互动 ==========
|
||||
|
||||
// SundynixRadioLike 节目点赞
|
||||
type SundynixRadioLike struct {
|
||||
model.BaseModel
|
||||
ProgramID string `gorm:"size:50;index;column:program_id" json:"programId"`
|
||||
UserID string `gorm:"size:50;index;column:user_id" json:"userId"`
|
||||
}
|
||||
|
||||
func (SundynixRadioLike) TableName() string {
|
||||
return "sundynix_radio_like"
|
||||
}
|
||||
|
||||
// SundynixRadioFavorite 节目收藏
|
||||
type SundynixRadioFavorite struct {
|
||||
model.BaseModel
|
||||
ProgramID string `gorm:"size:50;index;column:program_id" json:"programId"`
|
||||
UserID string `gorm:"size:50;index;column:user_id" json:"userId"`
|
||||
}
|
||||
|
||||
func (SundynixRadioFavorite) TableName() string {
|
||||
return "sundynix_radio_favorite"
|
||||
}
|
||||
|
||||
// SundynixRadioComment 节目评论
|
||||
type SundynixRadioComment struct {
|
||||
model.BaseModel
|
||||
ProgramID string `gorm:"size:50;index;column:program_id" json:"programId"`
|
||||
UserID string `gorm:"size:50;column:user_id" json:"userId"`
|
||||
Content string `gorm:"size:500;column:content" json:"content"`
|
||||
ParentID string `gorm:"size:50;column:parent_id" json:"parentId"`
|
||||
}
|
||||
|
||||
func (SundynixRadioComment) TableName() string {
|
||||
return "sundynix_radio_comment"
|
||||
}
|
||||
|
||||
// SundynixRadioHistory 播放历史
|
||||
type SundynixRadioHistory struct {
|
||||
model.BaseModel
|
||||
ProgramID string `gorm:"size:50;index;column:program_id" json:"programId"`
|
||||
UserID string `gorm:"size:50;index;column:user_id" json:"userId"`
|
||||
Duration int `gorm:"default:0;column:duration" json:"duration"`
|
||||
}
|
||||
|
||||
func (SundynixRadioHistory) TableName() string {
|
||||
return "sundynix_radio_history"
|
||||
}
|
||||
|
||||
// ========== 订阅/支付 ==========
|
||||
|
||||
// SundynixRadioSubscription 用户订阅
|
||||
type SundynixRadioSubscription struct {
|
||||
model.BaseModel
|
||||
UserID string `gorm:"size:50;index;column:user_id" json:"userId"`
|
||||
ChannelID string `gorm:"size:50;index;column:channel_id" json:"channelId"`
|
||||
ExpiredAt time.Time `gorm:"index;column:expired_at" json:"expiredAt"`
|
||||
Status int `gorm:"default:1;column:status" json:"status"`
|
||||
}
|
||||
|
||||
func (SundynixRadioSubscription) TableName() string {
|
||||
return "sundynix_radio_subscription"
|
||||
}
|
||||
|
||||
// SundynixRadioSubscriptionOrder 订阅订单
|
||||
type SundynixRadioSubscriptionOrder struct {
|
||||
model.BaseModel
|
||||
UserID string `gorm:"size:50;index;column:user_id" json:"userId"`
|
||||
ChannelID string `gorm:"size:50;column:channel_id" json:"channelId"`
|
||||
OrderNo string `gorm:"size:50;uniqueIndex;column:order_no" json:"orderNo"`
|
||||
PlanType string `gorm:"size:20;column:plan_type" json:"planType"`
|
||||
Amount int `gorm:"column:amount" json:"amount"`
|
||||
Status int `gorm:"default:0;column:status" json:"status"`
|
||||
PayType string `gorm:"size:20;column:pay_type" json:"payType"`
|
||||
PrepayID string `gorm:"size:100;column:prepay_id" json:"prepayId"`
|
||||
}
|
||||
|
||||
func (SundynixRadioSubscriptionOrder) TableName() string {
|
||||
return "sundynix_radio_subscription_order"
|
||||
}
|
||||
|
||||
// SundynixRadioPayNotify 支付回调记录
|
||||
type SundynixRadioPayNotify struct {
|
||||
model.BaseModel
|
||||
OrderNo string `gorm:"size:50;column:order_no" json:"orderNo"`
|
||||
TransactionID string `gorm:"size:50;column:transaction_id" json:"transactionId"`
|
||||
TradeState string `gorm:"size:20;column:trade_state" json:"tradeState"`
|
||||
RawData string `gorm:"type:text;column:raw_data" json:"rawData"`
|
||||
}
|
||||
|
||||
func (SundynixRadioPayNotify) TableName() string {
|
||||
return "sundynix_radio_pay_notify"
|
||||
}
|
||||
|
||||
// ========== VIP配置 ==========
|
||||
|
||||
// SundynixRadioVipConfig VIP配置
|
||||
type SundynixRadioVipConfig struct {
|
||||
model.BaseModel
|
||||
Name string `gorm:"size:50;column:name" json:"name"`
|
||||
PlanType string `gorm:"size:20;column:plan_type" json:"planType"`
|
||||
Price int `gorm:"column:price" json:"price"`
|
||||
OriginalPrice int `gorm:"column:original_price" json:"originalPrice"`
|
||||
Duration int `gorm:"column:duration" json:"duration"`
|
||||
Desc string `gorm:"size:200;column:desc" json:"desc"`
|
||||
Sort int `gorm:"default:0;column:sort" json:"sort"`
|
||||
Status int `gorm:"default:1;column:status" json:"status"`
|
||||
}
|
||||
|
||||
func (SundynixRadioVipConfig) TableName() string {
|
||||
return "sundynix_radio_vip_config"
|
||||
}
|
||||
|
||||
// SundynixRadioListenLog 收听日志(数据分析用)
|
||||
type SundynixRadioListenLog struct {
|
||||
model.BaseModel
|
||||
UserID string `gorm:"size:50;index;column:user_id" json:"userId"`
|
||||
ProgramID string `gorm:"size:50;index;column:program_id" json:"programId"`
|
||||
ChannelID string `gorm:"size:50;index;column:channel_id" json:"channelId"`
|
||||
Duration int `gorm:"column:duration" json:"duration"`
|
||||
}
|
||||
|
||||
func (SundynixRadioListenLog) TableName() string {
|
||||
return "sundynix_radio_listen_log"
|
||||
}
|
||||
Reference in New Issue
Block a user