Files
back-hokm/internal/ws/settler.go
T

22 lines
1.2 KiB
Go

package ws
// Settler تسویه‌ی اقتصادی میز را انجام می‌دهد (پیاده‌سازی در لایه economy).
// لایه ws از جزئیات سکه/جایزه بی‌خبر است و فقط tier را پاس می‌دهد.
type Settler interface {
ChargeEntry(userID int64, tier string) error // کسر ورودی هنگام ورود به صف
Refund(userID int64, tier string) // بازگرداندن ورودی در صورت لغو
AwardWinner(userID int64, tier string) // جایزه/XP/جام به برنده
RecordGame(room, playersJSON string, winnerTeam int, kot bool)
// TargetHands تعداد هَندِ لازم برای برد بازی در این tier (مثلاً مبتدی=۳).
TargetHands(tier string) int
}
// noopSettler پیش‌فرض (برای تست‌ها و حالت بدون اقتصاد).
type noopSettler struct{}
func (noopSettler) ChargeEntry(int64, string) error { return nil }
func (noopSettler) Refund(int64, string) {}
func (noopSettler) AwardWinner(int64, string) {}
func (noopSettler) RecordGame(string, string, int, bool) {}
func (noopSettler) TargetHands(string) int { return 7 }