AgentProfitCommissionProfile.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. namespace App\Models\Agent;
  3. use App\Models\BaseModel;
  4. class AgentProfitCommissionProfile extends BaseModel
  5. {
  6. public const RATE_FIELDS = [
  7. 'live_rate', 'slot_rate', 'lottery_rate', 'sport_rate',
  8. 'esports_rate', 'fishing_rate', 'chess_rate',
  9. ];
  10. public const GAME_TYPE_RATE_FIELDS = [
  11. 1 => 'live_rate',
  12. 2 => 'slot_rate',
  13. 3 => 'lottery_rate',
  14. 4 => 'sport_rate',
  15. 5 => 'esports_rate',
  16. 6 => 'fishing_rate',
  17. 7 => 'chess_rate',
  18. ];
  19. protected $table = 'agent_profit_commission_profiles';
  20. protected $hidden = [];
  21. protected $fillable = [
  22. 'name', 'live_rate', 'slot_rate', 'lottery_rate', 'sport_rate',
  23. 'esports_rate', 'fishing_rate', 'chess_rate', 'is_default',
  24. ];
  25. protected $casts = [
  26. 'live_rate' => 'decimal:4', 'slot_rate' => 'decimal:4', 'lottery_rate' => 'decimal:4',
  27. 'sport_rate' => 'decimal:4', 'esports_rate' => 'decimal:4', 'fishing_rate' => 'decimal:4',
  28. 'chess_rate' => 'decimal:4', 'is_default' => 'integer',
  29. ];
  30. public function rateForGameType(int $gameType): string
  31. {
  32. $field = self::GAME_TYPE_RATE_FIELDS[$gameType] ?? null;
  33. return $field ? (string) $this->{$field} : '0.0000';
  34. }
  35. public function rateSnapshot(): array
  36. {
  37. $snapshot = [];
  38. foreach (self::RATE_FIELDS as $field) {
  39. $snapshot[$field] = (string) $this->{$field};
  40. }
  41. return $snapshot;
  42. }
  43. }