File size: 960B
<?php
declare(strict_types=1);
namespace App\Repositories;
use App\Models\Read;
use App\Models\Story;
class ReadRepository implements RepositoryInterface
{
/**
* Exists read
*
* @param int $storyId
* @param string $ip
*
* @return bool
*/
public function existsRead(int $storyId, string $ip): bool
{
return Read::query()->where('story_id', $storyId)->where('ip', $ip)->exists();
}
/**
* Create read
*
* @param Story $story
* @param string $ip
*
* @return void
*/
public function createRead(Story $story, string $ip): void
{
if ($this->existsRead($story->id, $ip)) {
return;
}
$story->update([
'reads' => $story->reads + 1,
]);
Read::query()->create([
'story_id' => $story->id,
'ip' => $ip,
'created_at' => time(),
]);
}
}