NFarrington/vatsim-url-shortener

View on GitHub
app/Entities/Traits/SoftDeletes.php

Summary

Maintainability
A
0 mins
Test Coverage
F
0%
<?php

declare(strict_types=1);

namespace App\Entities\Traits;

use DateTime;
use Doctrine\ORM\Mapping as ORM;
use Illuminate\Support\Carbon;

trait SoftDeletes
{
    /**
     * @ORM\Column(name="deleted_at", type="datetime", nullable=true)
     */
    protected ?DateTime $deletedAt;

    public function getDeletedAt(): Carbon
    {
        return Carbon::instance($this->deletedAt);
    }

    public function setDeletedAt(?DateTime $deletedAt = null): void
    {
        $this->deletedAt = $deletedAt;
    }

    public function restore(): void
    {
        $this->deletedAt = null;
    }

    public function isDeleted(): bool
    {
        return $this->deletedAt && new DateTime('now') >= $this->deletedAt;
    }
}