<?php
namespace Database\Factories;
use App\Modules\Payout\Models\VendorPayout;
use App\Modules\Vendor\Models\Vendor;
use Illuminate\Database\Eloquent\Factories\Factory;
class VendorPayoutFactory extends Factory
{
protected $model = VendorPayout::class;
public function definition(): array
{
return [
'vendor_id' => Vendor::factory(),
'amount' => fake()->randomFloat(2, 500, 10000),
'currency' => 'NPR',
'method' => fake()->randomElement(['esewa', 'khalti', 'bank_transfer']),
'account_details' => ['mobile' => '9800000000'],
'reference' => null,
'status' => 'pending',
'failure_reason' => null,
'processed_at' => null,
];
}
public function pending(): static
{
return $this->state(['status' => 'pending']);
}
public function completed(): static
{
return $this->state([
'status' => 'completed',
'reference' => 'REF-' . strtoupper(fake()->bothify('????####')),
'processed_at' => now(),
]);
}
public function failed(string $reason = 'Gateway error'): static
{
return $this->state([
'status' => 'failed',
'failure_reason' => $reason,
]);
}
}