<?php

namespace App\Packages\User\Repository;

use App\Packages\Capsule\Models\Capsule;
use App\Packages\Capsule\Models\CapsuleComment;
use App\Packages\Core\Repository\AbstractRepository;
use App\Packages\User\Models\UserMention;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Collection;

/**
 * Class UserMentionRepository
 * @package App\Packages\User\Repository
 */
class UserMentionRepository extends AbstractRepository {

    public static function init()
    {
        return new UserMentionRepository(UserMention::class);
    }

    /**
     * @param $capsule
     *
     * @return Builder[]|Collection
     */
    public function getAllFromCapsule($capsule)
    {
        return $this->query()
            ->where('capsule_id', $capsule->id)
            ->get();
    }

    /**
     * @param $comment
     *
     * @return Builder[]|Collection
     */
    public function getAllFromComment($comment)
    {
        return $this->query()
            ->where('comment_id', $comment->id)
            ->get();
    }

    /**
     * @param $capsule
     *
     * @return bool
     */
    public function deleteAllFromCapsule($capsule)
    {
        $this->query()
            ->where('capsule_id', $capsule->id)
            ->delete();

        return true;
    }

    /**
     * @param $comment
     *
     * @return bool
     */
    public function deleteAllFromComment($comment)
    {
        $this->query()
            ->where('comment_id', $comment->id)
            ->delete();

        return true;
    }

}
