<?php

/** @var \Illuminate\Routing\Router $router */
/** @var \Illuminate\Foundation\Application $app */

use App\Modules\{{ module }}\Domain\{{ module }}Repository;
use App\Modules\{{ module }}\Infrastructure\Mysql{{ module }}Repository;

$app->bind({{ module }}Repository::class, fn($app) => $app->make(Mysql{{ module }}Repository::class));

$router->post(
    '/{{ route }}',
    [
        'middleware' => 'Auth_Owner',
        'uses' => '{{ module }}\\{{ module }}InsertController@__invoke',
    ]
);

$router->put(
    '/{{ route }}',
    [
        'middleware' => 'Auth_Owner',
        'uses' => '{{ module }}\\{{ module }}UpdateController@__invoke',
    ]
);

$router->get(
    '/{{ route }}/{Id}',
    [
        'middleware' => 'Auth_Owner',
        'uses' => '{{ module }}\\{{ module }}IndexController@__invoke',
    ]
)->where(['Id' => '[0-9]*']);

{{ listRoute }}

$router->delete(
    '/{{ route }}/{Id}',
    [
        'middleware' => 'Auth_Owner',
        'uses' => '{{ module }}\\{{ module }}DeleteController@__invoke',
    ]
)->where(['Id' => '[0-9]*']);
