AgentProfitCommissionAssignment.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. namespace App\Models\Agent;
  3. use App\Models\BaseModel;
  4. class AgentProfitCommissionAssignment extends BaseModel
  5. {
  6. protected $table = 'agent_profit_commission_assignments';
  7. protected $hidden = [];
  8. protected $guarded = [];
  9. protected $casts = [
  10. 'agent_id' => 'integer',
  11. 'profit_commission_profile_id' => 'integer',
  12. 'live_rate' => 'decimal:4',
  13. 'slot_rate' => 'decimal:4',
  14. 'lottery_rate' => 'decimal:4',
  15. 'sport_rate' => 'decimal:4',
  16. 'esports_rate' => 'decimal:4',
  17. 'fishing_rate' => 'decimal:4',
  18. 'chess_rate' => 'decimal:4',
  19. 'effective_from' => 'date',
  20. 'created_by' => 'integer',
  21. ];
  22. public function agent()
  23. {
  24. return $this->belongsTo(Agent::class);
  25. }
  26. public function profile()
  27. {
  28. return $this->belongsTo(AgentProfitCommissionProfile::class, 'profit_commission_profile_id');
  29. }
  30. public function rateForGameType(int $gameType): string
  31. {
  32. $field = AgentProfitCommissionProfile::GAME_TYPE_RATE_FIELDS[$gameType] ?? null;
  33. return $field ? (string) $this->{$field} : '0.0000';
  34. }
  35. }