Files
radicall/database/factories/WalletTransactionFactory.php

40 lines
1.1 KiB
PHP

<?php
namespace Database\Factories;
use App\Enums\WalletTransactionReasonEnum;
use App\Enums\WalletTransactionTypeEnum;
use App\Models\Wallet;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\WalletTransaction>
*/
class WalletTransactionFactory extends Factory
{
public function definition(): array
{
$amount = fake()->numberBetween(10000, 1000000);
return [
'type' => WalletTransactionTypeEnum::Deposit,
'reason' => WalletTransactionReasonEnum::TopUp,
'amount' => $amount,
'balance_after' => $amount,
'description' => null,
'wallet_id' => Wallet::factory(),
'invoice_id' => null,
'payment_id' => null,
'withdraw_request_id' => null,
];
}
public function withdrawal(WalletTransactionReasonEnum $reason = WalletTransactionReasonEnum::InvoicePayment): static
{
return $this->state(fn (array $attributes) => [
'type' => WalletTransactionTypeEnum::Withdrawal,
'reason' => $reason,
]);
}
}