#!/usr/bin/env php
<?php

require "vendor/autoload.php";

use Dotenv\Dotenv;

$dotenv = Dotenv::createImmutable(__DIR__);
$dotenv->load();

#!/usr/bin/env php
require "vendor/autoload.php";
use App\Core\Migrator;
$command = $argv[1] ?? null;
$migrator = new Migrator();

switch ($command) {

    case "migrate":
        $name = $argv[2] ?? null;
        $migrator->migrate($name);
        break;

    case "rollback":
        $migrator->rollback();
        break;
    case "make:migration":
        $name = $argv[2] ?? null;
        if (!$name) {
            echo "Migration name required\n";
            exit;
        }

        $timestamp = date("Y_m_d_His");
        $filename = "database/migrations/{$timestamp}_{$name}.php";
        $class = str_replace(" ", "", ucwords(str_replace("_", " ", $name)));
        $template = "<?php
        use App\Core\Migration;
        class $class extends Migration
        {
            public function up()
            {

            }

            public function down()
            {

            }
        }";

        file_put_contents($filename, $template);
        echo "Migration created: $filename\n";
        break;

    case "make:seeder":
        $name = $argv[2] ?? null;
        if (!$name) {
            echo "Provide seeder name\n";
            return;
        }
        $migrator->makeSeeder($name);
        break;

    case "seed":
        $name = $argv[2] ?? null;
        $migrator->seed($name);
        break;
    
    case "make:model":
        $name = $argv[2] ?? null;
        if (!$name) {
            echo "Provide model name\n";
            return;
        }
        $migrator->makeModel($name);
        break;

    case "make:controller":

        $name = $argv[2] ?? null;
        if (!$name) {
            echo "Provide controller name\n";
            return;
        }
        $migrator->makeController($name);
        break;

    case "route:list":

        $migrator->routeList();
        break;

    default:
        echo "
        Commands:

        php artisan.php migrate
        php artisan.php rollback
        php artisan.php make:migration create_users_table
        ";
}