<?php

namespace App\PackagesApi\Docs;

use App\PackagesApi\Docs\v2 as v2;

/**
 * Class DocKernel
 * @package App\PackagesApi\Docs
 */
class DocKernel
{
    public $base_link = 'http://api.timehook.tecco.lv/';
    public $versions = [
    	'v2' => [
			'title' => 'Ver. 2',
			'folder' => 'v2'
		],

        'v3' => [
            'title' => 'Ver. 3',
            'folder' => 'v3'
        ],

        'v4' => [
            'title' => 'Ver. 4',
            'folder' => 'v4'
        ],

        'tools' => [
            'title' => 'Tools',
            'folder' => 'tools'
        ],
	];

	/**
	 * @param string $chosenVersion
	 *
	 * @return array|mixed
	 */
    public function description($chosenVersion = 'v4')
    {
        $apiDoc = [
            'v2' => [
                v2\AuthApiDoc::endPoints(),
                v2\UserApiDoc::endPoints(),
                v2\SettingsApiDoc::endPoints(),
                v2\NotificationApiDoc::endPoints(),

                [],

                v2\FeedApiDoc::endPoints(),

                [],

                v2\CapsuleCreateApiDoc::endPoints(),
                v2\CapsuleActionApiDoc::endPoints(),
                v2\CapsuleInfoApiDoc::endPoints(),

                [],

                v2\ContactApiDoc::endPoints(),
                v2\FriendApiDoc::endPoints(),
                v2\InvitationApiDoc::endPoints(),

                [],

				v2\GlobalApiDoc::endPoints(),
                v2\ReportApiDoc::endPoints(),
                v2\LocationApiDoc::endPoints(),
            ],

            'v3' => [
                v3\AuthApiDoc::endPoints(),
                v3\UserApiDoc::endPoints(),
                v3\SettingsApiDoc::endPoints(),
                v3\NotificationApiDoc::endPoints(),

                [],

                v3\FeedApiDoc::endPoints(),

                [],

                v3\CapsuleCreateApiDoc::endPoints(),
                v3\CapsuleUpdateApiDoc::endPoints(),
                v3\CapsuleActionApiDoc::endPoints(),
                v3\CapsuleInfoApiDoc::endPoints(),

                [],

                v3\ContactApiDoc::endPoints(),
                v3\FriendApiDoc::endPoints(),
                v3\InvitationApiDoc::endPoints(),

                [],

                v3\GlobalApiDoc::endPoints(),
                v3\ReportApiDoc::endPoints(),
                v3\LocationApiDoc::endPoints(),
            ],

            'v4' => [
                v4\AuthApiDoc::endPoints(),
                v4\UserApiDoc::endPoints(),
                v4\SettingsApiDoc::endPoints(),
                v4\NotificationApiDoc::endPoints(),

                [],

                v4\SearchApiDoc::endPoints(),

                [],

                v4\FeedApiDoc::endPoints(),

                [],

                v4\CapsuleCreateApiDoc::endPoints(),
                v4\CapsuleUpdateApiDoc::endPoints(),
                v4\CapsuleActionApiDoc::endPoints(),
                v4\CapsuleInfoApiDoc::endPoints(),

                [],

                v4\FollowerApiDoc::endPoints(),
                v4\FollowerActionApiDoc::endPoints(),

                [],

                v4\GlobalApiDoc::endPoints(),
                v4\ReportApiDoc::endPoints(),
                v4\LocationApiDoc::endPoints(),
            ],

            'tools' => [
                Tools\TestApiDoc::endPoints(),
            ],
        ];

        $result = [];
        foreach ($apiDoc as $version => $category) {
            foreach ($category as $endpoints) {
                $result[$version][] = $endpoints;
            }
        }

        if ($chosenVersion) {
        	return $result[$chosenVersion];
		}

        return $result;
    }
}
