<?php

/**
 * @copyright  2020 Podlibre
 * @license    https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
 * @link       https://castopod.org/
 */

namespace App\Models;

use CodeIgniter\Model;

class CategoryModel extends Model
{
    protected $table = 'categories';
    protected $primaryKey = 'id';

    protected $allowedFields = [
        'parent_id',
        'code',
        'apple_category',
        'google_category',
    ];

    protected $returnType = \App\Entities\Category::class;
    protected $useSoftDeletes = false;

    protected $useTimestamps = false;

    public function findParent($parentId)
    {
        return $this->find($parentId);
    }

    public function getCategoryOptions()
    {
        if (!($options = cache('category_options'))) {
            $categories = $this->findAll();

            $options = array_reduce(
                $categories,
                function ($result, $category) {
                    $result[$category->id] = lang(
                        'Podcast.category_options.' . $category->code
                    );
                    return $result;
                },
                []
            );

            cache()->save('category_options', $options, DECADE);
        }

        return $options;
    }
}