File: /home/armgroup/libs/app/Http/Livewire/Admin/Wallet/Edit.php
<?php
namespace App\Http\Livewire\Admin\Wallet;
use App\Http\Livewire\ConvertEmptyStringsToNull;
use App\Http\Livewire\General;
use App\Models\Wallet;
use Livewire\Component;
class Edit extends Component
{
use ConvertEmptyStringsToNull, General;
public Wallet $wallet;
public $type;
public function mount()
{
$this->type = (int) ($this->wallet->amount > 0);
$this->wallet->amount = abs($this->wallet->amount);
}
public function render()
{
return view('livewire.admin.wallet.edit');
}
protected function rules()
{
return [
'wallet.description' => 'required|string|max:60000',
'type' => 'required|boolean',
'wallet.amount' => ['required', 'integer', 'min:1', 'max:100000000000', function ($attribute, $value, $fail) {
if (! $this->type && $this->wallet->user->credit - $this->wallet->getOriginal('amount') < $value) {
return $fail('اعتبار کاربر نمیتواند منفی باشد.');
}
}],
];
}
public function update()
{
$this->validate();
$this->wallet->amount = $this->type ? $this->wallet->amount : $this->wallet->amount * -1;
$this->wallet->update();
saveActivity("یک مورد از کیف پول {$this->wallet->user->name} را ویرایش کرد", $this->wallet);
$this->doneMessage();
return redirect()->route('admin.user.wallet.index', $this->wallet->user);
}
}