package economy // مقادیر اقتصادی پایه (قابل تنظیم بر اساس بیزینس‌پلن). const ( DailyReward = 200 // سکه روزانه AdReward = 50 // سکه به ازای هر تبلیغ rewardedِ کامل AdDailyCap = 50 // سقف تعداد تبلیغ پاداش‌دار در روز ) // CoinPackage بسته‌ی سکه با پول واقعی (IAP) — ممکن است VIP هم بدهد. type CoinPackage struct { ID string `json:"id"` Title string `json:"title"` Coins int64 `json:"coins"` VIPDays int `json:"vip_days"` PriceToman int `json:"price_toman"` BonusPct int `json:"bonus_pct"` } // TicketPackage بسته‌ی بلیط با پول واقعی (IAP). type TicketPackage struct { ID string `json:"id"` Title string `json:"title"` Tickets int64 `json:"tickets"` PriceToman int `json:"price_toman"` } // CardSkin اسکین کارت که با سکه باز می‌شود (قیمت ۰ یعنی پیش‌فرض رایگان). type CardSkin struct { ID string `json:"id"` Title string `json:"title"` PriceCoins int64 `json:"price_coins"` } // Booster بوستر XP با پول واقعی (IAP). type Booster struct { ID string `json:"id"` Title string `json:"title"` Multiplier int `json:"multiplier"` Hours int `json:"hours"` PriceToman int `json:"price_toman"` } // TableTier نوع میز: تعداد دست، ورودی، جایزه، XP و جام. type TableTier struct { ID string `json:"id"` Title string `json:"title"` Hands int `json:"hands"` Entry int64 `json:"entry"` Prize int64 `json:"prize"` XP int `json:"xp"` Trophy int `json:"trophy"` } // Catalog کل کاتالوگ فروشگاه (برای GET /api/shop). از دیتابیس بارگذاری می‌شود. type Catalog struct { CoinPackages []CoinPackage `json:"coin_packages"` TicketPackages []TicketPackage `json:"ticket_packages"` CardSkins []CardSkin `json:"card_skins"` Boosters []Booster `json:"boosters"` TableTiers []TableTier `json:"table_tiers"` } // LevelInfo سطح فعلی، XP درون‌سطح و XP لازم برای سطح بعد را از XP کل محاسبه می‌کند. // نیاز هر سطح: ۵۰ × شماره سطح (مثلاً سطح ۸ ⇒ ۴۰۰). func LevelInfo(totalXP int64) (level int, into int64, need int64) { level = 1 remaining := totalXP for { need = int64(50 * level) if remaining < need { break } remaining -= need level++ } into = remaining return level, into, need }