| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- <?php
- namespace App\Models\Agent;
- use App\Models\BaseModel;
- class AgentProfitCommissionProfile extends BaseModel
- {
- public const RATE_FIELDS = [
- 'live_rate', 'slot_rate', 'lottery_rate', 'sport_rate',
- 'esports_rate', 'fishing_rate', 'chess_rate',
- ];
- public const GAME_TYPE_RATE_FIELDS = [
- 1 => 'live_rate',
- 2 => 'slot_rate',
- 3 => 'lottery_rate',
- 4 => 'sport_rate',
- 5 => 'esports_rate',
- 6 => 'fishing_rate',
- 7 => 'chess_rate',
- ];
- protected $table = 'agent_profit_commission_profiles';
- protected $hidden = [];
- protected $fillable = [
- 'name', 'live_rate', 'slot_rate', 'lottery_rate', 'sport_rate',
- 'esports_rate', 'fishing_rate', 'chess_rate', 'is_default',
- ];
- protected $casts = [
- 'live_rate' => 'decimal:4', 'slot_rate' => 'decimal:4', 'lottery_rate' => 'decimal:4',
- 'sport_rate' => 'decimal:4', 'esports_rate' => 'decimal:4', 'fishing_rate' => 'decimal:4',
- 'chess_rate' => 'decimal:4', 'is_default' => 'integer',
- ];
- public function rateForGameType(int $gameType): string
- {
- $field = self::GAME_TYPE_RATE_FIELDS[$gameType] ?? null;
- return $field ? (string) $this->{$field} : '0.0000';
- }
- public function rateSnapshot(): array
- {
- $snapshot = [];
- foreach (self::RATE_FIELDS as $field) {
- $snapshot[$field] = (string) $this->{$field};
- }
- return $snapshot;
- }
- }
|