Files
lucent-laravel/src/Core/Schema/SchemaModule.php
T

40 lines
1002 B
PHP
Raw Normal View History

2026-01-07 21:42:18 +02:00
<?php namespace Lucent\Core\Schema;
2026-01-07 23:49:55 +02:00
use Lucent\Core\Schema\Data\Schema;
use stdClass;
2026-01-07 21:42:18 +02:00
class SchemaModule
{
2026-01-07 23:49:55 +02:00
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
2026-01-07 21:42:18 +02:00
{
2026-01-07 23:49:55 +02:00
return [
"id" => $schema->id,
"alias" => $schema->alias,
"name" => $schema->name,
"revisions" => $schema->revisions,
];
2026-01-07 21:42:18 +02:00
}
}