Files
lucent-laravel/src/Core/Schema/SchemaModule.php
T
2026-01-07 23:49:55 +02:00

40 lines
1002 B
PHP

<?php namespace Lucent\Core\Schema;
use Lucent\Core\Schema\Data\Schema;
use stdClass;
class SchemaModule
{
public static function fromArray(array $data): Schema
{
return new Schema(
id: $data["id"],
alias: $data["alias"],
name: $data["label"],
revisions: $data["revisions"],
fields: array_map(FieldModule::fromArray(...), $data["fields"]),
);
}
public static function fromDb(stdClass $data): Schema
{
return new Schema(
id: data_get($data, "id"),
alias: data_get($data, "alias"),
name: data_get($data, "name"),
revisions: data_get($data, "revisions"),
fields: [],
);
}
public static function toDb(Schema $schema): array
{
return [
"id" => $schema->id,
"alias" => $schema->alias,
"name" => $schema->name,
"revisions" => $schema->revisions,
];
}
}