accumulator bonus

This commit is contained in:
Asher Samuel 2025-07-12 16:21:23 +03:00
parent 95926dbe6a
commit fff88bb4b9
2 changed files with 87 additions and 5 deletions

View File

@ -251,9 +251,10 @@ func (s *Service) PlaceBet(ctx context.Context, req domain.CreateBetReq, userID
}
fastCode := helpers.GenerateFastCode()
amount := req.Amount + (req.Amount * calculateAccumulator(len(outcomes)))
newBet := domain.CreateBet{
Amount: domain.ToCurrency(req.Amount),
Amount: domain.ToCurrency(amount),
TotalOdds: totalOdds,
Status: domain.OUTCOME_STATUS_PENDING,
FullName: req.FullName,
@ -1019,3 +1020,86 @@ func calculateCashbackAmount(amount, total_odds float32) float32 {
return amount * multiplier
}
func calculateAccumulator(outcomesCount int) float32 {
switch outcomesCount {
case 3:
return 0.05
case 4:
return 0.08
case 5:
return 0.09
case 6:
return 0.10
case 7:
return 0.15
case 8:
return 0.20
case 9:
return 0.25
case 10:
return 0.30
case 11:
return 0.35
case 12:
return 0.40
case 13:
return 0.45
case 14:
return 0.50
case 15:
return 0.55
case 16:
return 0.60
case 17:
return 0.65
case 18:
return 0.70
case 19:
return 0.75
case 20:
return 0.80
case 21:
return 0.85
case 22:
return 0.90
case 23:
return 0.95
case 24:
return 1.00
case 25:
return 1.10
case 26:
return 1.30
case 27:
return 1.50
case 28:
return 1.70
case 29:
return 2.00
case 30:
return 2.10
case 31:
return 2.30
case 32:
return 2.50
case 33:
return 2.70
case 34:
return 2.90
case 35:
return 3.10
case 36:
return 3.20
case 37:
return 3.40
case 38:
return 5.00
case 39:
return 6.00
case 40:
return 10.00
default:
return 0
}
}

View File

@ -25,10 +25,8 @@ import (
// @Failure 500 {object} response.APIResponse
// @Router /sport/bet [post]
func (h *Handler) CreateBet(c *fiber.Ctx) error {
// userID := c.Locals("user_id").(int64)
// role := c.Locals("role").(domain.Role)
userID := int64(5)
role := domain.RoleAdmin
userID := c.Locals("user_id").(int64)
role := c.Locals("role").(domain.Role)
var req domain.CreateBetReq
if err := c.BodyParser(&req); err != nil {