Update partner packages, copy, and demo switcher
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('packages', function (Blueprint $table) {
|
||||
if (! Schema::hasColumn('packages', 'included_package_slug')) {
|
||||
$table->string('included_package_slug')->nullable()->after('type');
|
||||
$table->index(['type', 'included_package_slug']);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('packages', function (Blueprint $table) {
|
||||
if (Schema::hasColumn('packages', 'included_package_slug')) {
|
||||
$table->dropIndex(['type', 'included_package_slug']);
|
||||
$table->dropColumn('included_package_slug');
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -116,111 +116,149 @@ TEXT,
|
||||
],
|
||||
[
|
||||
'slug' => 's-small-reseller',
|
||||
'name' => 'Reseller S',
|
||||
'name' => 'Partner Start',
|
||||
'name_translations' => [
|
||||
'de' => 'Reseller S',
|
||||
'en' => 'Reseller S',
|
||||
'de' => 'Partner Start',
|
||||
'en' => 'Partner Start',
|
||||
],
|
||||
'type' => PackageType::RESELLER,
|
||||
'included_package_slug' => 'starter',
|
||||
'price' => 149.00,
|
||||
'max_photos' => 1000,
|
||||
'max_photos' => null,
|
||||
'max_guests' => null,
|
||||
'gallery_days' => 30,
|
||||
'gallery_days' => null,
|
||||
'max_tasks' => null,
|
||||
'watermark_allowed' => true,
|
||||
'branding_allowed' => true,
|
||||
'max_events_per_year' => 5,
|
||||
'expires_after' => now()->copy()->addYear(),
|
||||
'expires_after' => null,
|
||||
'features' => ['reseller_dashboard', 'custom_branding', 'priority_support'],
|
||||
'paddle_product_id' => 'pro_01k8jcxvax48mhmwsfydw8ha9y',
|
||||
'paddle_price_id' => 'pri_01k8jcxvhe0bfasg9gg1rw70sy',
|
||||
'description' => <<<'TEXT'
|
||||
Das perfekte Paket für Fotografen oder Planer, die erste Erfahrungen mit Fotospiel sammeln wollen. Enthalten sind {{max_events_per_year}} Events pro Jahr mit Standard-Leistung – Branding-Optionen inklusive.
|
||||
Event-Kontingent für Partner / Agenturen: {{max_events_per_year}} Events auf Starter‑Niveau. Empfohlen innerhalb von 24 Monaten zu nutzen.
|
||||
TEXT,
|
||||
'description_translations' => [
|
||||
'de' => 'Das perfekte Paket für Fotografen oder Planer, die erste Erfahrungen mit Fotospiel sammeln wollen. Enthalten sind {{max_events_per_year}} Events pro Jahr mit Standard-Leistung – Branding-Optionen inklusive.',
|
||||
'en' => 'Perfect for photographers or planners getting started with Fotospiel. Includes {{max_events_per_year}} events per year with the standard feature set—branding options included.',
|
||||
'de' => 'Event-Kontingent für Partner / Agenturen: {{max_events_per_year}} Events auf Starter‑Niveau. Empfohlen innerhalb von 24 Monaten zu nutzen.',
|
||||
'en' => 'Event-Kontingent for Partner / Agencies: {{max_events_per_year}} events at Starter level. Recommended to use within 24 months.',
|
||||
],
|
||||
'description_table' => [
|
||||
['title' => 'Events/Jahr', 'value' => '{{max_events_per_year}} Events'],
|
||||
['title' => 'Galerie', 'value' => '{{gallery_duration}}'],
|
||||
['title' => 'Branding', 'value' => 'Logo & Farben pro Event'],
|
||||
['title' => 'Events', 'value' => '{{max_events_per_year}} Events'],
|
||||
['title' => 'Inklusive Event-Level', 'value' => 'Starter'],
|
||||
['title' => 'Empfehlung', 'value' => 'Empfohlen innerhalb von 24 Monaten zu nutzen.'],
|
||||
],
|
||||
],
|
||||
[
|
||||
'slug' => 'm-medium-reseller',
|
||||
'name' => 'Reseller M',
|
||||
'name' => 'Partner Standard',
|
||||
'name_translations' => [
|
||||
'de' => 'Reseller M',
|
||||
'en' => 'Reseller M',
|
||||
'de' => 'Partner Standard',
|
||||
'en' => 'Partner Standard',
|
||||
],
|
||||
'type' => PackageType::RESELLER,
|
||||
'included_package_slug' => 'standard',
|
||||
'price' => 349.00,
|
||||
'max_photos' => 1500,
|
||||
'max_photos' => null,
|
||||
'max_guests' => null,
|
||||
'gallery_days' => 60,
|
||||
'gallery_days' => null,
|
||||
'max_tasks' => null,
|
||||
'watermark_allowed' => true,
|
||||
'branding_allowed' => true,
|
||||
'max_events_per_year' => 15,
|
||||
'expires_after' => now()->copy()->addYear(),
|
||||
'expires_after' => null,
|
||||
'features' => ['reseller_dashboard', 'custom_branding', 'priority_support', 'advanced_reporting'],
|
||||
'paddle_product_id' => 'pro_01k8jcxtrxw7jsew52jnax901q',
|
||||
'paddle_price_id' => 'pri_01k8jcxv06nsgy8ym8mnfrfm5v',
|
||||
'description' => <<<'TEXT'
|
||||
Wenn du regelmäßig Hochzeiten, Firmenfeste oder private Events betreust, ist dieses Paket ideal. {{max_events_per_year}} Events pro Jahr mit Branding-Optionen, verlängerter Galerie-Laufzeit und Reporting inklusive.
|
||||
Event-Kontingent für Partner / Agenturen: {{max_events_per_year}} Events auf Standard‑Niveau. Empfohlen innerhalb von 24 Monaten zu nutzen.
|
||||
TEXT,
|
||||
'description_translations' => [
|
||||
'de' => 'Wenn du regelmäßig Hochzeiten, Firmenfeste oder private Events betreust, ist dieses Paket ideal. {{max_events_per_year}} Events pro Jahr mit Branding-Optionen, verlängerter Galerie-Laufzeit und Reporting inklusive.',
|
||||
'en' => 'Designed for professionals who regularly support weddings, corporate events or private parties. {{max_events_per_year}} events per year with branding options, extended gallery runtime and reporting included.',
|
||||
'de' => 'Event-Kontingent für Partner / Agenturen: {{max_events_per_year}} Events auf Standard‑Niveau. Empfohlen innerhalb von 24 Monaten zu nutzen.',
|
||||
'en' => 'Event-Kontingent for Partner / Agencies: {{max_events_per_year}} events at Standard level. Recommended to use within 24 months.',
|
||||
],
|
||||
'description_table' => [
|
||||
['title' => 'Events/Jahr', 'value' => '{{max_events_per_year}} Events'],
|
||||
['title' => 'Galerie', 'value' => '{{gallery_duration}}'],
|
||||
['title' => 'Reporting', 'value' => 'Erweiterte Auswertungen'],
|
||||
['title' => 'Events', 'value' => '{{max_events_per_year}} Events'],
|
||||
['title' => 'Inklusive Event-Level', 'value' => 'Standard'],
|
||||
['title' => 'Empfehlung', 'value' => 'Empfohlen innerhalb von 24 Monaten zu nutzen.'],
|
||||
],
|
||||
],
|
||||
[
|
||||
'slug' => 'l-large-reseller',
|
||||
'name' => 'Reseller L',
|
||||
'name' => 'Partner Premium',
|
||||
'name_translations' => [
|
||||
'de' => 'Reseller L',
|
||||
'en' => 'Reseller L',
|
||||
'de' => 'Partner Premium',
|
||||
'en' => 'Partner Premium',
|
||||
],
|
||||
'type' => PackageType::RESELLER,
|
||||
'price' => 699.00,
|
||||
'max_photos' => 3000,
|
||||
'included_package_slug' => 'pro',
|
||||
'price' => 1999.00,
|
||||
'max_photos' => null,
|
||||
'max_guests' => null,
|
||||
'gallery_days' => 90,
|
||||
'gallery_days' => null,
|
||||
'max_tasks' => null,
|
||||
'watermark_allowed' => false,
|
||||
'branding_allowed' => true,
|
||||
'max_events_per_year' => 40,
|
||||
'expires_after' => now()->copy()->addYear(),
|
||||
'max_events_per_year' => 35,
|
||||
'expires_after' => null,
|
||||
'features' => ['reseller_dashboard', 'custom_branding', 'priority_support', 'advanced_reporting', 'live_slideshow'],
|
||||
'paddle_product_id' => 'pro_01k8jcxt7gc6g6ddavmq65txzz',
|
||||
'paddle_price_id' => 'pri_01k8jcxtfa07gvq43kpvpe0t8z',
|
||||
'description' => <<<'TEXT'
|
||||
Ideal für Agenturen, Fotografen oder Eventdienstleister mit vielen Veranstaltungen im Jahr. {{max_events_per_year}} Events inklusive, White-Label-Branding und alle Premium-Funktionen sorgen für maximale Flexibilität.
|
||||
Event-Kontingent für Partner / Agenturen: {{max_events_per_year}} Events auf Premium‑Niveau. Empfohlen innerhalb von 24 Monaten zu nutzen.
|
||||
TEXT,
|
||||
'description_translations' => [
|
||||
'de' => 'Ideal für Agenturen, Fotografen oder Eventdienstleister mit vielen Veranstaltungen im Jahr. {{max_events_per_year}} Events inklusive, White-Label-Branding und alle Premium-Funktionen sorgen für maximale Flexibilität.',
|
||||
'en' => 'Ideal for agencies, photographers or event providers with a packed calendar. {{max_events_per_year}} events included, white-label branding and all premium features for maximum flexibility.',
|
||||
'de' => 'Event-Kontingent für Partner / Agenturen: {{max_events_per_year}} Events auf Premium‑Niveau. Empfohlen innerhalb von 24 Monaten zu nutzen.',
|
||||
'en' => 'Event-Kontingent for Partner / Agencies: {{max_events_per_year}} events at Premium level. Recommended to use within 24 months.',
|
||||
],
|
||||
'description_table' => [
|
||||
['title' => 'Events/Jahr', 'value' => '{{max_events_per_year}} Events'],
|
||||
['title' => 'Branding', 'value' => 'White-Label & eigene Domains'],
|
||||
['title' => 'Extras', 'value' => 'Live-Slideshow & Premium-Features'],
|
||||
['title' => 'Events', 'value' => '{{max_events_per_year}} Events'],
|
||||
['title' => 'Inklusive Event-Level', 'value' => 'Premium'],
|
||||
['title' => 'Empfehlung', 'value' => 'Empfohlen innerhalb von 24 Monaten zu nutzen.'],
|
||||
],
|
||||
],
|
||||
[
|
||||
'slug' => 'partner-premium-5',
|
||||
'name' => 'Partner Premium-Kontingent (5 Events)',
|
||||
'name_translations' => [
|
||||
'de' => 'Partner Premium-Kontingent (5 Events)',
|
||||
'en' => 'Partner Premium kontingent (5 events)',
|
||||
],
|
||||
'type' => PackageType::RESELLER,
|
||||
'included_package_slug' => 'pro',
|
||||
'price' => 549.00,
|
||||
'max_photos' => null,
|
||||
'max_guests' => null,
|
||||
'gallery_days' => null,
|
||||
'max_tasks' => null,
|
||||
'watermark_allowed' => false,
|
||||
'branding_allowed' => true,
|
||||
'max_events_per_year' => 5,
|
||||
'expires_after' => null,
|
||||
'features' => ['reseller_dashboard', 'custom_branding', 'priority_support'],
|
||||
'paddle_product_id' => 'pro_01kf16ttp0fph79j59x0z1cdqc',
|
||||
'paddle_price_id' => 'pri_01kf16v0v2z4hse5cxq5wnah4b',
|
||||
'description' => <<<'TEXT'
|
||||
Premium Event-Kontingent für Partner / Agenturen: {{max_events_per_year}} Events auf Premium‑Niveau. Empfohlen innerhalb von 24 Monaten zu nutzen.
|
||||
TEXT,
|
||||
'description_translations' => [
|
||||
'de' => 'Premium Event-Kontingent für Partner / Agenturen: {{max_events_per_year}} Events auf Premium‑Niveau. Empfohlen innerhalb von 24 Monaten zu nutzen.',
|
||||
'en' => 'Premium Event-Kontingent for Partner / Agencies: {{max_events_per_year}} events at Premium level. Recommended to use within 24 months.',
|
||||
],
|
||||
'description_table' => [
|
||||
['title' => 'Events', 'value' => '{{max_events_per_year}} Events'],
|
||||
['title' => 'Inklusive Event-Level', 'value' => 'Premium'],
|
||||
['title' => 'Empfehlung', 'value' => 'Empfohlen innerhalb von 24 Monaten zu nutzen.'],
|
||||
],
|
||||
],
|
||||
[
|
||||
'slug' => 'studio-annual',
|
||||
'name' => 'Studio Jahrespaket',
|
||||
'name' => 'Partner Jahreskontingent (24 Events)',
|
||||
'name_translations' => [
|
||||
'de' => 'Studio Jahrespaket',
|
||||
'en' => 'Studio Annual',
|
||||
'de' => 'Partner Jahreskontingent (24 Events)',
|
||||
'en' => 'Partner annual kontingent (24 events)',
|
||||
],
|
||||
'type' => PackageType::RESELLER,
|
||||
'included_package_slug' => 'standard',
|
||||
'price' => 1299.00,
|
||||
'max_photos' => null,
|
||||
'max_guests' => null,
|
||||
@@ -230,42 +268,20 @@ TEXT,
|
||||
'branding_allowed' => false,
|
||||
'max_events_per_year' => 24,
|
||||
'expires_after' => null,
|
||||
'features' => ['basic_uploads', 'unlimited_sharing', 'custom_branding'],
|
||||
'features' => ['reseller_dashboard', 'custom_branding', 'priority_support', 'advanced_reporting'],
|
||||
'paddle_product_id' => 'pro_01k8jct3gz9ks5mg6z61q6nrxb',
|
||||
'paddle_price_id' => 'pri_01k8jcxsa8axwpjnybhjbcrb06',
|
||||
'description' => null,
|
||||
'description_translations' => null,
|
||||
'description_table' => [],
|
||||
],
|
||||
[
|
||||
'slug' => 'enterprise-unlimited',
|
||||
'name' => 'Enterprise / Unlimited',
|
||||
'name_translations' => [
|
||||
'de' => 'Enterprise / Unlimited',
|
||||
'en' => 'Enterprise / Unlimited',
|
||||
],
|
||||
'type' => PackageType::RESELLER,
|
||||
'price' => 1999.00,
|
||||
'max_photos' => null,
|
||||
'max_guests' => null,
|
||||
'gallery_days' => null,
|
||||
'max_tasks' => null,
|
||||
'watermark_allowed' => false,
|
||||
'branding_allowed' => true,
|
||||
'max_events_per_year' => null,
|
||||
'expires_after' => now()->copy()->addYear(),
|
||||
'features' => ['reseller_dashboard', 'custom_branding', 'priority_support', 'advanced_reporting', 'live_slideshow', 'unlimited_sharing'],
|
||||
'description' => <<<'TEXT'
|
||||
Das Rundum-Paket für Unternehmen und Agenturen, die maximale Flexibilität brauchen. {{max_events_per_year}} Events, volles White-Label-Branding, eigene Subdomain oder App-Branding – alles individuell anpassbar, inklusive persönlicher Betreuung.
|
||||
Event-Kontingent für Partner / Agenturen: {{max_events_per_year}} Events auf Standard‑Niveau. Empfohlen innerhalb von 24 Monaten zu nutzen.
|
||||
TEXT,
|
||||
'description_translations' => [
|
||||
'de' => 'Das Rundum-Paket für Unternehmen und Agenturen, die maximale Flexibilität brauchen. {{max_events_per_year}} Events, volles White-Label-Branding, eigene Subdomain oder App-Branding – alles individuell anpassbar, inklusive persönlicher Betreuung.',
|
||||
'en' => 'The all-round package for enterprises and agencies needing maximum flexibility. {{max_events_per_year}} events, full white-label branding, your own subdomain or app branding—fully customisable with dedicated support.',
|
||||
'de' => 'Event-Kontingent für Partner / Agenturen: {{max_events_per_year}} Events auf Standard‑Niveau. Empfohlen innerhalb von 24 Monaten zu nutzen.',
|
||||
'en' => 'Event-Kontingent for Partner / Agencies: {{max_events_per_year}} events at Standard level. Recommended to use within 24 months.',
|
||||
],
|
||||
'description_table' => [
|
||||
['title' => 'Events/Jahr', 'value' => '{{max_events_per_year}} Events'],
|
||||
['title' => 'Branding', 'value' => 'Eigene Subdomain oder App'],
|
||||
['title' => 'Support', 'value' => 'Persönliche Betreuung'],
|
||||
['title' => 'Events', 'value' => '{{max_events_per_year}} Events'],
|
||||
['title' => 'Inklusive Event-Level', 'value' => 'Standard'],
|
||||
['title' => 'Empfehlung', 'value' => 'Empfohlen innerhalb von 24 Monaten zu nutzen.'],
|
||||
],
|
||||
],
|
||||
];
|
||||
@@ -279,5 +295,7 @@ TEXT,
|
||||
])
|
||||
);
|
||||
}
|
||||
|
||||
Package::where('slug', 'enterprise-unlimited')->delete();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user