Certified/database/factories/SubscriptionInvoiceFactory.php
2026-08-09 16:33:53 +02:00

39 lines
1 KiB
PHP

<?php
namespace Database\Factories;
use App\Enums\SubscriptionPlan;
use App\Models\Subscription;
use App\Models\SubscriptionInvoice;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends Factory<SubscriptionInvoice>
*/
class SubscriptionInvoiceFactory extends Factory
{
/**
* @return array<string, mixed>
*/
public function definition(): array
{
return [
'subscription_id' => Subscription::factory(),
'moneybird_invoice_id' => (string) fake()->unique()->randomNumber(9),
'plan' => SubscriptionPlan::Starter,
'amount_cents' => SubscriptionPlan::Starter->priceInCents(),
'state' => 'open',
'invoice_date' => today(),
'due_date' => today()->addDays(14),
'payment_url' => 'https://moneybird.dev/pay/'.fake()->uuid(),
];
}
public function paid(): static
{
return $this->state(fn (array $attributes) => [
'state' => 'paid',
'paid_at' => now(),
]);
}
}