<?php

namespace App\Services;

use App\Libs\Consts\StatusConst;
use App\Repositories\Interfaces\TaglineRepositoryInterface;

class TaglineService
{

    protected $taglineRepository;

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

    public function getAllTaglines()
    {
        $taglines = $this->taglineRepository->all();
        return $taglines;
    }
    public function storeTagline($request)
    {

        $payload = $request->all();

        $this->taglineRepository->create($payload);

        $response = [
            'status' => 'success',
            'message' => 'Success! The new tagline has been created.'
        ];

        return $response;
    }

    public function getTagline($id)
    {
        $tagline = $this->taglineRepository->find($id);
        return $tagline;
    }

    public function updateTagline($request, $taglineId)
    {

        $payload = $request->all();
        $this->taglineRepository->update($payload, $taglineId);

        $response = [
            'status' => 'success',
            'message' => 'Success! The tagline has been updated.'
        ];

        return $response;;
    }

    public function removeTagline($id)
    {
        return $this->taglineRepository->delete($id);
    }

    public function listTagline()
    {
        return $this->taglineRepository->getList();
    }




    public function checkIfTaglineIsAvailable($request)
    {
        $inputTagline = $request->get('tagline');

        $tagline = $this->taglineRepository->getByColumn('tagline', $inputTagline);

        if (!empty($tagline)) {
            return ['status' => StatusConst::BAD_REQUEST, 'message' => 'Tagline is already existing'];
        }

        return ['status' => StatusConst::SUCCESS, 'message' => ''];
    }
}
