'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; } }