<?php

namespace App\Packages\User\Models;

use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;

/**
 * Class UserSearch
 * @package App\Packages\User\Models
 *
 * @property int $id
 * @property int $owner_id
 * @property int $user_id
 *
 * @property Carbon|string|null $last_search
 * @property Carbon|string|null $created_at
 * @property Carbon|string|null $updated_at
 */
class UserSearch extends Model {

    protected $table = 'table_user_search';

    protected $dates = [
        'last_search',
        'created_at',
        'updated_at'
    ];

    public static function setLastSearched(User $owner, User $user)
    {
        $searched = UserSearch::query()
            ->where('owner_id', $owner->id)
            ->where('user_id', $user->id)
            ->first();

        if ( ! $searched ) {
            $searched = new UserSearch();
            $searched->owner_id = $owner->id;
            $searched->user_id = $user->id;
        }

        $searched->last_search = new Carbon('now');
        $searched->save();

        return $searched;
    }

}