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

660 lines
94 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
namespace Database\Seeders;
use App\Models\Emotion;
use App\Models\EventType;
use App\Models\Task;
use App\Models\TaskCollection;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class TaskCollectionsSeeder extends Seeder
{
public function run(): void
{
$definitions = $this->definitions();
$collectionMap = [];
DB::transaction(function () use ($definitions, &$collectionMap) {
foreach ($definitions as $eventTypeSlug => $definition) {
$eventType = $this->ensureEventType($definition['event_type']);
$collection = TaskCollection::updateOrCreate(
['slug' => $definition['collection']['slug']],
[
'tenant_id' => null,
'event_type_id' => $eventType->id,
'name_translations' => $definition['collection']['name'],
'description_translations' => $definition['collection']['description'],
'is_default' => $definition['collection']['is_default'] ?? false,
'position' => $definition['collection']['position'] ?? 0,
'source_collection_id' => null,
]
);
$syncPayload = [];
foreach ($definition['base_tasks'] as $index => $taskDefinition) {
$sortOrder = $taskDefinition['sort_order'] ?? (($index + 1) * 10);
$task = $this->upsertTask($collection, $eventType, $taskDefinition, $sortOrder);
$syncPayload[$task->id] = ['sort_order' => $sortOrder];
}
$collection->tasks()->sync($syncPayload);
$collectionMap[$eventType->id] = $collection;
}
});
}
private function definitions(): array
{
$emotions = [
'Liebe' => ['name' => ['de' => 'Liebe', 'en' => 'Love'], 'icon' => 'lucide-heart', 'color' => '#ff6b9d'],
'Freude' => ['name' => ['de' => 'Freude', 'en' => 'Joy'], 'icon' => 'lucide-smile', 'color' => '#ffd93d'],
'Rührung' => ['name' => ['de' => 'Rührung', 'en' => 'Touched'], 'icon' => 'lucide-leaf', 'color' => '#6bcf7f'],
'Nostalgie' => ['name' => ['de' => 'Nostalgie', 'en' => 'Nostalgia'], 'icon' => 'lucide-clock', 'color' => '#a78bfa'],
'Überraschung' => ['name' => ['de' => 'Überraschung', 'en' => 'Surprise'], 'icon' => 'lucide-gift', 'color' => '#fb7185'],
'Stolz' => ['name' => ['de' => 'Stolz', 'en' => 'Pride'], 'icon' => 'lucide-trophy', 'color' => '#34d399'],
'Teamgeist' => ['name' => ['de' => 'Teamgeist', 'en' => 'Team Spirit'], 'icon' => 'lucide-users', 'color' => '#38bdf8'],
'Besinnlichkeit' => ['name' => ['de' => 'Besinnlichkeit', 'en' => 'Contemplation'], 'icon' => 'lucide-candle', 'color' => '#22c55e'],
'Romantik' => ['name' => ['de' => 'Romantik', 'en' => 'Romance'], 'icon' => 'lucide-rose', 'color' => '#e11d48'],
'Ekstase' => ['name' => ['de' => 'Ekstase', 'en' => 'Ecstasy'], 'icon' => 'lucide-stars', 'color' => '#f59e0b'],
];
$weddingType = ['slug' => 'wedding', 'name' => ['de' => 'Hochzeit', 'en' => 'Wedding'], 'icon' => 'lucide-heart'];
return [
'wedding' => [
'event_type' => $weddingType,
'collection' => [
'slug' => 'wedding-classics-2025',
'name' => ['de' => 'Hochzeits-Aufgaben', 'en' => 'Wedding Tasks'],
'description' => ['de' => '44 klassische Aufgaben für den schönsten Tag im Leben.', 'en' => '44 classic tasks for the most beautiful day of your life.'],
'is_default' => true,
'position' => 10,
],
'base_tasks' => [
$this->taskDefinition('wedding-1', ['de' => 'Macht ein Foto mit dem Brautpaar.', 'en' => 'Take a photo with the bride and groom.'], $emotions['Freude'], 10),
$this->taskDefinition('wedding-2', ['de' => 'Stellt den Heiratsantrag nach (fragt das Brautpaar, wie er war!).', 'en' => 'Re-enact the proposal (ask the couple how it was!).'], $emotions['Romantik'], 20),
$this->taskDefinition('wedding-3', ['de' => 'Fotografiert die Eheringe aus einer kreativen Perspektive.', 'en' => 'Photograph the wedding rings from a creative perspective.'], $emotions['Liebe'], 30),
$this->taskDefinition('wedding-4', ['de' => 'Findet das Paar, das am längsten verheiratet ist, und lasst euch einen Tipp geben.', 'en' => 'Find the couple that has been married the longest and get a tip from them.'], $emotions['Nostalgie'], 40),
$this->taskDefinition('wedding-5', ['de' => 'Macht ein Foto von einer herzlichen Umarmung zwischen den Eltern des Brautpaares.', 'en' => 'Take a photo of a warm hug between the parents of the bride and groom.'], $emotions['Rührung'], 50),
$this->taskDefinition('wedding-6', ['de' => 'Bildet mit euren Händen ein Herz um das Brautpaar.', 'en' => 'Form a heart around the couple with your hands.'], $emotions['Liebe'], 60),
$this->taskDefinition('wedding-7', ['de' => 'Fotografiert den Moment, in dem die Hochzeitstorte angeschnitten wird.', 'en' => 'Photograph the moment the wedding cake is cut.'], $emotions['Freude'], 70),
$this->taskDefinition('wedding-8', ['de' => 'Macht ein Selfie mit dem Trauzeugen oder der Trauzeugin.', 'en' => 'Take a selfie with the best man or maid of honor.'], $emotions['Teamgeist'], 80),
$this->taskDefinition('wedding-9', ['de' => 'Findet jemanden mit dem gleichen Vornamen und macht ein gemeinsames Foto.', 'en' => 'Find someone with the same first name and take a photo together.'], $emotions['Überraschung'], 90),
$this->taskDefinition('wedding-10', ['de' => 'Fotografiert einen Gast, der eine Freudenträne vergießt.', 'en' => 'Photograph a guest shedding a tear of joy.'], $emotions['Rührung'], 100),
$this->taskDefinition('wedding-11', ['de' => 'Macht ein Foto, auf dem alle so hoch springen, wie sie können.', 'en' => 'Take a photo where everyone jumps as high as they can.'], $emotions['Ekstase'], 110),
$this->taskDefinition('wedding-12', ['de' => 'Findet die Großeltern des Brautpaares und macht ein Generationen-Foto.', 'en' => 'Find the grandparents of the couple and take a generation photo.'], $emotions['Liebe'], 120),
$this->taskDefinition('wedding-13', ['de' => 'Stellt eine Szene aus dem Lieblingsfilm des Brautpaares nach.', 'en' => 'Re-enact a scene from the couple\'s favorite movie.'], $emotions['Teamgeist'], 130),
$this->taskDefinition('wedding-14', ['de' => 'Macht ein Kuss-Foto mit eurem eigenen Partner.', 'en' => 'Take a kiss photo with your own partner.'], $emotions['Romantik'], 140),
$this->taskDefinition('wedding-16', ['de' => 'Findet das jüngste und das älteste Familienmitglied auf der Feier für ein gemeinsames Bild.', 'en' => 'Find the youngest and oldest family member at the party for a photo together.'], $emotions['Nostalgie'], 160),
$this->taskDefinition('wedding-17', ['de' => 'Macht ein Foto von den Händen von drei verschiedenen Generationen.', 'en' => 'Take a photo of the hands of three different generations.'], $emotions['Rührung'], 170),
$this->taskDefinition('wedding-19', ['de' => 'Macht ein Foto mit jemandem, der heute zum ersten Mal auf einer Hochzeit ist.', 'en' => 'Take a photo with someone who is at a wedding for the first time today.'], $emotions['Überraschung'], 190),
$this->taskDefinition('wedding-20', ['de' => 'Fotografiert das detail an der Hochzeitsdeko, das euch am besten gefällt.', 'en' => 'Photograph the detail of the wedding decoration that you like the most.'], $emotions['Besinnlichkeit'], 200),
$this->taskDefinition('wedding-21', ['de' => 'Macht ein Gruppenfoto mit allen Gästen von eurem Tisch.', 'en' => 'Take a group photo with all the guests at your table.'], $emotions['Teamgeist'], 210),
$this->taskDefinition('wedding-22', ['de' => 'Findet einen Gast mit einer besonders schicken Krawatte oder Fliege.', 'en' => 'Find a guest with a particularly fancy tie or bow tie.'], $emotions['Stolz'], 220),
$this->taskDefinition('wedding-23', ['de' => 'Tanzt mit einem Elternteil des Brautpaares und haltet den Moment fest.', 'en' => 'Dance with a parent of the couple and capture the moment.'], $emotions['Freude'], 230),
$this->taskDefinition('wedding-25', ['de' => 'Fotografiert das Gästebuch in Aktion.', 'en' => 'Photograph the guest book in action.'], $emotions['Nostalgie'], 250),
$this->taskDefinition('wedding-26', ['de' => 'Macht ein Foto von eurem Lieblingsmoment des Tages.', 'en' => 'Take a photo of your favorite moment of the day.'], $emotions['Besinnlichkeit'], 260),
$this->taskDefinition('wedding-27', ['de' => 'Findet einen Gegenstand, der die Farbe "Blau" enthält (etwas Altes, Neues, Geliehenes, Blaues).', 'en' => 'Find an object that contains the color "blue" (something old, new, borrowed, blue).'], $emotions['Nostalgie'], 270),
$this->taskDefinition('wedding-28', ['de' => 'Macht ein Foto, auf dem ihr dem Brautpaar für die Zukunft zuprostet.', 'en' => 'Take a photo toasting to the couple\'s future.'], $emotions['Stolz'], 280),
$this->taskDefinition('wedding-30', ['de' => 'Fotografiert einen Moment stiller Zweisamkeit des Brautpaares.', 'en' => 'Photograph a moment of quiet togetherness of the couple.'], $emotions['Romantik'], 300),
$this->taskDefinition('wedding-31', ['de' => 'Macht ein Foto mit dem DJ oder einem Mitglied der Band.', 'en' => 'Take a photo with the DJ or a member of the band.'], $emotions['Freude'], 310),
$this->taskDefinition('wedding-32', ['de' => 'Findet die Person mit dem ansteckendsten Lachen.', 'en' => 'Find the person with the most infectious laugh.'], $emotions['Freude'], 320),
$this->taskDefinition('wedding-34', ['de' => 'Macht ein Foto mit demjenigen, der den Brautstrauß gefangen hat.', 'en' => 'Take a photo with the person who caught the bouquet.'], $emotions['Stolz'], 340),
$this->taskDefinition('wedding-35', ['de' => 'Stellt eure beste Tanzpose zur Schau.', 'en' => 'Show off your best dance pose.'], $emotions['Ekstase'], 350),
$this->taskDefinition('wedding-36', ['de' => 'Macht ein Foto, das "Für immer und ewig" symbolisiert.', 'en' => 'Take a photo that symbolizes "forever and ever".'], $emotions['Liebe'], 360),
$this->taskDefinition('wedding-37', ['de' => 'Findet einen Gast, der die gleiche Schuhgröße hat wie ihr.', 'en' => 'Find a guest who has the same shoe size as you.'], $emotions['Überraschung'], 370),
$this->taskDefinition('wedding-38', ['de' => 'Fotografiert die leeren Tanzschuhe einer Frau, die barfuß tanzt.', 'en' => 'Photograph the empty dancing shoes of a woman dancing barefoot.'], $emotions['Ekstase'], 380),
$this->taskDefinition('wedding-39', ['de' => 'Macht ein Foto von einem Kind, das eingeschlafen ist.', 'en' => 'Take a photo of a child who has fallen asleep.'], $emotions['Rührung'], 390),
$this->taskDefinition('wedding-40', ['de' => 'Schreibt dem Brautpaar eine Botschaft auf einen Zettel und haltet sie ins Bild.', 'en' => 'Write a message to the couple on a piece of paper and hold it in the picture.'], $emotions['Liebe'], 400),
$this->taskDefinition('wedding-41', ['de' => 'Macht ein Foto mit dem "Blumenkind".', 'en' => 'Take a photo with the "flower child".'], $emotions['Freude'], 410),
$this->taskDefinition('wedding-42', ['de' => 'Fotografiert einen Moment, in dem sich das Brautpaar tief in die Augen schaut.', 'en' => 'Photograph a moment when the couple looks deep into each other\'s eyes.'], $emotions['Romantik'], 420),
$this->taskDefinition('wedding-43', ['de' => 'Findet die Person, die die weiteste Anreise hatte.', 'en' => 'Find the person who had the longest journey.'], $emotions['Stolz'], 430),
$this->taskDefinition('wedding-44', ['de' => 'Macht ein Foto, das die Freundschaft zwischen dem Bräutigam und seinem Trauzeugen zeigt.', 'en' => 'Take a photo showing the friendship between the groom and his best man.'], $emotions['Teamgeist'], 440),
$this->taskDefinition('wedding-45', ['de' => 'Fotografiert einen geheimen Moment, den nicht jeder mitbekommt.', 'en' => 'Photograph a secret moment that not everyone gets to see.'], $emotions['Besinnlichkeit'], 450),
$this->taskDefinition('wedding-46', ['de' => 'Macht ein Foto von eurem Lieblings-Teil des Hochzeitsmenüs.', 'en' => 'Take a photo of your favorite part of the wedding menu.'], $emotions['Freude'], 460),
$this->taskDefinition('wedding-47', ['de' => 'Findet einen Gast, der ein Kleid in der gleichen Farbe wie die Deko trägt.', 'en' => 'Find a guest wearing a dress the same color as the decorations.'], $emotions['Überraschung'], 470),
$this->taskDefinition('wedding-49', ['de' => 'Fotografiert die Geschenke für das Brautpaar.', 'en' => 'Photograph the gifts for the couple.'], $emotions['Liebe'], 490),
$this->taskDefinition('wedding-50', ['de' => 'Macht ein letztes Foto des Abends, das die Stimmung perfekt zusammenfasst.', 'en' => 'Take a final photo of the evening that perfectly summarizes the mood.'], $emotions['Nostalgie'], 500),
],
],
'wedding_icebreaker' => [
'event_type' => $weddingType,
'collection' => [
'slug' => 'wedding-booster-icebreaker',
'name' => ['de' => 'Booster: Icebreaker', 'en' => 'Booster: Icebreaker'],
'description' => ['de' => '10 Aufgaben, um Gäste miteinander ins Gespräch zu bringen.', 'en' => '10 tasks to get guests talking to each other.'],
'is_default' => false,
'position' => 11,
],
'base_tasks' => [
$this->taskDefinition('w-ice-1', ['de' => 'Finde einen Gast, den du noch nicht kennst, und macht ein gemeinsames Selfie.', 'en' => 'Find a guest you don\'t know yet and take a joint selfie.'], $emotions['Überraschung'], 10),
$this->taskDefinition('w-ice-2', ['de' => 'Finde jemanden mit der gleichen Augenfarbe wie du.', 'en' => 'Find someone with the same eye color as you.'], $emotions['Teamgeist'], 20),
$this->taskDefinition('w-ice-3', ['de' => 'Macht ein Foto mit jemandem, der aus einer anderen Stadt kommt.', 'en' => 'Take a photo with someone who comes from a different city.'], $emotions['Teamgeist'], 30),
$this->taskDefinition('w-ice-4', ['de' => 'Findet jemanden, der auch gerne das gleiche Hobby macht wie das Brautpaar.', 'en' => 'Find someone who also enjoys the same hobby as the couple.'], $emotions['Freude'], 40),
$this->taskDefinition('w-ice-5', ['de' => 'Macht ein Gruppen-Selfie mit mindestens 3 Personen, die sich vorher nicht kannten.', 'en' => 'Take a group selfie with at least 3 people who didn\'t know each other before.'], $emotions['Teamgeist'], 50),
$this->taskDefinition('w-ice-6', ['de' => 'Finde jemanden, der das gleiche Sternzeichen hat wie du.', 'en' => 'Find someone who has the same zodiac sign as you.'], $emotions['Überraschung'], 60),
$this->taskDefinition('w-ice-7', ['de' => 'Macht ein Foto von zwei Personen, die gerade tief im Gespräch sind.', 'en' => 'Take a photo of two people deep in conversation.'], $emotions['Besinnlichkeit'], 70),
$this->taskDefinition('w-ice-8', ['de' => 'Finde den Gast, der die weiteste Anreise hatte, und macht ein Foto.', 'en' => 'Find the guest who travelled the furthest and take a photo.'], $emotions['Stolz'], 80),
$this->taskDefinition('w-ice-9', ['de' => 'Macht ein Foto mit jemandem, der ein tolles Kompliment für dein Outfit hat.', 'en' => 'Take a photo with someone who has a great compliment for your outfit.'], $emotions['Freude'], 90),
$this->taskDefinition('w-ice-10', ['de' => 'Findet jemanden, der schon mal auf derselben Schule/Uni war wie das Brautpaar.', 'en' => 'Find someone who was at the same school/university as the couple.'], $emotions['Nostalgie'], 100),
],
],
'wedding_party' => [
'event_type' => $weddingType,
'collection' => [
'slug' => 'wedding-booster-party',
'name' => ['de' => 'Booster: Party & Dance', 'en' => 'Booster: Party & Dance'],
'description' => ['de' => '10 Aufgaben für eine unvergessliche Party auf der Tanzfläche.', 'en' => '10 tasks for an unforgettable party on the dance floor.'],
'is_default' => false,
'position' => 12,
],
'base_tasks' => [
$this->taskDefinition('w-party-1', ['de' => 'Macht ein Foto mitten im Sprung auf der Tanzfläche.', 'en' => 'Take a photo mid-jump on the dance floor.'], $emotions['Ekstase'], 10),
$this->taskDefinition('w-party-2', ['de' => 'Fotografiere die tanzenden Füße einer Person.', 'en' => 'Photograph a person\'s dancing feet.'], $emotions['Freude'], 20),
$this->taskDefinition('w-party-3', ['de' => 'Macht ein Selfie mit dem DJ.', 'en' => 'Take a selfie with the DJ.'], $emotions['Teamgeist'], 30),
$this->taskDefinition('w-party-4', ['de' => 'Fotografiere den "Luftgitarren-Profi" des Abends.', 'en' => 'Photograph the "air guitar pro" of the evening.'], $emotions['Ekstase'], 40),
$this->taskDefinition('w-party-5', ['de' => 'Macht ein Gruppenfoto mit euren Lieblings-Drinks.', 'en' => 'Take a group photo with your favorite drinks.'], $emotions['Freude'], 50),
$this->taskDefinition('w-party-6', ['de' => 'Halte den Moment fest, wenn alle mitsingen.', 'en' => 'Capture the moment when everyone is singing along.'], $emotions['Ekstase'], 60),
$this->taskDefinition('w-party-7', ['de' => 'Fotografiere die Person mit dem coolsten Tanzmove.', 'en' => 'Photograph the person with the coolest dance move.'], $emotions['Stolz'], 70),
$this->taskDefinition('w-party-8', ['de' => 'Macht ein Foto mit einem Requisit von der Tanzfläche (falls vorhanden).', 'en' => 'Take a photo with a prop from the dance floor (if available).'], $emotions['Überraschung'], 80),
$this->taskDefinition('w-party-9', ['de' => 'Fotografiere das Brautpaar beim Tanzen aus der Froschperspektive.', 'en' => 'Photograph the couple dancing from a frog\'s eye view.'], $emotions['Romantik'], 90),
$this->taskDefinition('w-party-10', ['de' => 'Macht ein Foto von der erschöpften, aber glücklichen "Tanz-Pause" an der Bar.', 'en' => 'Take a photo of the exhausted but happy "dance break" at the bar.'], $emotions['Freude'], 100),
],
],
'wedding_funny' => [
'event_type' => $weddingType,
'collection' => [
'slug' => 'wedding-booster-funny',
'name' => ['de' => 'Booster: Funny & Crazy', 'en' => 'Booster: Funny & Crazy'],
'description' => ['de' => '10 Aufgaben für maximalen Spaß und witzige Posen.', 'en' => '10 tasks for maximum fun and funny poses.'],
'is_default' => false,
'position' => 13,
],
'base_tasks' => [
$this->taskDefinition('w-fun-1', ['de' => 'Tauscht euer Sakko oder Accessoire mit dem Nachbarn und macht ein Foto.', 'en' => 'Swap your jacket or accessory with your neighbor and take a photo.'], $emotions['Überraschung'], 10),
$this->taskDefinition('w-fun-2', ['de' => 'Macht ein Foto, auf dem ihr so tut, als wärt ihr das Brautpaar.', 'en' => 'Take a photo pretending to be the bride and groom.'], $emotions['Freude'], 20),
$this->taskDefinition('w-fun-3', ['de' => 'Wer kann die lustigste Grimasse schneiden? Abdrücken!', 'en' => 'Who can make the funniest face? Snap it!'], $emotions['Ekstase'], 30),
$this->taskDefinition('w-fun-4', ['de' => 'Macht ein "Photobomb"-Foto (schleicht euch in das Bild von jemand anderem).', 'en' => 'Take a "photobomb" photo (sneak into someone else\'s picture).'], $emotions['Überraschung'], 40),
$this->taskDefinition('w-fun-5', ['de' => 'Stellt ein berühmtes Gemälde oder Filmplakat nach.', 'en' => 'Re-enact a famous painting or movie poster.'], $emotions['Teamgeist'], 50),
$this->taskDefinition('w-fun-6', ['de' => 'Macht ein Foto von jemandem, der gerade herzhaft lacht.', 'en' => 'Take a photo of someone laughing heartily.'], $emotions['Freude'], 60),
$this->taskDefinition('w-fun-7', ['de' => 'Werft euch in eine Helden-Pose (wie Avengers).', 'en' => 'Strike a hero pose (like Avengers).'], $emotions['Stolz'], 70),
$this->taskDefinition('w-fun-8', ['de' => 'Macht ein Foto von einer Person, die gerade ein Nickerchen macht (oder so tut).', 'en' => 'Take a photo of a person taking a nap (or pretending to).'], $emotions['Besinnlichkeit'], 80),
$this->taskDefinition('w-fun-9', ['de' => 'Benutzt Besteck oder Deko als falsche Schnurrbärte oder Brillen.', 'en' => 'Use cutlery or decorations as fake mustaches or glasses.'], $emotions['Freude'], 90),
$this->taskDefinition('w-fun-10', ['de' => 'Macht ein Foto von der "Schlacht am Buffet".', 'en' => 'Take a photo of the "battle at the buffet".'], $emotions['Ekstase'], 100),
],
],
'wedding_rustic' => [
'event_type' => $weddingType,
'collection' => [
'slug' => 'wedding-booster-rustic',
'name' => ['de' => 'Booster: Landhochzeit', 'en' => 'Booster: Rustic & Outdoor'],
'description' => ['de' => '10 Aufgaben für naturnahe Hochzeiten im Freien oder in der Scheune.', 'en' => '10 tasks for nature-oriented outdoor or barn weddings.'],
'is_default' => false,
'position' => 14,
],
'base_tasks' => [
$this->taskDefinition('w-rust-1', ['de' => 'Fotografiere das schönste Detail aus Holz oder Jute.', 'en' => 'Photograph the most beautiful detail made of wood or jute.'], $emotions['Besinnlichkeit'], 10),
$this->taskDefinition('w-rust-2', ['de' => 'Finde jemanden mit Blumen im Haar oder am Revers.', 'en' => 'Find someone with flowers in their hair or on their lapel.'], $emotions['Romantik'], 20),
$this->taskDefinition('w-rust-3', ['de' => 'Mach ein Foto im Freien mit viel Himmel im Hintergrund.', 'en' => 'Take a photo outdoors with lots of sky in the background.'], $emotions['Freude'], 30),
$this->taskDefinition('w-rust-4', ['de' => 'Fotografiere eine Lichterkette oder Laterne in der Dämmerung.', 'en' => 'Photograph a string of lights or lantern at dusk.'], $emotions['Romantik'], 40),
$this->taskDefinition('w-rust-5', ['de' => 'Finde ein Tier (Hund, Vogel, Schmetterling) auf dem Gelände.', 'en' => 'Find an animal (dog, bird, butterfly) on the grounds.'], $emotions['Überraschung'], 50),
$this->taskDefinition('w-rust-6', ['de' => 'Macht ein Foto auf einer Gartenbank oder einer Heuballe.', 'en' => 'Take a photo on a garden bench or a bale of hay.'], $emotions['Nostalgie'], 60),
$this->taskDefinition('w-rust-7', ['de' => 'Fotografiere das Brautpaar vor einer natürlichen Kulisse.', 'en' => 'Photograph the couple in front of a natural backdrop.'], $emotions['Liebe'], 70),
$this->taskDefinition('w-rust-8', ['de' => 'Finde einen Stein in Herzform oder ein Blatt.', 'en' => 'Find a heart-shaped stone or a leaf.'], $emotions['Überraschung'], 80),
$this->taskDefinition('w-rust-9', ['de' => 'Macht ein Foto von euren Schuhen im Gras.', 'en' => 'Take a photo of your shoes in the grass.'], $emotions['Freude'], 90),
$this->taskDefinition('w-rust-10', ['de' => 'Halte den Sonnenuntergang (oder das goldene Licht) fest.', 'en' => 'Capture the sunset (or the golden light).'], $emotions['Besinnlichkeit'], 100),
],
],
'wedding_traditions' => [
'event_type' => $weddingType,
'collection' => [
'slug' => 'wedding-booster-traditions',
'name' => ['de' => 'Booster: Tradition & Kultur', 'en' => 'Booster: Traditions & Culture'],
'description' => ['de' => '10 Aufgaben für kulturstarke Hochzeiten mit Bräuchen und viel Energie.', 'en' => '10 tasks for culture-rich weddings with customs and lots of energy.'],
'is_default' => false,
'position' => 15,
],
'base_tasks' => [
$this->taskDefinition('w-trad-1', ['de' => 'Macht ein Foto vom wildesten Kreistanz (Halay, Polonaise, Sirtaki).', 'en' => 'Take a photo of the wildest circle dance (Halay, Polonaise, Sirtaki).'], $emotions['Ekstase'], 10),
$this->taskDefinition('w-trad-2', ['de' => 'Fotografiere den Moment, wenn es "laut" und emotional wird (Trommeln, Gesang).', 'en' => 'Photograph the moment when it gets "loud" and emotional (drums, singing).'], $emotions['Rührung'], 20),
$this->taskDefinition('w-trad-3', ['de' => 'Halte eine traditionelle Zeremonie oder einen Brauch fest.', 'en' => 'Capture a traditional ceremony or custom.'], $emotions['Nostalgie'], 30),
$this->taskDefinition('w-trad-4', ['de' => 'Fotografiere das traditionellste Kleidungsstück oder Schmuckstück im Raum.', 'en' => 'Photograph the most traditional piece of clothing or jewelry in the room.'], $emotions['Stolz'], 40),
$this->taskDefinition('w-trad-5', ['de' => 'Macht ein Foto vom Anschneiden der Torte (oder einer anderen Speisen-Tradition).', 'en' => 'Take a photo of the cutting of the cake (or another food tradition).'], $emotions['Freude'], 50),
$this->taskDefinition('w-trad-6', ['de' => 'Finde jemanden, der eine rührende Geschichte über eine alte Tradition erzählen kann.', 'en' => 'Find someone who can tell a touching story about an old tradition.'], $emotions['Rührung'], 60),
$this->taskDefinition('w-trad-7', ['de' => 'Macht ein Foto von der "Geld-Übergabe" oder einem Geschenkritual.', 'en' => 'Take a photo of the "money handover" or a gift ritual.'], $emotions['Überraschung'], 70),
$this->taskDefinition('w-trad-8', ['de' => 'Fotografiere die größte Gruppe von Verwandten auf einem Bild.', 'en' => 'Photograph the largest group of relatives in one picture.'], $emotions['Teamgeist'], 80),
$this->taskDefinition('w-trad-9', ['de' => 'Macht ein Foto von dem Moment, wenn das Brautpaar hochgehoben wird.', 'en' => 'Take a photo of the moment when the couple is lifted up.'], $emotions['Ekstase'], 90),
$this->taskDefinition('w-trad-10', ['de' => 'Halte den Segen oder einen spirituellen Moment fest.', 'en' => 'Capture the blessing or a spiritual moment.'], $emotions['Besinnlichkeit'], 100),
],
],
'wedding_nerdy' => [
'event_type' => $weddingType,
'collection' => [
'slug' => 'wedding-booster-nerdy',
'name' => ['de' => 'Booster: Nerd-Hochzeit', 'en' => 'Booster: Nerdy Wedding'],
'description' => ['de' => '10 Aufgaben für Gamer, Filmfans und Technik-Enthusiasten.', 'en' => '10 tasks for gamers, movie fans and tech enthusiasts.'],
'is_default' => false,
'position' => 16,
],
'base_tasks' => [
$this->taskDefinition('w-nerd-1', ['de' => 'Stellt eine epische Szene aus einem Film oder Spiel nach (Besteck-Lichtschwert!).', 'en' => 'Re-enact an epic scene from a movie or game (cutlery lightsaber!).'], $emotions['Teamgeist'], 10),
$this->taskDefinition('w-nerd-2', ['de' => 'Finde das versteckte "Easter Egg" in der Deko.', 'en' => 'Find the hidden "Easter Egg" in the decoration.'], $emotions['Überraschung'], 20),
$this->taskDefinition('w-nerd-3', ['de' => 'Macht ein "Power-Up"-Foto (Essen oder Trinken macht dich stärker).', 'en' => 'Take a "power-up" photo (eating or drinking makes you stronger).'], $emotions['Ekstase'], 30),
$this->taskDefinition('w-nerd-4', ['de' => 'Fotografiere ein Detail, das eine Anspielung auf ein Fandom ist.', 'en' => 'Photograph a detail that is an allusion to a fandom.'], $emotions['Freude'], 40),
$this->taskDefinition('w-nerd-5', ['de' => 'Macht ein Selfie mit einem "NPC" (jemandem, der gerade nur rumsteht).', 'en' => 'Take a selfie with an "NPC" (someone who is just standing around).'], $emotions['Überraschung'], 50),
$this->taskDefinition('w-nerd-6', ['de' => 'Stellt eine "Victory Royale" Pose nach.', 'en' => 'Re-enact a "Victory Royale" pose.'], $emotions['Stolz'], 60),
$this->taskDefinition('w-nerd-7', ['de' => 'Finde jemanden, der ein nerdiges Tattoo oder Accessoire trägt.', 'en' => 'Find someone wearing a nerdy tattoo or accessory.'], $emotions['Nostalgie'], 70),
$this->taskDefinition('w-nerd-8', ['de' => 'Macht ein Foto, das aussieht wie ein Ladebildschirm.', 'en' => 'Take a photo that looks like a loading screen.'], $emotions['Besinnlichkeit'], 80),
$this->taskDefinition('w-nerd-9', ['de' => 'Findet den "Endgegner" des Buffets (das größte Stück Fleisch oder Torte).', 'en' => 'Find the "end boss" of the buffet (the biggest piece of meat or cake).'], $emotions['Ekstase'], 90),
$this->taskDefinition('w-nerd-10', ['de' => 'Macht ein Gruppenfoto als "Gilde" oder "Squad".', 'en' => 'Take a group photo as a "guild" or "squad".'], $emotions['Teamgeist'], 100),
],
],
'birthday' => [
'event_type' => ['slug' => 'birthday', 'name' => ['de' => 'Geburtstag', 'en' => 'Birthday'], 'icon' => 'lucide-cake'],
'collection' => [
'slug' => 'birthday-classics-2025',
'name' => ['de' => 'Geburtstags-Aufgaben', 'en' => 'Birthday Tasks'],
'description' => ['de' => '50 Aufgaben für eine unvergessliche Geburtstagsfeier.', 'en' => '50 tasks for an unforgettable birthday party.'],
'is_default' => true,
'position' => 20,
],
'base_tasks' => [
$this->taskDefinition('birthday-1', ['de' => 'Macht ein Foto mit dem Geburtstagskind.', 'en' => 'Take a photo with the birthday person.'], $emotions['Freude'], 10),
$this->taskDefinition('birthday-2', ['de' => 'Umarme das Geburtstagskind und halte den Moment fest.', 'en' => 'Hug the birthday person and capture the moment.'], $emotions['Liebe'], 20),
$this->taskDefinition('birthday-3', ['de' => 'Macht ein Foto, auf dem ihr dem Geburtstagskind ein Ständchen singt.', 'en' => 'Take a photo of you singing "Happy Birthday" to the birthday person.'], $emotions['Freude'], 30),
$this->taskDefinition('birthday-4', ['de' => 'Fotografiert den Moment, in dem die Kerzen auf dem Kuchen ausgepustet werden.', 'en' => 'Photograph the moment the candles on the cake are blown out.'], $emotions['Stolz'], 40),
$this->taskDefinition('birthday-5', ['de' => 'Findet jemanden, der im selben Monat Geburtstag hat wie ihr.', 'en' => 'Find someone who has a birthday in the same month as you.'], $emotions['Überraschung'], 50),
$this->taskDefinition('birthday-6', ['de' => 'Macht ein Foto mit dem ältesten und dem jüngsten Gast auf der Party.', 'en' => 'Take a photo with the oldest and youngest guest at the party.'], $emotions['Nostalgie'], 60),
$this->taskDefinition('birthday-7', ['de' => 'Stellt ein Kinderfoto des Geburtstagskindes nach.', 'en' => 'Recreate a childhood photo of the birthday person.'], $emotions['Nostalgie'], 70),
$this->taskDefinition('birthday-8', ['de' => 'Macht ein Foto mit dem Geschenk, das ihr mitgebracht habt.', 'en' => 'Take a photo with the gift you brought.'], $emotions['Liebe'], 80),
$this->taskDefinition('birthday-9', ['de' => 'Fotografiert den Geschenketisch.', 'en' => 'Photograph the gift table.'], $emotions['Überraschung'], 90),
$this->taskDefinition('birthday-10', ['de' => 'Macht ein Gruppenfoto mit allen, die dem Geburtstagskind gerade am nächsten stehen.', 'en' => 'Take a group photo with everyone closest to the birthday person right now.'], $emotions['Teamgeist'], 100),
$this->taskDefinition('birthday-11', ['de' => 'Findet die Person mit dem besten Tanz-Move und fordert sie heraus.', 'en' => 'Find the person with the best dance move and challenge them.'], $emotions['Ekstase'], 110),
$this->taskDefinition('birthday-12', ['de' => 'Macht ein Foto, auf dem ihr so tut, als wärt ihr das Geburtstagskind.', 'en' => 'Take a photo pretending to be the birthday person.'], $emotions['Freude'], 120),
$this->taskDefinition('birthday-13', ['de' => 'Fotografiert einen herzhaften Lacher des Geburtstagskindes.', 'en' => 'Photograph a hearty laugh from the birthday person.'], $emotions['Freude'], 130),
$this->taskDefinition('birthday-14', ['de' => 'Macht ein Foto mit einem Familienmitglied des Geburtstagskindes.', 'en' => 'Take a photo with a family member of the birthday person.'], $emotions['Rührung'], 140),
$this->taskDefinition('birthday-15', ['de' => 'Findet einen Gegenstand, der das neue Lebensjahr symbolisiert.', 'en' => 'Find an object that symbolizes the new year of life.'], $emotions['Stolz'], 150),
$this->taskDefinition('birthday-16', ['de' => 'Macht ein Selfie mit dem Haustier des Geburtstagskindes (falls vorhanden).', 'en' => 'Take a selfie with the birthday person\'s pet (if any).'], $emotions['Liebe'], 160),
$this->taskDefinition('birthday-17', ['de' => 'Fotografiert die Dekoration, die euch am besten gefällt.', 'en' => 'Photograph the decoration you like the most.'], $emotions['Besinnlichkeit'], 170),
$this->taskDefinition('birthday-18', ['de' => 'Macht ein Foto, auf dem ihr eure beste "Überraschung!"-Miene aufsetzt.', 'en' => 'Take a photo with your best "surprise!" face.'], $emotions['Überraschung'], 180),
$this->taskDefinition('birthday-19', ['de' => 'Findet jemanden, den ihr seit über 10 Jahren nicht gesehen habt.', 'en' => 'Find someone you haven\'t seen in over 10 years.'], $emotions['Nostalgie'], 190),
$this->taskDefinition('birthday-20', ['de' => 'Prostet dem Geburtstagskind zu.', 'en' => 'Toast to the birthday person.'], $emotions['Stolz'], 200),
$this->taskDefinition('birthday-21', ['de' => 'Macht ein Foto von eurem Lieblings-Snack auf der Party.', 'en' => 'Take a photo of your favorite snack at the party.'], $emotions['Freude'], 210),
$this->taskDefinition('birthday-22', ['de' => 'Bildet mit einer Gruppe das Alter des Geburtstagskindes mit euren Körpern.', 'en' => 'Form the age of the birthday person with your bodies in a group.'], $emotions['Teamgeist'], 220),
$this->taskDefinition('birthday-23', ['de' => 'Macht ein Foto mit jemandem, der die gleiche Lieblingsfarbe hat wie das Geburtstagskind.', 'en' => 'Take a photo with someone who has the same favorite color as the birthday person.'], $emotions['Teamgeist'], 230),
$this->taskDefinition('birthday-24', ['de' => 'Fotografiert einen Moment der Ruhe, in dem das Geburtstagskind einfach nur genießt.', 'en' => 'Photograph a moment of calm where the birthday person is just enjoying themselves.'], $emotions['Besinnlichkeit'], 240),
$this->taskDefinition('birthday-25', ['de' => 'Macht ein Foto mit dem besten Freund/der besten Freundin des Geburtstagskindes.', 'en' => 'Take a photo with the birthday person\'s best friend.'], $emotions['Liebe'], 250),
$this->taskDefinition('birthday-26', ['de' => 'Findet einen Gast, der eine lustige Anekdote über das Geburtstagskind erzählen kann.', 'en' => 'Find a guest who can tell a funny anecdote about the birthday person.'], $emotions['Nostalgie'], 260),
$this->taskDefinition('birthday-27', ['de' => 'Macht ein Foto, das eure Freundschaft zum Geburtstagskind beschreibt.', 'en' => 'Take a photo that describes your friendship with the birthday person.'], $emotions['Liebe'], 270),
$this->taskDefinition('birthday-28', ['de' => 'Fotografiert die leeren Gläser nach einer Runde Anstoßen.', 'en' => 'Photograph the empty glasses after a round of toasts.'], $emotions['Ekstase'], 280),
$this->taskDefinition('birthday-29', ['de' => 'Macht ein Foto, auf dem ihr so tut, als würdet ihr ein Geschenk klauen.', 'en' => 'Take a photo pretending to steal a gift.'], $emotions['Überraschung'], 290),
$this->taskDefinition('birthday-30', ['de' => 'Findet die Person, die am lautesten singt.', 'en' => 'Find the person who sings the loudest.'], $emotions['Ekstase'], 300),
$this->taskDefinition('birthday-31', ['de' => 'Macht ein Foto von den Schuhen des Geburtstagskindes.', 'en' => 'Take a photo of the birthday person\'s shoes.'], $emotions['Stolz'], 310),
$this->taskDefinition('birthday-32', ['de' => 'Fotografiert einen Moment, in dem jemand eine rührende Rede hält.', 'en' => 'Photograph a moment when someone gives a touching speech.'], $emotions['Rührung'], 320),
$this->taskDefinition('birthday-33', ['de' => 'Macht ein Foto mit jemandem, der die gleiche Haarfarbe hat wie ihr.', 'en' => 'Take a photo with someone who has the same hair color as you.'], $emotions['Überraschung'], 330),
$this->taskDefinition('birthday-34', ['de' => 'Stellt eure "Ich habe das beste Geschenk"-Pose zur Schau.', 'en' => 'Show off your "I have the best gift" pose.'], $emotions['Stolz'], 340),
$this->taskDefinition('birthday-35', ['de' => 'Macht ein Foto, das die pure Lebensfreude einfängt.', 'en' => 'Take a photo that captures pure joy of life.'], $emotions['Ekstase'], 350),
$this->taskDefinition('birthday-36', ['de' => 'Findet einen Ort auf der Party, der eine besondere Bedeutung für das Geburtstagskind hat.', 'en' => 'Find a place at the party that has a special meaning for the birthday person.'], $emotions['Nostalgie'], 360),
$this->taskDefinition('birthday-37', ['de' => 'Macht ein Foto, das zeigt, wie sehr ihr euch auf das nächste Jahr freut.', 'en' => 'Take a photo that shows how much you are looking forward to the next year.'], $emotions['Stolz'], 370),
$this->taskDefinition('birthday-38', ['de' => 'Fotografiert die Playlist oder den DJ-Pult.', 'en' => 'Photograph the playlist or the DJ booth.'], $emotions['Freude'], 380),
$this->taskDefinition('birthday-39', ['de' => 'Macht ein Foto mit jemandem, der eine Brille trägt.', 'en' => 'Take a photo with someone who wears glasses.'], $emotions['Teamgeist'], 390),
$this->taskDefinition('birthday-40', ['de' => 'Findet einen Gast, der die gleiche Lieblingsband hat wie das Geburtstagskind.', 'en' => 'Find a guest who has the same favorite band as the birthday person.'], $emotions['Teamgeist'], 400),
$this->taskDefinition('birthday-41', ['de' => 'Macht ein Foto, das einen Insider-Witz darstellt, den nur ihr und das Geburtstagskind versteht.', 'en' => 'Take a photo that represents an inside joke that only you and the birthday person understand.'], $emotions['Nostalgie'], 410),
$this->taskDefinition('birthday-42', ['de' => 'Fotografiert einen Moment, in dem das Geburtstagskind sichtlich gerührt ist.', 'en' => 'Photograph a moment when the birthday person is visibly moved.'], $emotions['Rührung'], 420),
$this->taskDefinition('birthday-43', ['de' => 'Macht ein Foto von der Geburtstagskarte, die euch am besten gefällt.', 'en' => 'Take a photo of the birthday card you like the most.'], $emotions['Liebe'], 430),
$this->taskDefinition('birthday-44', ['de' => 'Findet die Person, die am weitesten für die Party angereist ist.', 'en' => 'Find the person who traveled the farthest for the party.'], $emotions['Stolz'], 440),
$this->taskDefinition('birthday-45', ['de' => 'Macht ein Foto, das "Party des Jahres" schreit.', 'en' => 'Take a photo that screams "Party of the Year".'], $emotions['Ekstase'], 450),
$this->taskDefinition('birthday-46', ['de' => 'Fotografiert einen Sonnenuntergang oder den Sternenhimmel während der Feier.', 'en' => 'Photograph a sunset or the starry sky during the celebration.'], $emotions['Besinnlichkeit'], 460),
$this->taskDefinition('birthday-47', ['de' => 'Macht ein Foto mit jemandem, der ein Haustier mit einem lustigen Namen hat.', 'en' => 'Take a photo with someone who has a pet with a funny name.'], $emotions['Überraschung'], 470),
$this->taskDefinition('birthday-48', ['de' => 'Stellt eine typische Pose oder Geste des Geburtstagskindes nach.', 'en' => 'Recreate a typical pose or gesture of the birthday person.'], $emotions['Freude'], 480),
$this->taskDefinition('birthday-49', ['de' => 'Macht ein Foto, das die Vorfreude auf den Kuchen zeigt.', 'en' => 'Take a photo showing the anticipation for the cake.'], $emotions['Freude'], 490),
$this->taskDefinition('birthday-50', ['de' => 'Macht ein Abschlussfoto mit dem müden, aber glücklichen Geburtstagskind am Ende des Abends.', 'en' => 'Take a final photo with the tired but happy birthday person at the end of the evening.'], $emotions['Rührung'], 500),
],
],
'christmas' => [
'event_type' => ['slug' => 'christmas', 'name' => ['de' => 'Weihnachten', 'en' => 'Christmas'], 'icon' => 'lucide-sparkles'],
'collection' => [
'slug' => 'christmas-classics-2025',
'name' => ['de' => 'Weihnachts-Aufgaben', 'en' => 'Christmas Tasks'],
'description' => ['de' => '50 Aufgaben für eine magische Weihnachtszeit.', 'en' => '50 tasks for a magical Christmas season.'],
'is_default' => true,
'position' => 30,
],
'base_tasks' => [
$this->taskDefinition('christmas-1', ['de' => 'Macht ein Foto mit der Person, die das festlichste Outfit trägt.', 'en' => 'Take a photo with the person wearing the most festive outfit.'], $emotions['Stolz'], 10),
$this->taskDefinition('christmas-2', ['de' => 'Fotografiert die schönste Christbaumkugel am Baum.', 'en' => 'Photograph the most beautiful Christmas ball on the tree.'], $emotions['Besinnlichkeit'], 20),
$this->taskDefinition('christmas-3', ['de' => 'Macht ein Selfie mit einer Weihnachtsmütze auf.', 'en' => 'Take a selfie with a Santa hat on.'], $emotions['Freude'], 30),
$this->taskDefinition('christmas-4', ['de' => 'Findet jemanden, der "Last Christmas" liebt (oder hasst) und diskutiert darüber.', 'en' => 'Find someone who loves (or hates) "Last Christmas" and discuss it.'], $emotions['Teamgeist'], 40),
$this->taskDefinition('christmas-5', ['de' => 'Fotografiert einen Moment heimlicher Vorfreude auf die Geschenke.', 'en' => 'Photograph a moment of secret anticipation for the gifts.'], $emotions['Überraschung'], 50),
$this->taskDefinition('christmas-6', ['de' => 'Macht ein Foto von einer herzlichen Familienumarmung.', 'en' => 'Take a photo of a warm family hug.'], $emotions['Liebe'], 60),
$this->taskDefinition('christmas-7', ['de' => 'Fotografiert die leuchtenden Augen eines Kindes beim Anblick des Baumes.', 'en' => 'Photograph the shining eyes of a child at the sight of the tree.'], $emotions['Rührung'], 70),
$this->taskDefinition('christmas-8', ['de' => 'Macht ein Foto von eurem Lieblings-Weihnachtskeks.', 'en' => 'Take a photo of your favorite Christmas cookie.'], $emotions['Freude'], 80),
$this->taskDefinition('christmas-9', ['de' => 'Findet die Person, die am meisten über einen Witz vom Weihnachtsmann lacht.', 'en' => 'Find the person who laughs the most at a joke from Santa.'], $emotions['Ekstase'], 90),
$this->taskDefinition('christmas-10', ['de' => 'Macht ein Foto, das die Wärme und Gemütlichkeit des Raumes einfängt.', 'en' => 'Take a photo that captures the warmth and coziness of the room.'], $emotions['Besinnlichkeit'], 100),
$this->taskDefinition('christmas-11', ['de' => 'Stellt eine Szene aus der Weihnachtsgeschichte oder einem Weihnachtsfilm nach.', 'en' => 'Re-enact a scene from the Christmas story or a Christmas movie.'], $emotions['Teamgeist'], 110),
$this->taskDefinition('christmas-12', ['de' => 'Macht ein Foto mit drei Generationen eurer Familie.', 'en' => 'Take a photo with three generations of your family.'], $emotions['Nostalgie'], 120),
$this->taskDefinition('christmas-13', ['de' => 'Fotografiert das unordentlichste Geschenkpapier nach dem Auspacken.', 'en' => 'Photograph the messiest wrapping paper after unwrapping.'], $emotions['Ekstase'], 130),
$this->taskDefinition('christmas-14', ['de' => 'Findet jemanden, der Socken zu Weihnachten bekommen hat und sich ehrlich freut.', 'en' => 'Find someone who got socks for Christmas and is genuinely happy about it.'], $emotions['Überraschung'], 140),
$this->taskDefinition('christmas-15', ['de' => 'Macht ein Foto, auf dem ihr so tut, als wärt ihr ein Engel auf der Baumspitze.', 'en' => 'Take a photo pretending to be an angel on top of the tree.'], $emotions['Freude'], 150),
$this->taskDefinition('christmas-16', ['de' => 'Fotografiert einen Mistelzweig in Aktion.', 'en' => 'Photograph a mistletoe in action.'], $emotions['Romantik'], 160),
$this->taskDefinition('christmas-17', ['de' => 'Macht ein Foto mit der Person, die das Essen gekocht hat, als Dankeschön.', 'en' => 'Take a photo with the person who cooked the meal as a thank you.'], $emotions['Liebe'], 170),
$this->taskDefinition('christmas-18', ['de' => 'Findet das älteste Stück Weihnachtsschmuck in der Wohnung.', 'en' => 'Find the oldest piece of Christmas decoration in the house.'], $emotions['Nostalgie'], 180),
$this->taskDefinition('christmas-19', ['de' => 'Macht ein Foto, auf dem ihr andächtig einer Weihnachtsgeschichte lauscht.', 'en' => 'Take a photo of you listening intently to a Christmas story.'], $emotions['Besinnlichkeit'], 190),
$this->taskDefinition('christmas-20', ['de' => 'Fotografiert einen Moment des gemeinsamen Singens.', 'en' => 'Photograph a moment of singing together.'], $emotions['Rührung'], 200),
$this->taskDefinition('christmas-21', ['de' => 'Macht ein Gruppenfoto, auf dem alle ihre "hässlichen Weihnachtspullover" zeigen.', 'en' => 'Take a group photo showing off everyone\'s "ugly Christmas sweaters".'], $emotions['Teamgeist'], 210),
$this->taskDefinition('christmas-22', ['de' => 'Findet jemanden, der sich über sein Geschenk am meisten gefreut hat.', 'en' => 'Find someone who was most happy about their gift.'], $emotions['Stolz'], 220),
$this->taskDefinition('christmas-23', ['de' => 'Macht ein Foto von den dampfenden Tassen mit Glühwein oder Kakao.', 'en' => 'Take a photo of the steaming mugs of mulled wine or cocoa.'], $emotions['Freude'], 230),
$this->taskDefinition('christmas-24', ['de' => 'Fotografiert einen Moment der Stille vor der Bescherung.', 'en' => 'Photograph a moment of silence before the gift-giving.'], $emotions['Besinnlichkeit'], 240),
$this->taskDefinition('christmas-25', ['de' => 'Macht ein Foto mit jemandem, der im Dezember Geburtstag hat.', 'en' => 'Take a photo with someone who has a birthday in December.'], $emotions['Überraschung'], 250),
$this->taskDefinition('christmas-26', ['de' => 'Findet das Geschenk mit der schönsten Schleife.', 'en' => 'Find the gift with the most beautiful bow.'], $emotions['Stolz'], 260),
$this->taskDefinition('christmas-27', ['de' => 'Macht ein Foto, das "Frieden auf Erden" symbolisiert.', 'en' => 'Take a photo that symbolizes "Peace on Earth".'], $emotions['Liebe'], 270),
$this->taskDefinition('christmas-28', ['de' => 'Fotografiert die leeren Teller nach dem Weihnachtsessen.', 'en' => 'Photograph the empty plates after Christmas dinner.'], $emotions['Freude'], 280),
$this->taskDefinition('christmas-29', ['de' => 'Macht ein Foto aus der Perspektive eines Geschenks unter dem Baum.', 'en' => 'Take a photo from the perspective of a gift under the tree.'], $emotions['Überraschung'], 290),
$this->taskDefinition('christmas-30', ['de' => 'Findet jemanden, der noch an den Weihnachtsmann glaubt (oder so tut als ob).', 'en' => 'Find someone who still believes in Santa Claus (or pretends to).'], $emotions['Nostalgie'], 300),
$this->taskDefinition('christmas-31', ['de' => 'Macht ein Foto, das die Aufregung beim Würfeln um Geschenke (Wichteln) zeigt.', 'en' => 'Take a photo showing the excitement of dice games for gifts (Secret Santa).'], $emotions['Ekstase'], 310),
$this->taskDefinition('christmas-32', ['de' => 'Fotografiert eine Kerze, die für jemanden brennt, der nicht hier sein kann.', 'en' => 'Photograph a candle burning for someone who cannot be here.'], $emotions['Rührung'], 320),
$this->taskDefinition('christmas-33', ['de' => 'Macht ein Foto mit eurem Lieblingsgeschenk, das ihr bekommen habt.', 'en' => 'Take a photo with your favorite gift you received.'], $emotions['Stolz'], 330),
$this->taskDefinition('christmas-34', ['de' => 'Findet die Person, die am besten "Oh Tannenbaum" singen kann.', 'en' => 'Find the person who can sing "O Christmas Tree" the best.'], $emotions['Teamgeist'], 340),
$this->taskDefinition('christmas-35', ['de' => 'Macht ein Foto, das die Magie des Schneefalls zeigt (falls es schneit).', 'en' => 'Take a photo that shows the magic of snowfall (if it is snowing).'], $emotions['Romantik'], 350),
$this->taskDefinition('christmas-36', ['de' => 'Fotografiert einen Moment, in dem alte Familiengeschichten erzählt werden.', 'en' => 'Photograph a moment when old family stories are being told.'], $emotions['Nostalgie'], 360),
$this->taskDefinition('christmas-37', ['de' => 'Macht ein Foto von jemandem, der ein Nickerchen nach dem Essen macht.', 'en' => 'Take a photo of someone taking a nap after the meal.'], $emotions['Rührung'], 370),
$this->taskDefinition('christmas-38', ['de' => 'Findet das kleinste und das größte Geschenk unter dem Baum.', 'en' => 'Find the smallest and the largest gift under the tree.'], $emotions['Überraschung'], 380),
$this->taskDefinition('christmas-39', ['de' => 'Macht ein Foto, das eure Dankbarkeit für diesen Moment ausdrückt.', 'en' => 'Take a photo that expresses your gratitude for this moment.'], $emotions['Liebe'], 390),
$this->taskDefinition('christmas-40', ['de' => 'Fotografiert die Vorbereitungen in der Küche.', 'en' => 'Photograph the preparations in the kitchen.'], $emotions['Teamgeist'], 400),
$this->taskDefinition('christmas-41', ['de' => 'Macht ein Foto, auf dem ihr versucht, heimlich vom Nachtisch zu naschen.', 'en' => 'Take a photo of you trying to secretly snack on dessert.'], $emotions['Überraschung'], 410),
$this->taskDefinition('christmas-42', ['de' => 'Findet jemanden, der alle Rentiere des Weihnachtsmanns aufzählen kann.', 'en' => 'Find someone who can name all of Santa\'s reindeer.'], $emotions['Stolz'], 420),
$this->taskDefinition('christmas-43', ['de' => 'Macht ein Foto, das die besondere Verbindung zu euren Geschwistern zeigt.', 'en' => 'Take a photo that shows the special bond with your siblings.'], $emotions['Liebe'], 430),
$this->taskDefinition('christmas-44', ['de' => 'Fotografiert den Adventskranz.', 'en' => 'Photograph the Advent wreath.'], $emotions['Besinnlichkeit'], 440),
$this->taskDefinition('christmas-45', ['de' => 'Macht ein Foto von den Fußspuren im Schnee.', 'en' => 'Take a photo of the footprints in the snow.'], $emotions['Nostalgie'], 450),
$this->taskDefinition('christmas-46', ['de' => 'Findet die Person, die am aufgeregtesten ist, einen bestimmten Film zu sehen.', 'en' => 'Find the person who is most excited to see a certain movie.'], $emotions['Ekstase'], 460),
$this->taskDefinition('christmas-47', ['de' => 'Macht ein Foto, das die Freude am Geben zeigt.', 'en' => 'Take a photo that shows the joy of giving.'], $emotions['Liebe'], 470),
$this->taskDefinition('christmas-48', ['de' => 'Fotografiert die Tischdekoration im Detail.', 'en' => 'Photograph the table decoration in detail.'], $emotions['Stolz'], 480),
$this->taskDefinition('christmas-49', ['de' => 'Macht ein Foto von einem handgemachten Geschenk.', 'en' => 'Take a photo of a handmade gift.'], $emotions['Rührung'], 490),
$this->taskDefinition('christmas-50', ['de' => 'Macht ein letztes Gruppenfoto vor dem Weihnachtsbaum, bevor die Feier endet.', 'en' => 'Take a final group photo in front of the Christmas tree before the celebration ends.'], $emotions['Nostalgie'], 500),
],
],
'confirmation' => [
'event_type' => ['slug' => 'confirmation', 'name' => ['de' => 'Konfirmation / Jugendweihe', 'en' => 'Confirmation'], 'icon' => 'lucide-dove'],
'collection' => [
'slug' => 'confirmation-classics-2025',
'name' => ['de' => 'Aufgaben zur Konfirmation/Jugendweihe', 'en' => 'Confirmation Tasks'],
'description' => ['de' => '50 Aufgaben für einen denkwürdigen Tag.', 'en' => '50 tasks for a memorable day.'],
'is_default' => true,
'position' => 40,
],
'base_tasks' => [
$this->taskDefinition('confirmation-1', ['de' => 'Macht ein Foto mit dem Konfirmanden / Jugendweihe-Teilnehmer.', 'en' => 'Take a photo with the confirmand / youth consecration participant.'], $emotions['Stolz'], 10),
$this->taskDefinition('confirmation-2', ['de' => 'Fotografiert die Urkunde oder das Erinnerungsdokument.', 'en' => 'Photograph the certificate or commemorative document.'], $emotions['Stolz'], 20),
$this->taskDefinition('confirmation-3', ['de' => 'Macht ein Foto mit den Paten oder Mentoren.', 'en' => 'Take a photo with the godparents or mentors.'], $emotions['Teamgeist'], 30),
$this->taskDefinition('confirmation-4', ['de' => 'Findet die Großeltern und macht ein Foto, das ihren Stolz zeigt.', 'en' => 'Find the grandparents and take a photo that shows their pride.'], $emotions['Rührung'], 40),
$this->taskDefinition('confirmation-5', ['de' => 'Fotografiert einen Moment des Nachdenkens oder Gebets in der Kirche/am Ort der Feier.', 'en' => 'Photograph a moment of reflection or prayer in the church/at the place of celebration.'], $emotions['Besinnlichkeit'], 50),
$this->taskDefinition('confirmation-6', ['de' => 'Macht ein Gruppenfoto mit allen jungen Leuten, die heute ebenfalls gefeiert werden.', 'en' => 'Take a group photo with all the young people who are also being celebrated today.'], $emotions['Teamgeist'], 60),
$this->taskDefinition('confirmation-7', ['de' => 'Fotografiert die festliche Kleidung des Hauptakteurs im Detail.', 'en' => 'Photograph the festive attire of the main character in detail.'], $emotions['Stolz'], 70),
$this->taskDefinition('confirmation-8', ['de' => 'Macht ein Foto mit einem Gast, der euch einen guten Ratschlag für die Zukunft gibt.', 'en' => 'Take a photo with a guest who gives you good advice for the future.'], $emotions['Besinnlichkeit'], 80),
$this->taskDefinition('confirmation-9', ['de' => 'Findet das schönste Blumenarrangement.', 'en' => 'Find the most beautiful flower arrangement.'], $emotions['Freude'], 90),
$this->taskDefinition('confirmation-10', ['de' => 'Macht ein Foto, das die feierliche Atmosphäre einfängt.', 'en' => 'Take a photo that captures the solemn atmosphere.'], $emotions['Besinnlichkeit'], 100),
$this->taskDefinition('confirmation-11', ['de' => 'Fotografiert den Moment des Anstoßens auf die Zukunft.', 'en' => 'Photograph the moment of toasting to the future.'], $emotions['Stolz'], 110),
$this->taskDefinition('confirmation-12', ['de' => 'Macht ein Foto mit euren Eltern, das ihre Liebe und Unterstützung zeigt.', 'en' => 'Take a photo with your parents that shows their love and support.'], $emotions['Liebe'], 120),
$this->taskDefinition('confirmation-13', ['de' => 'Findet einen Gast, der bei seiner eigenen Konfirmation/Jugendweihe dabei war und fragt nach einer Anekdote.', 'en' => 'Find a guest who was at their own confirmation/youth consecration and ask for an anecdote.'], $emotions['Nostalgie'], 130),
$this->taskDefinition('confirmation-14', ['de' => 'Fotografiert die brennenden Kerzen.', 'en' => 'Photograph the burning candles.'], $emotions['Besinnlichkeit'], 140),
$this->taskDefinition('confirmation-15', ['de' => 'Macht ein Foto, das die Aufregung und Nervosität vor dem großen Moment zeigt.', 'en' => 'Take a photo that shows the excitement and nervousness before the big moment.'], $emotions['Rührung'], 150),
$this->taskDefinition('confirmation-16', ['de' => 'Findet das Gesangbuch oder Programmheft und macht ein Foto davon.', 'en' => 'Find the hymnal or program booklet and take a photo of it.'], $emotions['Nostalgie'], 160),
$this->taskDefinition('confirmation-17', ['de' => 'Macht ein Foto mit dem Pfarrer, Redner oder Organisator der Feier.', 'en' => 'Take a photo with the pastor, speaker or organizer of the celebration.'], $emotions['Teamgeist'], 170),
$this->taskDefinition('confirmation-18', ['de' => 'Fotografiert den Geschenketisch.', 'en' => 'Photograph the gift table.'], $emotions['Überraschung'], 180),
$this->taskDefinition('confirmation-19', ['de' => 'Macht ein Foto, das die Verbindung zwischen den Generationen darstellt.', 'en' => 'Take a photo that represents the connection between generations.'], $emotions['Liebe'], 190),
$this->taskDefinition('confirmation-20', ['de' => 'Findet einen Gast, der dem Konfirmanden/Jugendweihe-Teilnehmer besonders ähnlich sieht.', 'en' => 'Find a guest who looks particularly similar to the confirmand/youth consecration participant.'], $emotions['Überraschung'], 200),
$this->taskDefinition('confirmation-21', ['de' => 'Macht ein Foto von der festlich gedeckten Tafel.', 'en' => 'Take a photo of the festively decorated table.'], $emotions['Stolz'], 210),
$this->taskDefinition('confirmation-22', ['de' => 'Fotografiert einen Moment herzlichen Lachens.', 'en' => 'Photograph a moment of hearty laughter.'], $emotions['Freude'], 220),
$this->taskDefinition('confirmation-23', ['de' => 'Macht ein Foto mit einem Freund, den ihr durch den Konfirmandenunterricht/die Vorbereitung kennengelernt habt.', 'en' => 'Take a photo with a friend you met through confirmation class/preparation.'], $emotions['Teamgeist'], 230),
$this->taskDefinition('confirmation-24', ['de' => 'Findet einen ruhigen Ort und macht ein Foto, das eure Gedanken über die Zukunft festhält.', 'en' => 'Find a quiet place and take a photo that captures your thoughts about the future.'], $emotions['Besinnlichkeit'], 240),
$this->taskDefinition('confirmation-25', ['de' => 'Macht ein Foto, das "ein neuer Lebensabschnitt beginnt" symbolisiert.', 'en' => 'Take a photo that symbolizes "a new chapter in life begins".'], $emotions['Stolz'], 250),
$this->taskDefinition('confirmation-26', ['de' => 'Fotografiert die Glückwunschkarten.', 'en' => 'Photograph the greeting cards.'], $emotions['Liebe'], 260),
$this->taskDefinition('confirmation-27', ['de' => 'Macht ein Foto mit jemandem, der ein Kreuz oder ein anderes Symbol des Tages trägt.', 'en' => 'Take a photo with someone wearing a cross or other symbol of the day.'], $emotions['Teamgeist'], 270),
$this->taskDefinition('confirmation-28', ['de' => 'Findet einen Gast, der eine besonders rührende Geschichte erzählen kann.', 'en' => 'Find a guest who can tell a particularly touching story.'], $emotions['Rührung'], 280),
$this->taskDefinition('confirmation-29', ['de' => 'Macht ein Foto von den Schuhen bereit für den neuen Weg.', 'en' => 'Take a photo of the shoes ready for the new path.'], $emotions['Stolz'], 290),
$this->taskDefinition('confirmation-30', ['de' => 'Fotografiert die Torte oder das Dessertbuffet.', 'en' => 'Photograph the cake or dessert buffet.'], $emotions['Freude'], 300),
$this->taskDefinition('confirmation-31', ['de' => 'Macht ein Foto, das die Erleichterung nach dem offiziellen Teil zeigt.', 'en' => 'Take a photo that shows the relief after the official part.'], $emotions['Ekstase'], 310),
$this->taskDefinition('confirmation-32', ['de' => 'Findet den Gast, der den weitesten Weg auf sich genommen hat.', 'en' => 'Find a guest who has traveled the farthest.'], $emotions['Stolz'], 320),
$this->taskDefinition('confirmation-33', ['de' => 'Macht ein Foto, das Dankbarkeit ausdrückt.', 'en' => 'Take a photo that expresses gratitude.'], $emotions['Liebe'], 330),
$this->taskDefinition('confirmation-34', ['de' => 'Fotografiert ein Detail der Architektur des Feierortes.', 'en' => 'Photograph a detail of the architecture of the celebration venue.'], $emotions['Besinnlichkeit'], 340),
$this->taskDefinition('confirmation-35', ['de' => 'Macht ein Foto mit euren Geschwistern.', 'en' => 'Take a photo with your siblings.'], $emotions['Liebe'], 350),
$this->taskDefinition('confirmation-36', ['de' => 'Findet jemanden, der ein altes Foto von euch als Kind dabei hat.', 'en' => 'Find someone who has an old photo of you as a child.'], $emotions['Nostalgie'], 360),
$this->taskDefinition('confirmation-37', ['de' => 'Macht ein Foto, das die Freude über ein besonderes Geschenk zeigt.', 'en' => 'Take a photo that shows the joy of a special gift.'], $emotions['Überraschung'], 370),
$this->taskDefinition('confirmation-38', ['de' => 'Fotografiert die Hände eurer Eltern, die euch halten.', 'en' => 'Photograph your parents\' hands holding you.'], $emotions['Rührung'], 380),
$this->taskDefinition('confirmation-39', ['de' => 'Macht ein Foto, auf dem ihr in den Himmel schaut und an die Zukunft denkt.', 'en' => 'Take a photo of you looking at the sky and thinking about the future.'], $emotions['Besinnlichkeit'], 390),
$this->taskDefinition('confirmation-40', ['de' => 'Findet die Person mit dem besten Ratschlag für das Erwachsenwerden.', 'en' => 'Find the person with the best advice for growing up.'], $emotions['Teamgeist'], 400),
$this->taskDefinition('confirmation-41', ['de' => 'Macht ein Foto, das die Freundschaften feiert, die euch bis hierher begleitet haben.', 'en' => 'Take a photo that celebrates the friendships that have accompanied you this far.'], $emotions['Liebe'], 410),
$this->taskDefinition('confirmation-42', ['de' => 'Fotografiert die Musikinstrumente, die gespielt werden (Orgel, Klavier etc.).', 'en' => 'Photograph the musical instruments being played (organ, piano, etc.).'], $emotions['Rührung'], 420),
$this->taskDefinition('confirmation-43', ['de' => 'Macht ein Foto von einem Lächeln, das von Herzen kommt.', 'en' => 'Take a photo of a smile that comes from the heart.'], $emotions['Freude'], 430),
$this->taskDefinition('confirmation-44', ['de' => 'Findet einen Gegenstand, der für euch persönlich diesen Tag symbolisiert.', 'en' => 'Find an object that personally symbolizes this day for you.'], $emotions['Nostalgie'], 440),
$this->taskDefinition('confirmation-45', ['de' => 'Macht ein Foto, das die Aufbruchstimmung des Tages einfängt.', 'en' => 'Take a photo that captures the spirit of optimism of the day.'], $emotions['Ekstase'], 450),
$this->taskDefinition('confirmation-46', ['de' => 'Fotografiert die Dekoration, die von der Familie selbst gemacht wurde.', 'en' => 'Photograph the decoration that was made by the family themselves.'], $emotions['Stolz'], 460),
$this->taskDefinition('confirmation-47', ['de' => 'Macht ein Foto mit der Person, die euch heute am meisten zum Lachen gebracht hat.', 'en' => 'Take a photo with the person who made you laugh the most today.'], $emotions['Freude'], 470),
$this->taskDefinition('confirmation-48', ['de' => 'Findet einen Moment, um dem Hauptakteur des Tages im Stillen alles Gute zu wünschen.', 'en' => 'Find a moment to silently wish the main character of the day all the best.'], $emotions['Liebe'], 480),
$this->taskDefinition('confirmation-49', ['de' => 'Fotografiert die leeren Plätze nach dem Ende der Zeremonie.', 'en' => 'Photograph the empty seats after the end of the ceremony.'], $emotions['Nostalgie'], 490),
$this->taskDefinition('confirmation-50', ['de' => 'Macht ein letztes Foto des Tages, das den Übergang in einen neuen Lebensabschnitt festhält.', 'en' => 'Take a final photo of the day that captures the transition to a new chapter in life.'], $emotions['Stolz'], 500),
],
],
'graduation' => [
'event_type' => ['slug' => 'graduation', 'name' => ['de' => 'Schulabschluss', 'en' => 'Graduation'], 'icon' => 'lucide-graduation-cap'],
'collection' => [
'slug' => 'graduation-classics-2025',
'name' => ['de' => 'Aufgaben zum Schulabschluss', 'en' => 'Graduation Tasks'],
'description' => ['de' => '50 Aufgaben, um das Ende der Schulzeit zu feiern.', 'en' => '50 tasks to celebrate the end of school.'],
'is_default' => true,
'position' => 50,
],
'base_tasks' => [
$this->taskDefinition('graduation-1', ['de' => 'Werft eure Hüte in die Luft!', 'en' => 'Throw your hats in the air!'], $emotions['Ekstase'], 10),
$this->taskDefinition('graduation-2', ['de' => 'Macht ein Foto mit eurem Abschlusszeugnis.', 'en' => 'Take a photo with your diploma.'], $emotions['Stolz'], 20),
$this->taskDefinition('graduation-3', ['de' => 'Umarme deine besten Schulfreunde für ein Gruppenfoto.', 'en' => 'Hug your best school friends for a group photo.'], $emotions['Liebe'], 30),
$this->taskDefinition('graduation-4', ['de' => 'Macht ein Foto mit eurem Lieblingslehrer.', 'en' => 'Take a photo with your favorite teacher.'], $emotions['Rührung'], 40),
$this->taskDefinition('graduation-5', ['de' => 'Findet eure Eltern und macht ein Foto, das ihren Stolz zeigt.', 'en' => 'Find your parents and take a photo that shows their pride.'], $emotions['Stolz'], 50),
$this->taskDefinition('graduation-6', ['de' => 'Stellt ein Foto vom ersten Schultag nach.', 'en' => 'Recreate a photo from the first day of school.'], $emotions['Nostalgie'], 60),
$this->taskDefinition('graduation-7', ['de' => 'Macht ein Foto, auf dem ihr so tut, als würdet ihr für eine Prüfung lernen.', 'en' => 'Take a photo pretending to study for an exam.'], $emotions['Nostalgie'], 70),
$this->taskDefinition('graduation-8', ['de' => 'Findet jemanden, mit dem ihr seit der Grundschule in einer Klasse wart.', 'en' => 'Find someone you have been in a class with since elementary school.'], $emotions['Nostalgie'], 80),
$this->taskDefinition('graduation-9', ['de' => 'Macht ein Foto mit eurem "Partner in Crime" aus der Schulzeit.', 'en' => 'Take a photo with your "partner in crime" from school.'], $emotions['Teamgeist'], 90),
$this->taskDefinition('graduation-10', ['de' => 'Fotografiert die Unterschrift eures Lieblingslehrers auf eurem Zeugnis oder Jahrbuch.', 'en' => 'Photograph the signature of your favorite teacher on your report card or yearbook.'], $emotions['Stolz'], 100),
$this->taskDefinition('graduation-11', ['de' => 'Macht ein Foto, das eure Pläne für die Zukunft symbolisiert (z.B. mit einem Reiseführer, einem Lehrbuch).', 'en' => 'Take a photo that symbolizes your plans for the future (e.g. with a travel guide, a textbook).'], $emotions['Besinnlichkeit'], 110),
$this->taskDefinition('graduation-12', ['de' => 'Findet die Person, die die verrücktesten Pläne nach dem Abschluss hat.', 'en' => 'Find the person with the craziest plans after graduation.'], $emotions['Überraschung'], 120),
$this->taskDefinition('graduation-13', ['de' => 'Macht ein Gruppenfoto mit eurer gesamten Clique.', 'en' => 'Take a group photo with your entire clique.'], $emotions['Teamgeist'], 130),
$this->taskDefinition('graduation-14', ['de' => 'Fotografiert einen Moment, in dem Tränen des Abschieds und der Freude fließen.', 'en' => 'Photograph a moment when tears of farewell and joy are flowing.'], $emotions['Rührung'], 140),
$this->taskDefinition('graduation-15', ['de' => 'Macht ein Foto, auf dem ihr auf die bestandenen Prüfungen anstoßt.', 'en' => 'Take a photo toasting to the passed exams.'], $emotions['Ekstase'], 150),
$this->taskDefinition('graduation-16', ['de' => 'Findet den Ort auf dem Schulgelände, an dem ihr die meiste Zeit verbracht habt.', 'en' => 'Find the place on the school grounds where you spent the most time.'], $emotions['Nostalgie'], 160),
$this->taskDefinition('graduation-17', ['de' => 'Macht ein Foto mit jemandem aus eurem Abschlussball-Komitee oder Organisationsteam.', 'en' => 'Take a photo with someone from your prom committee or organizing team.'], $emotions['Teamgeist'], 170),
$this->taskDefinition('graduation-18', ['de' => 'Fotografiert die Schuhe, die ihr auf dem Abschlussball tragt.', 'en' => 'Photograph the shoes you wear to the prom.'], $emotions['Stolz'], 180),
$this->taskDefinition('graduation-19', ['de' => 'Macht ein Foto, das die Erleichterung nach der letzten Prüfung zeigt.', 'en' => 'Take a photo that shows the relief after the last exam.'], $emotions['Ekstase'], 190),
$this->taskDefinition('graduation-20', ['de' => 'Findet jemanden, der den gleichen Studien- oder Berufswunsch hat.', 'en' => 'Find someone who has the same study or career aspirations.'], $emotions['Teamgeist'], 200),
$this->taskDefinition('graduation-21', ['de' => 'Macht ein Foto, auf dem ihr euren Eltern für ihre Unterstützung dankt.', 'en' => 'Take a photo thanking your parents for their support.'], $emotions['Liebe'], 210),
$this->taskDefinition('graduation-22', ['de' => 'Fotografiert das Cover eures Jahrbuchs.', 'en' => 'Photograph the cover of your yearbook.'], $emotions['Nostalgie'], 220),
$this->taskDefinition('graduation-23', ['de' => 'Macht ein Foto mit jemandem, den ihr erst im letzten Schuljahr richtig kennengelernt habt.', 'en' => 'Take a photo with someone you only really got to know in the last school year.'], $emotions['Überraschung'], 230),
$this->taskDefinition('graduation-24', ['de' => 'Findet die Person mit dem extravagantesten Outfit.', 'en' => 'Find the person with the most extravagant outfit.'], $emotions['Stolz'], 240),
$this->taskDefinition('graduation-25', ['de' => 'Macht ein Foto, das die Freiheit nach der Schule symbolisiert.', 'en' => 'Take a photo that symbolizes freedom after school.'], $emotions['Freude'], 250),
$this->taskDefinition('graduation-26', ['de' => 'Fotografiert einen Lehrer, der sichtlich gerührt ist.', 'en' => 'Photograph a teacher who is visibly moved.'], $emotions['Rührung'], 260),
$this->taskDefinition('graduation-27', ['de' => 'Macht ein Foto mit euren Geschwistern.', 'en' => 'Take a photo with your siblings.'], $emotions['Liebe'], 270),
$this->taskDefinition('graduation-28', ['de' => 'Findet den "Klassenclown" für ein lustiges Foto.', 'en' => 'Find the "class clown" for a funny photo.'], $emotions['Freude'], 280),
$this->taskDefinition('graduation-29', ['de' => 'Macht ein Foto, das eure Freundschaft für immer festhält.', 'en' => 'Take a photo that captures your friendship forever.'], $emotions['Liebe'], 290),
$this->taskDefinition('graduation-30', ['de' => 'Fotografiert die leere Aula oder das leere Klassenzimmer.', 'en' => 'Photograph the empty auditorium or the empty classroom.'], $emotions['Besinnlichkeit'], 300),
$this->taskDefinition('graduation-31', ['de' => 'Macht ein Foto, auf dem ihr so tut, als würdet ihr die Schule "sprengen".', 'en' => 'Take a photo pretending to "blow up" the school.'], $emotions['Ekstase'], 310),
$this->taskDefinition('graduation-32', ['de' => 'Findet jemanden, der während der Rede des Schulleiters eingeschlafen ist.', 'en' => 'Find someone who fell asleep during the principal\'s speech.'], $emotions['Überraschung'], 320),
$this->taskDefinition('graduation-33', ['de' => 'Macht ein Foto mit der Person, von der ihr am meisten abgeschrieben habt (oder umgekehrt).', 'en' => 'Take a photo with the person you copied from the most (or vice versa).'], $emotions['Teamgeist'], 330),
$this->taskDefinition('graduation-34', ['de' => 'Fotografiert die Dekoration der Abschlussfeier.', 'en' => 'Photograph the decoration of the graduation ceremony.'], $emotions['Freude'], 340),
$this->taskDefinition('graduation-35', ['de' => 'Macht ein Foto, das den Sonnenaufgang nach einer langen Partynacht zeigt.', 'en' => 'Take a photo that shows the sunrise after a long night of partying.'], $emotions['Nostalgie'], 350),
$this->taskDefinition('graduation-36', ['de' => 'Findet den Lehrer, der euch am meisten inspiriert hat.', 'en' => 'Find the teacher who inspired you the most.'], $emotions['Rührung'], 360),
$this->taskDefinition('graduation-37', ['de' => 'Macht ein Foto, das euren Traumjob darstellt.', 'en' => 'Take a photo that represents your dream job.'], $emotions['Besinnlichkeit'], 370),
$this->taskDefinition('graduation-38', ['de' => 'Fotografiert die peinlichste Tanz-Einlage des Abends.', 'en' => 'Photograph the most embarrassing dance performance of the evening.'], $emotions['Ekstase'], 380),
$this->taskDefinition('graduation-39', ['de' => 'Macht ein Foto mit jemandem, der plant, die Welt zu bereisen.', 'en' => 'Take a photo with someone who plans to travel the world.'], $emotions['Überraschung'], 390),
$this->taskDefinition('graduation-40', ['de' => 'Findet euren Sitznachbarn aus der letzten Reihe.', 'en' => 'Find your seatmate from the back row.'], $emotions['Nostalgie'], 400),
$this->taskDefinition('graduation-41', ['de' => 'Macht ein Foto, das den Moment des Abschieds von einem guten Freund festhält.', 'en' => 'Take a photo that captures the moment of saying goodbye to a good friend.'], $emotions['Rührung'], 410),
$this->taskDefinition('graduation-42', ['de' => 'Fotografiert das Buffet oder die Getränkebar.', 'en' => 'Photograph the buffet or the beverage bar.'], $emotions['Freude'], 420),
$this->taskDefinition('graduation-43', ['de' => 'Macht ein Foto, das zeigt, wie ihr eure Schulbücher "wegwerft".', 'en' => 'Take a photo that shows you "throwing away" your school books.'], $emotions['Freude'], 430),
$this->taskDefinition('graduation-44', ['de' => 'Findet jemanden, der den gleichen Notendurchschnitt hat wie ihr.', 'en' => 'Find someone who has the same grade point average as you.'], $emotions['Teamgeist'], 440),
$this->taskDefinition('graduation-45', ['de' => 'Macht ein Foto, das die Aufregung vor dem Betreten der Bühne zeigt.', 'en' => 'Take a photo that shows the excitement before going on stage.'], $emotions['Stolz'], 450),
$this->taskDefinition('graduation-46', ['de' => 'Fotografiert die stolzen Gesichter eurer Großeltern.', 'en' => 'Photograph the proud faces of your grandparents.'], $emotions['Rührung'], 460),
$this->taskDefinition('graduation-47', ['de' => 'Macht ein Foto, das "Die Welt gehört uns" schreit.', 'en' => 'Take a photo that screams "The world is ours".'], $emotions['Ekstase'], 470),
$this->taskDefinition('graduation-48', ['de' => 'Findet einen ruhigen Moment und reflektiert über die vergangene Zeit.', 'en' => 'Find a quiet moment and reflect on the past time.'], $emotions['Besinnlichkeit'], 480),
$this->taskDefinition('graduation-49', ['de' => 'Macht ein Foto mit der Person, die ihr am meisten vermissen werdet.', 'en' => 'Take a photo with the person you will miss the most.'], $emotions['Liebe'], 490),
$this->taskDefinition('graduation-50', ['de' => 'Macht ein letztes gemeinsames Foto als "Abschlussklasse von...".', 'en' => 'Take a final group photo as "Graduating Class of...".'], $emotions['Teamgeist'], 500),
],
],
'corporate' => [
'event_type' => ['slug' => 'corporate', 'name' => ['de' => 'Firma', 'en' => 'Corporate'], 'icon' => 'lucide-briefcase'],
'collection' => [
'slug' => 'corporate-classics-2025',
'name' => ['de' => 'Firmen-Aufgaben', 'en' => 'Corporate Tasks'],
'description' => ['de' => '50 Aufgaben für das nächste Firmenevent.', 'en' => '50 tasks for the next corporate event.'],
'is_default' => true,
'position' => 60,
],
'base_tasks' => [
$this->taskDefinition('corporate-1', ['de' => 'Macht ein Foto mit eurem direkten Team.', 'en' => 'Take a photo with your direct team.'], $emotions['Teamgeist'], 10),
$this->taskDefinition('corporate-2', ['de' => 'Findet den CEO oder einen hochrangigen Manager für ein Selfie.', 'en' => 'Find the CEO or a senior manager for a selfie.'], $emotions['Stolz'], 20),
$this->taskDefinition('corporate-3', ['de' => 'Macht ein Foto mit jemandem aus einer anderen Abteilung, den ihr heute kennengelernt habt.', 'en' => 'Take a photo with someone from another department that you met today.'], $emotions['Teamgeist'], 30),
$this->taskDefinition('corporate-4', ['de' => 'Fotografiert das Firmenlogo aus einer kreativen Perspektive.', 'en' => 'Photograph the company logo from a creative perspective.'], $emotions['Stolz'], 40),
$this->taskDefinition('corporate-5', ['de' => 'Macht ein Foto, auf dem ihr auf einen gemeinsamen Erfolg anstoßt.', 'en' => 'Take a photo toasting to a common success.'], $emotions['Stolz'], 50),
$this->taskDefinition('corporate-6', ['de' => 'Findet die Person, die am längsten im Unternehmen ist.', 'en' => 'Find the person who has been with the company the longest.'], $emotions['Nostalgie'], 60),
$this->taskDefinition('corporate-7', ['de' => 'Macht ein Foto mit einem neuen Mitarbeiter.', 'en' => 'Take a photo with a new employee.'], $emotions['Teamgeist'], 70),
$this->taskDefinition('corporate-8', ['de' => 'Fotografiert einen Moment intensiven Networkings.', 'en' => 'Photograph a moment of intense networking.'], $emotions['Besinnlichkeit'], 80),
$this->taskDefinition('corporate-9', ['de' => 'Macht ein Foto, das die Werte eures Unternehmens darstellt.', 'en' => 'Take a photo that represents your company\'s values.'], $emotions['Besinnlichkeit'], 90),
$this->taskDefinition('corporate-10', ['de' => 'Findet die Person mit dem lustigsten Jobtitel.', 'en' => 'Find the person with the funniest job title.'], $emotions['Überraschung'], 100),
$this->taskDefinition('corporate-11', ['de' => 'Macht ein Foto, das die gute Stimmung auf dem Event einfängt.', 'en' => 'Take a photo that captures the good mood at the event.'], $emotions['Freude'], 110),
$this->taskDefinition('corporate-12', ['de' => 'Fotografiert die Präsentation oder Rede, die euch am meisten inspiriert hat.', 'en' => 'Photograph the presentation or speech that inspired you the most.'], $emotions['Besinnlichkeit'], 120),
$this->taskDefinition('corporate-13', ['de' => 'Macht ein Foto mit eurem "Work-Buddy" oder Büro-Freund.', 'en' => 'Take a photo with your "work buddy" or office friend.'], $emotions['Liebe'], 130),
$this->taskDefinition('corporate-14', ['de' => 'Findet das Team, das einen Preis oder eine Auszeichnung gewonnen hat.', 'en' => 'Find the team that won a prize or award.'], $emotions['Stolz'], 140),
$this->taskDefinition('corporate-15', ['de' => 'Macht ein Foto, das "Innovation" symbolisiert.', 'en' => 'Take a photo that symbolizes "innovation".'], $emotions['Überraschung'], 150),
$this->taskDefinition('corporate-16', ['de' => 'Fotografiert das Buffet und stellt euren Lieblingsteller zusammen.', 'en' => 'Photograph the buffet and put together your favorite plate.'], $emotions['Freude'], 160),
$this->taskDefinition('corporate-17', ['de' => 'Macht ein Foto mit jemandem, der die gleiche Krawatte oder das gleiche Kleid trägt.', 'en' => 'Take a photo with someone wearing the same tie or dress.'], $emotions['Überraschung'], 170),
$this->taskDefinition('corporate-18', ['de' => 'Findet die Person, die für die Organisation des Events verantwortlich ist, und bedankt euch.', 'en' => 'Find the person responsible for organizing the event and thank them.'], $emotions['Teamgeist'], 180),
$this->taskDefinition('corporate-19', ['de' => 'Macht ein Foto, das die Internationalität eures Unternehmens zeigt (mit Kollegen aus verschiedenen Ländern).', 'en' => 'Take a photo that shows the internationality of your company (with colleagues from different countries).'], $emotions['Teamgeist'], 190),
$this->taskDefinition('corporate-20', ['de' => 'Fotografiert einen Moment herzhaften Lachens unter Kollegen.', 'en' => 'Photograph a moment of hearty laughter among colleagues.'], $emotions['Freude'], 200),
$this->taskDefinition('corporate-21', ['de' => 'Macht ein Foto, auf dem ihr so tut, als würdet ihr einen wichtigen Vertrag unterzeichnen.', 'en' => 'Take a photo pretending to sign an important contract.'], $emotions['Stolz'], 210),
$this->taskDefinition('corporate-22', ['de' => 'Findet die Person, die am besten tanzen kann.', 'en' => 'Find the person who can dance the best.'], $emotions['Ekstase'], 220),
$this->taskDefinition('corporate-23', ['de' => 'Macht ein Foto, das die "Work-Life-Balance" auf dem Event darstellt.', 'en' => 'Take a photo that represents the "work-life balance" at the event.'], $emotions['Freude'], 230),
$this->taskDefinition('corporate-24', ['de' => 'Fotografiert die Location oder die Dekoration, die euch am besten gefällt.', 'en' => 'Photograph the location or the decoration that you like the most.'], $emotions['Besinnlichkeit'], 240),
$this->taskDefinition('corporate-25', ['de' => 'Macht ein Foto mit eurem Mentor oder jemandem, von dem ihr viel gelernt habt.', 'en' => 'Take a photo with your mentor or someone you have learned a lot from.'], $emotions['Rührung'], 250),
$this->taskDefinition('corporate-26', ['de' => 'Findet die Person, die den weitesten Weg zum Event hatte.', 'en' => 'Find the person who had the longest way to the event.'], $emotions['Stolz'], 260),
$this->taskDefinition('corporate-27', ['de' => 'Macht ein Foto, das einen Moment der Zusammenarbeit zeigt.', 'en' => 'Take a photo that shows a moment of collaboration.'], $emotions['Teamgeist'], 270),
$this->taskDefinition('corporate-28', ['de' => 'Fotografiert die "Goodie-Bag" oder das Werbegeschenk.', 'en' => 'Photograph the "goodie bag" or the promotional gift.'], $emotions['Überraschung'], 280),
$this->taskDefinition('corporate-29', ['de' => 'Macht ein Foto mit jemandem aus dem IT-Support sie sind die wahren Helden.', 'en' => 'Take a photo with someone from IT support they are the real heroes.'], $emotions['Teamgeist'], 290),
$this->taskDefinition('corporate-30', ['de' => 'Findet die Person, die immer Kaffee für alle kocht.', 'en' => 'Find the person who always makes coffee for everyone.'], $emotions['Liebe'], 300),
$this->taskDefinition('corporate-31', ['de' => 'Macht ein Foto, das den Erfolg des letzten Quartals feiert.', 'en' => 'Take a photo that celebrates the success of the last quarter.'], $emotions['Ekstase'], 310),
$this->taskDefinition('corporate-32', ['de' => 'Fotografiert einen Moment, in dem jemand eine anerkennende Rede hält.', 'en' => 'Photograph a moment when someone gives an appreciative speech.'], $emotions['Rührung'], 320),
$this->taskDefinition('corporate-33', ['de' => 'Macht ein Foto, das die Zukunft des Unternehmens symbolisiert.', 'en' => 'Take a photo that symbolizes the future of the company.'], $emotions['Besinnlichkeit'], 330),
$this->taskDefinition('corporate-34', ['de' => 'Findet die Person, die am elegantesten gekleidet ist.', 'en' => 'Find the person who is most elegantly dressed.'], $emotions['Stolz'], 340),
$this->taskDefinition('corporate-35', ['de' => 'Macht ein Foto, das den "Feierabend"-Moment nach dem offiziellen Teil zeigt.', 'en' => 'Take a photo that shows the "end of work" moment after the official part.'], $emotions['Ekstase'], 350),
$this->taskDefinition('corporate-36', ['de' => 'Fotografiert die Visitenkarten, die ihr gesammelt habt.', 'en' => 'Photograph the business cards you have collected.'], $emotions['Nostalgie'], 360),
$this->taskDefinition('corporate-37', ['de' => 'Macht ein Foto mit jemandem, mit dem ihr nur per E-Mail kommuniziert habt und den ihr jetzt persönlich trefft.', 'en' => 'Take a photo with someone you have only communicated with via email and whom you are now meeting in person.'], $emotions['Überraschung'], 370),
$this->taskDefinition('corporate-38', ['de' => 'Findet die Person, die am meisten zum Erfolg eures letzten Projekts beigetragen hat.', 'en' => 'Find the person who contributed the most to the success of your last project.'], $emotions['Stolz'], 380),
$this->taskDefinition('corporate-39', ['de' => 'Macht ein Foto, das die entspannte Seite eures Chefs zeigt.', 'en' => 'Take a photo that shows the relaxed side of your boss.'], $emotions['Überraschung'], 390),
$this->taskDefinition('corporate-40', ['de' => 'Fotografiert die Band oder den DJ.', 'en' => 'Photograph the band or the DJ.'], $emotions['Freude'], 400),
$this->taskDefinition('corporate-41', ['de' => 'Macht ein Foto, das den Team-Zusammenhalt perfekt einfängt.', 'en' => 'Take a photo that perfectly captures team spirit.'], $emotions['Teamgeist'], 410),
$this->taskDefinition('corporate-42', ['de' => 'Findet einen ehemaligen Mitarbeiter, der zu Besuch ist.', 'en' => 'Find a former employee who is visiting.'], $emotions['Nostalgie'], 420),
$this->taskDefinition('corporate-43', ['de' => 'Macht ein Foto, das eure Motivation für das nächste Geschäftsjahr zeigt.', 'en' => 'Take a photo that shows your motivation for the next business year.'], $emotions['Stolz'], 430),
$this->taskDefinition('corporate-44', ['de' => 'Fotografiert einen Moment, in dem neue Ideen gesponnen werden.', 'en' => 'Photograph a moment when new ideas are being spun.'], $emotions['Besinnlichkeit'], 440),
$this->taskDefinition('corporate-45', ['de' => 'Macht ein Foto mit der Person, die euch heute am meisten zum Lachen gebracht hat.', 'en' => 'Take a photo with the person who made you laugh the most today.'], $emotions['Freude'], 450),
$this->taskDefinition('corporate-46', ['de' => 'Findet die "gute Seele" eurer Abteilung.', 'en' => 'Find the "good soul" of your department.'], $emotions['Liebe'], 460),
$this->taskDefinition('corporate-47', ['de' => 'Macht ein Foto, das die Erleichterung nach einer erfolgreichen Präsentation zeigt.', 'en' => 'Take a photo that shows the relief after a successful presentation.'], $emotions['Ekstase'], 470),
$this->taskDefinition('corporate-48', ['de' => 'Fotografiert einen rührenden Moment, z.B. die Verabschiedung eines langjährigen Kollegen.', 'en' => 'Photograph a touching moment, e.g. the farewell of a long-standing colleague.'], $emotions['Rührung'], 480),
$this->taskDefinition('corporate-49', ['de' => 'Macht ein Foto, das zeigt, dass eure Firma mehr als nur ein Arbeitsplatz ist.', 'en' => 'Take a photo that shows that your company is more than just a place to work.'], $emotions['Liebe'], 490),
$this->taskDefinition('corporate-50', ['de' => 'Macht ein letztes Gruppenfoto, das die Energie des Events festhält.', 'en' => 'Take a final group photo that captures the energy of the event.'], $emotions['Teamgeist'], 500),
],
],
];
}
private function taskDefinition(string $slug, array $title, ?array $emotion, int $sortOrder): array
{
return [
'slug' => $slug,
'title' => $title,
'description' => null,
'example' => null,
'emotion' => $emotion,
'difficulty' => 'easy',
'sort_order' => $sortOrder,
];
}
private function upsertTask(TaskCollection $collection, EventType $eventType, array $definition, int $sortOrder): Task
{
$emotion = $this->ensureEmotion($definition['emotion'] ?? [], $eventType->id);
$task = Task::updateOrCreate(
['slug' => $definition['slug']],
[
'tenant_id' => null,
'event_type_id' => $eventType->id,
'collection_id' => $collection->id,
'emotion_id' => $emotion?->id,
'title' => $definition['title'],
'description' => $definition['description'] ?? null,
'example_text' => $definition['example'] ?? null,
'difficulty' => $definition['difficulty'] ?? 'easy',
'priority' => $definition['priority'] ?? 'medium',
'sort_order' => $definition['sort_order'] ?? $sortOrder,
'is_active' => true,
'is_completed' => false,
]
);
if ($task->collection_id !== $collection->id) {
$task->collection_id = $collection->id;
$task->save();
}
return $task;
}
protected function ensureEventType(array $definition): EventType
{
return EventType::updateOrCreate(
['slug' => $definition['slug']],
[
'name' => $definition['name'],
'icon' => $definition['icon'] ?? null,
]
);
}
protected function ensureEmotion(array $definition, ?int $eventTypeId): ?Emotion
{
if (empty($definition)) {
return null;
}
$query = Emotion::query();
$name = $definition['name'] ?? [];
if (isset($name['en'])) {
$query->orWhere('name->en', $name['en']);
}
if (isset($name['de'])) {
$query->orWhere('name->de', $name['de']);
}
$emotion = $query->first();
if (! $emotion) {
$emotion = Emotion::create([
'name' => $name,
'icon' => $definition['icon'] ?? 'lucide-smile',
'color' => $definition['color'] ?? '#6366f1',
'description' => $definition['description'] ?? null,
'sort_order' => $definition['sort_order'] ?? 0,
'is_active' => true,
]);
}
if ($eventTypeId && ! $emotion->eventTypes()->where('event_type_id', $eventTypeId)->exists()) {
$emotion->eventTypes()->attach($eventTypeId);
}
return $emotion;
}
}