<?php

namespace Database\Factories;

use App\Enums\LandingPageVersion;
use App\Models\LandingPage;
use App\Models\LandingPageGeneration;
use Illuminate\Database\Eloquent\Factories\Factory;

/**
 * @extends Factory<LandingPage>
 */
class LandingPageFactory extends Factory
{
    /**
     * @return array<string, mixed>
     */
    public function definition(): array
    {
        return [
            'landing_page_generation_id' => LandingPageGeneration::factory(),
            'version' => LandingPageVersion::ProblemSolution,
            'template' => '',
            'title' => null,
            'status' => 'queued',
            'html' => null,
            'css' => null,
            'js' => null,
            'prompt_used' => null,
            'failure_reason' => null,
        ];
    }

    public function completed(): static
    {
        return $this->state(fn (array $attributes) => [
            'status' => 'completed',
            'html' => '<section><h1>Catalog product</h1></section>',
            'css' => '',
            'js' => '',
        ]);
    }
}
