*/ class ContributionFactory extends Factory { protected $model = Contribution::class; /** * Define the model's default state. * * @return array */ public function definition(): array { $paymentMethod = fake()->randomElement(['paypal', 'mobile_money', 'national_office']); $currency = $paymentMethod === 'paypal' ? 'EUR' : 'XOF'; return [ 'event_id' => Event::factory(), 'scope' => ContributionScope::INDIVIDUAL, 'user_id' => User::factory(), 'country_code' => null, 'payment_method_selected' => $paymentMethod, 'currency_selected' => $currency, 'status' => ContributionStatus::PLEDGED, 'amount_xof' => $currency === 'XOF' ? fake()->numberBetween(10000, 1000000) : null, 'amount_eur' => $currency === 'EUR' ? fake()->numberBetween(15, 1500) : null, 'note' => fake()->optional()->sentence(), 'confirmed_at' => null, 'confirmed_by_user_id' => null, ]; } }