fix: add frame
This commit is contained in:
@@ -8,13 +8,42 @@ type Frame struct {
|
||||
Title string `json:"title"`
|
||||
PriceCoins int64 `json:"price_coins"`
|
||||
VIP bool `json:"vip"`
|
||||
C1 string `json:"c1"` // رنگِ گرادیان (hex بدونِ #)؛ خالی ⇒ قابِ رتبه
|
||||
C2 string `json:"c2"`
|
||||
Owned bool `json:"owned"`
|
||||
}
|
||||
|
||||
// RankTierStyle رنگ و برچسبِ یک رتبه (برنز..پادشاه). سمتِ کلاینت hardcode نیست.
|
||||
type RankTierStyle struct {
|
||||
ID string `json:"id"`
|
||||
Label string `json:"label"`
|
||||
C1 string `json:"c1"`
|
||||
C2 string `json:"c2"`
|
||||
}
|
||||
|
||||
// RankTiers رنگ/برچسبِ همهی رتبهها را برمیگرداند (برای کشِ کلاینت).
|
||||
func (s *Service) RankTiers(ctx context.Context) ([]RankTierStyle, error) {
|
||||
rows, err := s.db.QueryContext(ctx,
|
||||
`SELECT id, label, c1, c2 FROM rank_tiers ORDER BY sort`)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
var tiers []RankTierStyle
|
||||
for rows.Next() {
|
||||
var t RankTierStyle
|
||||
if err := rows.Scan(&t.ID, &t.Label, &t.C1, &t.C2); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
tiers = append(tiers, t)
|
||||
}
|
||||
return tiers, rows.Err()
|
||||
}
|
||||
|
||||
// Frames قابهای فعال را با وضعیتِ مالکیتِ کاربر برمیگرداند.
|
||||
func (s *Service) Frames(ctx context.Context, userID int64) ([]Frame, error) {
|
||||
rows, err := s.db.QueryContext(ctx,
|
||||
`SELECT id, title, price_coins, vip FROM avatar_frames WHERE enabled = 1 ORDER BY sort`)
|
||||
`SELECT id, title, price_coins, vip, c1, c2 FROM avatar_frames WHERE enabled = 1 ORDER BY sort`)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -24,7 +53,7 @@ func (s *Service) Frames(ctx context.Context, userID int64) ([]Frame, error) {
|
||||
for rows.Next() {
|
||||
var f Frame
|
||||
var vip int
|
||||
if err := rows.Scan(&f.ID, &f.Title, &f.PriceCoins, &vip); err != nil {
|
||||
if err := rows.Scan(&f.ID, &f.Title, &f.PriceCoins, &vip, &f.C1, &f.C2); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
f.VIP = vip == 1
|
||||
|
||||
Reference in New Issue
Block a user