| 
<?php
 declare(strict_types=1);
 
 /**************************************************************************************
 *
 * Catalyst PHP Framework
 * PHP Version 8.3 (Required).
 *
 * @package   Catalyst
 * @subpackage Public
 * @see       https://github.com/arcanisgk/catalyst
 *
 * @author    Walter Nuñez (arcanisgk/original founder) <[email protected]>
 * @copyright 2023 - 2025
 * @license   http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
 *
 * @note      This program is distributed in the hope that it will be useful
 *            WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 *            or FITNESS FOR A PARTICULAR PURPOSE.
 *
 * @category  Framework
 * @filesource
 *
 * @link      https://catalyst.dock Local development URL
 *
 */
 
 
 use Catalyst\Framework\Core\Route\Router;
 
 // Get router instance
 $router = Router::getInstance();
 
 // API route group with common prefix and middleware
 /*
 $router->group([
 'prefix' => 'api',
 'middleware' => ['api', 'throttle']
 ], function ($router) {
 
 // API version 1
 $router->group(['prefix' => 'v1'], function ($router) {
 
 // Authentication endpoints
 $router->post('/auth/login', 'Api\AuthController@login');
 $router->post('/auth/register', 'Api\AuthController@register');
 
 // Public endpoints
 $router->get('/products', 'Api\ProductController@index');
 $router->get('/products/{id}', 'Api\ProductController@show')
 ->where('id', '[0-9]+');
 
 // Protected endpoints
 $router->group(['middleware' => 'auth:api'], function ($router) {
 // User profile
 $router->get('/user', 'Api\UserController@currentUser');
 $router->put('/user', 'Api\UserController@update');
 
 // CRUD for user resources
 $router->get('/orders', 'Api\OrderController@index');
 $router->post('/orders', 'Api\OrderController@store');
 $router->get('/orders/{id}', 'Api\OrderController@show');
 $router->put('/orders/{id}', 'Api\OrderController@update');
 $router->delete('/orders/{id}', 'Api\OrderController@destroy');
 });
 });
 
 // API version 2 (for future use)
 $router->group(['prefix' => 'v2'], function ($router) {
 $router->get('/', function () {
 return json_success(['message' => 'API v2 coming soon']);
 });
 });
 });
 */
 |