<?php

namespace Modules\Attribute\Services;

use Illuminate\Http\Request;
use Modules\Attribute\Interfaces\AttributeRepositoryInterface;
use Modules\Attribute\Models\Attribute;

class AttributeService
{
    private AttributeRepositoryInterface $attributeRepository ;

    public function __construct(AttributeRepositoryInterface $attributeRepository)
    {
        $this->attributeRepository = $attributeRepository;
    }

    public function get(Request $request)
    {
        $attributes= $this->attributeRepository->get($request);
        return $attributes;
    }
    public function getItem(Attribute $attribute)
    {
        $attribute = $this->attributeRepository->getItem($attribute);
        return $attribute;
    }
    public function save(Request $request, ?Attribute $attribute): Attribute
    {
        $attribute = $this->attributeRepository->save($request,$attribute);
        return $attribute;
    }
    public function destroy(Request $request, int $id): array
    {
        $response = $this->attributeRepository->destroy($request,$id);
        return $response;
    }
    public function destroyAll(Request $request): array
    {
        $response = $this->attributeRepository->destroyAll($request);
        return $response;
    }
    public function restore(Request $request, int $id): array
    {
        $response = $this->attributeRepository->restore($request,$id);
        return $response;
    }
    public function restoreAll(Request $request): array
    {
        $response = $this->attributeRepository->restoreAll($request);
        return $response;
    }
}
