<?php

declare(strict_types=1);

namespace App\Service;

use App\Repository\TblPreguntasCursoRepository;

final class TblPreguntasCursoService
{
    private TblPreguntasCursoRepository $TblPreguntasCursoRepository;

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

    public function checkAndGet(int $TblPreguntasCursoId): object
    {
        return $this->TblPreguntasCursoRepository->checkAndGet($TblPreguntasCursoId);
    }

    public function getAll(): array
    {
        return $this->TblPreguntasCursoRepository->getAll();
    }

    public function getOne(int $TblPreguntasCursoId): object
    {
        return $this->checkAndGet($TblPreguntasCursoId);
    }

    public function create(array $input): object
    {
        $TblPreguntasCurso = json_decode((string) json_encode($input), false);

        return $this->TblPreguntasCursoRepository->create($TblPreguntasCurso);
    }

    public function update(array $input, int $TblPreguntasCursoId): object
    {
        $TblPreguntasCurso = $this->checkAndGet($TblPreguntasCursoId);
        $data = json_decode((string) json_encode($input), false);

        return $this->TblPreguntasCursoRepository->update($TblPreguntasCurso, $data);
    }

    public function delete(int $TblPreguntasCursoId): void
    {
        $this->checkAndGet($TblPreguntasCursoId);
        $this->TblPreguntasCursoRepository->delete($TblPreguntasCursoId);
    }
}
