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
|
|
|
}
|
|
|
|
|
}
|