Files
fotospiel-app/database/seeders/PackageSeeder.php

119 lines
3.7 KiB
PHP

<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use App\Models\Package;
use App\Enums\PackageType;
use Illuminate\Support\Str;
class PackageSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
// Endcustomer Packages
Package::create([
'name' => 'Free / Test',
'slug' => Str::slug('Free / Test'),
'type' => PackageType::ENDCUSTOMER,
'price' => 0.00,
'max_photos' => 30,
'max_guests' => 50,
'gallery_days' => 7,
'max_tasks' => 5,
'watermark_allowed' => true,
'branding_allowed' => false,
'features' => json_encode([
'basic_uploads' => true,
'limited_sharing' => true,
'no_branding' => true,
]),
]);
Package::create([
'name' => 'Starter',
'slug' => Str::slug('Starter'),
'type' => PackageType::ENDCUSTOMER,
'price' => 29.00,
'max_photos' => 200,
'max_guests' => 100,
'gallery_days' => 30,
'max_tasks' => 10,
'watermark_allowed' => true,
'branding_allowed' => false,
'features' => json_encode([
'basic_uploads' => true,
'unlimited_sharing' => true,
'no_watermark' => true,
'custom_tasks' => true,
]),
]);
Package::create([
'name' => 'Pro',
'slug' => Str::slug('Pro'),
'type' => PackageType::ENDCUSTOMER,
'price' => 79.00,
'max_photos' => 1000,
'max_guests' => 500,
'gallery_days' => 90,
'max_tasks' => 20,
'watermark_allowed' => false,
'branding_allowed' => false,
'features' => json_encode([
'basic_uploads' => true,
'unlimited_sharing' => true,
'no_watermark' => true,
'custom_tasks' => true,
'advanced_analytics' => true,
'priority_support' => true,
]),
]);
// Reseller Packages
Package::create([
'name' => 'S (Small Reseller)',
'slug' => Str::slug('S (Small Reseller)'),
'type' => PackageType::RESELLER,
'price' => 199.00,
'max_photos' => 500, // per event limit
'max_guests' => null, // unlimited
'gallery_days' => null,
'max_tasks' => null, // unlimited
'watermark_allowed' => true,
'branding_allowed' => true,
'max_events_per_year' => 5,
'expires_after' => now()->addYear(),
'features' => json_encode([
'reseller_dashboard' => true,
'custom_branding' => true,
'priority_support' => true,
]),
]);
Package::create([
'name' => 'M (Medium Reseller)',
'slug' => Str::slug('M (Medium Reseller)'),
'type' => PackageType::RESELLER,
'price' => 399.00,
'max_photos' => 1000, // per event limit
'max_guests' => null, // unlimited
'gallery_days' => null,
'max_tasks' => null, // unlimited
'watermark_allowed' => true,
'branding_allowed' => true,
'max_events_per_year' => 15,
'expires_after' => now()->addYear(),
'features' => json_encode([
'reseller_dashboard' => true,
'custom_branding' => true,
'priority_support' => true,
'advanced_reporting' => true,
]),
]);
}
}