fix: add frame

This commit is contained in:
2026-07-08 13:47:50 +03:30
parent b5420bac21
commit da6df0328f
5 changed files with 106 additions and 7 deletions
+31 -2
View File
@@ -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