2024-09-07 00:03:11 +03:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace Lucent\Commands;
|
|
|
|
|
|
|
|
|
|
use Illuminate\Console\Command;
|
|
|
|
|
use Lucent\Primitive\Collection;
|
|
|
|
|
use Lucent\Schema\CollectionSchema;
|
|
|
|
|
|
|
|
|
|
class GenerateCollectionSchema extends Command
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
protected $signature = 'lucent:generate:collection {name}';
|
|
|
|
|
|
|
|
|
|
protected $description = 'Generate a lucent collection';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function handle()
|
|
|
|
|
{
|
|
|
|
|
$name = $this->argument('name');
|
|
|
|
|
$schema = new CollectionSchema(
|
|
|
|
|
name: $name,
|
|
|
|
|
label: $name,
|
|
|
|
|
visible: [],
|
|
|
|
|
groups: [],
|
|
|
|
|
fields: Collection::make(),
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
$json = json_encode($schema, JSON_PRETTY_PRINT);
|
|
|
|
|
$configDir = base_path(config('lucent.schemas_path'));
|
2024-10-04 19:26:19 +03:00
|
|
|
|
|
|
|
|
if(!file_exists($configDir)) {
|
|
|
|
|
$this->error("Your config directory \"$configDir\" doesn't exist. Create it first and run again");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2024-09-07 00:03:11 +03:00
|
|
|
$schemaPath = $configDir . "/" . $name . '.json';
|
|
|
|
|
|
|
|
|
|
if(file_exists($schemaPath)){
|
|
|
|
|
$this->error("The schema file already exists.");
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
file_put_contents($schemaPath, $json);
|
|
|
|
|
$this->info("The schema file has been created.");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|