113 lines
3.5 KiB
PHP
113 lines
3.5 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use Illuminate\Database\Seeder;
|
|
use App\Models\Package;
|
|
use App\Enums\PackageType;
|
|
|
|
class PackageSeeder extends Seeder
|
|
{
|
|
/**
|
|
* Run the database seeds.
|
|
*/
|
|
public function run(): void
|
|
{
|
|
// Endcustomer Packages
|
|
Package::create([
|
|
'name' => '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',
|
|
'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',
|
|
'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)',
|
|
'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)',
|
|
'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,
|
|
]),
|
|
]);
|
|
|
|
}
|
|
} |