HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: /home/xedaptot/ai.naniguide.com/database/seeders/Demo/Stage12_FormsSeeder.php
<?php

namespace Database\Seeders\Demo;

use App\Model\Form;
use App\Model\FormTemplate;

/**
 * Stage 12 — signup forms (one or two per customer, attached to first list).
 */
class Stage12_FormsSeeder extends AbstractDemoSeeder
{
    protected int $fakerOffset = 12;

    public function run(): void
    {
        $f = $this->faker();
        $customers = Stage03_CustomersSeeder::$created;
        $created = 0;

        // Default form template — every form needs one or the builder crashes
        $defaultFormTemplate = FormTemplate::first();
        $defaultTemplate = $defaultFormTemplate?->template;

        foreach (DemoConfig::customers() as $cfg) {
            $customer = $customers[$cfg['key']] ?? null;
            $lists = Stage07_MailListsSeeder::$created[$cfg['key']] ?? [];
            if (!$customer || empty($lists)) continue;

            $count = $cfg['forms'] ?? 0;
            for ($i = 0; $i < $count; $i++) {
                $list = $lists[$i % count($lists)];
                $form = new Form();
                $form->customer_id  = $customer->id;
                $form->mail_list_id = $list->id;
                $form->name         = $f->randomElement(['Newsletter Signup', 'Get Notified', 'Join Our List', 'Subscribe Now', 'Free Trial Signup']) . ' #' . ($i + 1);
                $form->status       = $f->randomElement(['active', 'active', 'active', 'inactive']);
                $form->metadata     = json_encode([
                    'description' => 'Demo signup form for ' . $cfg['company'],
                    'fields'      => ['EMAIL', 'FIRST_NAME', 'LAST_NAME'],
                    'theme'       => $f->randomElement(['light', 'dark', 'minimal']),
                ]);
                $form->save();

                if ($defaultTemplate) {
                    $form->setTemplate($defaultTemplate, $form->name);
                }
                $created++;
            }
        }
        $this->log("seeded {$created} forms");
    }
}