22 lines
1.2 KiB
Go
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 }
|