*/ class CmsProjectFactory extends Factory { protected $model = CmsProject::class; public function definition(): array { $title = fake()->words(3, true); return [ 'slug' => Str::slug($title).'-'.fake()->unique()->numberBetween(100, 999), 'title' => ucfirst($title), 'location' => fake()->city().', '.fake()->country(), 'status' => fake()->randomElement(['NEW LAUNCH', 'SOLD OUT', 'AVAILABLE', null]), 'launch_date' => fake()->dateTimeBetween('-1 year', '+1 year'), 'price_from_aed' => fake()->numberBetween(500_000, 10_000_000), 'currency' => 'AED', 'image' => 'expose/placeholder.jpg', 'highlights' => [ fake()->sentence(4), fake()->sentence(4), fake()->sentence(4), ], 'quick_facts' => [ ['icon' => 'home-modern', 'label' => 'Typen', 'value' => '1BR & 2BR'], ['icon' => 'squares-2x2', 'label' => 'Größe', 'value' => fake()->numberBetween(400, 2000).' sqft'], ['icon' => 'building-office-2', 'label' => 'Einheiten', 'value' => fake()->numberBetween(50, 500)], ['icon' => 'user', 'label' => 'Entwickler', 'value' => fake()->company()], ], 'investment_case' => [ 'title' => fake()->sentence(5), 'text' => fake()->paragraph(3), 'views' => [fake()->word(), fake()->word()], ], 'gallery' => [], 'location_info' => [ 'title' => 'Location: '.fake()->city(), 'map_url' => 'https://maps.google.com/?q='.urlencode(fake()->city()), 'points' => [ fake()->sentence(6), fake()->sentence(6), ], ], 'contact' => [ 'title' => fake()->sentence(5), 'subtitle' => fake()->sentence(3), 'options' => [ '' => 'Ich interessiere mich für...', 'general' => 'Allgemeine Beratung', ], ], 'is_published' => true, 'order' => 0, ]; } public function published(): static { return $this->state(fn (array $attributes) => [ 'is_published' => true, ]); } public function unpublished(): static { return $this->state(fn (array $attributes) => [ 'is_published' => false, ]); } }