<?php
/**
 * Created by PhpStorm.
 * User: radko
 * Date: 25.7.18
 * Time: 13:53
 */

namespace Seka\Vzdelavanie\Repositories\Eloquent;

use Seka\Vzdelavanie\Models\Kniznica\Sekcia;
use Seka\Vzdelavanie\Repositories\Contracts\SekciaRepositoryInterface;

/**
 * Class SekciaRepository
 * @package Seka\Vzdelavanie\Repositories\Eloquent
 */
class SekciaRepository extends Repository implements SekciaRepositoryInterface
{
    /**
     * @return string
     */
    public function model(): string
    {
        return Sekcia::class;
    }

    /**
     * @param array $attributes
     * @return \Seka\Vzdelavanie\Models\Kniznica\Sekcia
     */
    public function create(array $attributes): Sekcia
    {
        $sekcia = new Sekcia($attributes);

        if (empty($attributes['parent_id'])) {
            $sekcia->saveAsRoot();
        } else {
            /** @var Sekcia $nadradenaSekcia */
            if ($nadradenaSekcia = $this->query()->find($attributes['parent_id'])->first()) {
                $nadradenaSekcia->appendNode($sekcia);
            }
        }

        return $sekcia->refresh();
    }
}
