MOON
Server: Apache
System: Linux server.royaltuning.hu 4.18.0-425.13.1.el8_7.x86_64 #1 SMP Tue Feb 21 04:20:52 EST 2023 x86_64
User: royaltuning (1001)
PHP: 8.2.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/royaltuning/www/public/backoffice.royaltuning.hu/database/factories/AnnouncementFactory.php
<?php

namespace Database\Factories;

use App\Domains\Announcement\Models\Announcement;
use Illuminate\Database\Eloquent\Factories\Factory;

/**
 * Class AnnouncementFactory.
 */
class AnnouncementFactory extends Factory
{
    /**
     * The name of the factory's corresponding model.
     *
     * @var string
     */
    protected $model = Announcement::class;

    /**
     * Define the model's default state.
     *
     * @return array
     */
    public function definition()
    {
        return [
            'area' => $this->faker->randomElement(['frontend', 'backend']),
            'type' => $this->faker->randomElement(['info', 'danger', 'warning', 'success']),
            'message' => $this->faker->text,
            'enabled' => $this->faker->boolean,
            'starts_at' => $this->faker->dateTime(),
            'ends_at' => $this->faker->dateTime(),
        ];
    }

    /**
     * @return AnnouncementFactory
     */
    public function enabled()
    {
        return $this->state(function (array $attributes) {
            return [
                'enabled' => true,
            ];
        });
    }

    /**
     * @return AnnouncementFactory
     */
    public function disabled()
    {
        return $this->state(function (array $attributes) {
            return [
                'enabled' => false,
            ];
        });
    }

    /**
     * @return AnnouncementFactory
     */
    public function frontend()
    {
        return $this->state(function (array $attributes) {
            return [
                'area' => 'frontend',
            ];
        });
    }

    /**
     * @return AnnouncementFactory
     */
    public function backend()
    {
        return $this->state(function (array $attributes) {
            return [
                'area' => 'backend',
            ];
        });
    }

    /**
     * @return AnnouncementFactory
     */
    public function global()
    {
        return $this->state(function (array $attributes) {
            return [
                'area' => null,
            ];
        });
    }

    /**
     * @return AnnouncementFactory
     */
    public function noDates()
    {
        return $this->state(function (array $attributes) {
            return [
                'starts_at' => null,
                'ends_at' => null,
            ];
        });
    }

    /**
     * @return AnnouncementFactory
     */
    public function insideDateRange()
    {
        return $this->state(function (array $attributes) {
            return [
                'starts_at' => now()->subWeek(),
                'ends_at' => now()->addWeek(),
            ];
        });
    }

    /**
     * @return AnnouncementFactory
     */
    public function outsideDateRange()
    {
        return $this->state(function (array $attributes) {
            return [
                'starts_at' => now()->subWeeks(2),
                'ends_at' => now()->subWeek(),
            ];
        });
    }
}