Files
soul-yongping/soul-api/internal/model/balance.go
卡若 76965adb23 chore: 清理敏感与开发文档,仅同步代码
- 永久忽略并从仓库移除 开发文档/
- 移除并忽略 .env 与小程序私有配置
- 同步小程序/管理端/API与脚本改动

Made-with: Cursor
2026-03-17 17:50:12 +08:00

45 lines
2.4 KiB
Go

package model
import "time"
type UserBalance struct {
UserID string `gorm:"column:user_id;primaryKey;size:50" json:"userId"`
Balance float64 `gorm:"column:balance;type:decimal(10,2);default:0" json:"balance"`
TotalRecharged float64 `gorm:"column:total_recharged;type:decimal(10,2);default:0" json:"totalRecharged"`
TotalGifted float64 `gorm:"column:total_gifted;type:decimal(10,2);default:0" json:"totalGifted"`
TotalRefunded float64 `gorm:"column:total_refunded;type:decimal(10,2);default:0" json:"totalRefunded"`
CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"`
}
func (UserBalance) TableName() string { return "user_balances" }
type BalanceTransaction struct {
ID uint `gorm:"primaryKey;autoIncrement" json:"id"`
UserID string `gorm:"column:user_id;size:50;index" json:"userId"`
Type string `gorm:"column:type;size:20" json:"type"`
Amount float64 `gorm:"column:amount;type:decimal(10,2)" json:"amount"`
BalanceAfter float64 `gorm:"column:balance_after;type:decimal(10,2)" json:"balanceAfter"`
RelatedOrder *string `gorm:"column:related_order;size:50" json:"relatedOrder,omitempty"`
TargetUserID *string `gorm:"column:target_user_id;size:50" json:"targetUserId,omitempty"`
SectionID *string `gorm:"column:section_id;size:50" json:"sectionId,omitempty"`
Description string `gorm:"column:description;size:200" json:"description"`
CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"`
}
func (BalanceTransaction) TableName() string { return "balance_transactions" }
type GiftUnlock struct {
ID uint `gorm:"primaryKey;autoIncrement" json:"id"`
GiftCode string `gorm:"column:gift_code;uniqueIndex;size:32" json:"giftCode"`
GiverID string `gorm:"column:giver_id;size:50;index" json:"giverId"`
SectionID string `gorm:"column:section_id;size:50" json:"sectionId"`
ReceiverID *string `gorm:"column:receiver_id;size:50" json:"receiverId,omitempty"`
Amount float64 `gorm:"column:amount;type:decimal(10,2)" json:"amount"`
Status string `gorm:"column:status;size:20;default:pending" json:"status"`
CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"`
RedeemedAt *time.Time `gorm:"column:redeemed_at" json:"redeemedAt,omitempty"`
}
func (GiftUnlock) TableName() string { return "gift_unlocks" }