fixed event join token handling in the event admin. created new seeders with new tenants and package purchases. added new playwright test scenarios.

This commit is contained in:
Codex Agent
2025-10-26 14:44:47 +01:00
parent 6290a3a448
commit ecf5a23b28
59 changed files with 3900 additions and 691 deletions

View File

@@ -2,6 +2,7 @@
namespace Database\Seeders;
use App\Models\EventPurchase;
use App\Models\Package;
use App\Models\PackagePurchase;
use App\Models\Tenant;
@@ -18,10 +19,19 @@ class DemoTenantSeeder extends Seeder
$email = 'tenant-demo@fotospiel.app';
$password = config('seeding.demo_tenant_password', 'Demo1234!');
$package = Package::query()
->where('type', 'reseller')
->orderBy('price')
->first()
?? Package::query()->orderBy('price')->first();
->where('slug', 'standard')
->first();
if (! $package) {
$package = Package::query()
->where('type', 'endcustomer')
->orderBy('price')
->first();
}
if (! $package) {
$package = Package::query()->orderBy('price')->first();
}
if (! $package) {
$this->command?->warn('Skipped DemoTenantSeeder: no packages available.');
@@ -75,13 +85,15 @@ class DemoTenantSeeder extends Seeder
);
if ($tenant->wasRecentlyCreated && ! $tenant->slug) {
$tenant->forceFill(['slug' => Str::slug('demo-tenant-'. $tenant->getKey())])->save();
$tenant->forceFill(['slug' => Str::slug('demo-tenant-'.$tenant->getKey())])->save();
}
if ($user->tenant_id !== $tenant->id) {
$user->forceFill(['tenant_id' => $tenant->id])->save();
}
$purchasedAt = now()->subDays(7);
TenantPackage::query()->updateOrCreate(
[
'tenant_id' => $tenant->id,
@@ -90,8 +102,8 @@ class DemoTenantSeeder extends Seeder
[
'price' => $package->price,
'active' => true,
'purchased_at' => now()->subDays(7),
'expires_at' => now()->addYear(),
'purchased_at' => $purchasedAt,
'expires_at' => now()->addMonths(6),
'used_events' => 0,
]
);
@@ -103,13 +115,30 @@ class DemoTenantSeeder extends Seeder
'provider_id' => 'demo-seed',
],
[
'event_id' => null,
'price' => $package->price,
'type' => $package->type === 'reseller' ? 'reseller_subscription' : 'endcustomer_event',
'purchased_at' => now()->subDays(7),
'purchased_at' => $purchasedAt,
'metadata' => [
'seeded' => true,
'note' => 'Demo tenant seed purchase',
],
'ip_address' => null,
'user_agent' => null,
]
);
EventPurchase::query()->updateOrCreate(
[
'tenant_id' => $tenant->id,
'provider' => 'demo-seed',
],
[
'events_purchased' => 1,
'amount' => $package->price,
'currency' => 'EUR',
'status' => 'completed',
'purchased_at' => $purchasedAt,
]
);