<?php

use CatLab\Charon\Collections\RouteCollection;
/*
 * API v1
 */
$routes = new RouteCollection(['prefix' => '/api/v1/', 'namespace' => 'Api\\V1\\Controllers', 'middleware' => ['cors'], 'suffix' => '.{format?}', 'security' => ['oauth2' => ['full']]]);
$routes->group([], function (RouteCollection $routes) {
    // All endpoints have these parameters
    $routes->parameters()->path('format')->enum(['json'])->describe('Output format')->default('json');
    // All endpoints can have these return values
    $routes->returns()->statusCode(403)->describe('Authentication error');
    $routes->returns()->statusCode(404)->describe('Entity not found');
    // Swagger documentation
    $routes->get('description', 'DescriptionController@description')->tag('description');
    // Controllers: oauth middleware is required
    $routes->group(['middleware' => ['oauth']], function (RouteCollection $routes) {
        /*
         * List all controllers
         */
        \App\Http\Api\V1\Controllers\UserController::setRoutes($routes);
        \App\Http\Api\V1\Controllers\PetController::setRoutes($routes);
        \App\Http\Api\V1\Controllers\PhotoController::setRoutes($routes);
    });
});
return $routes;