2023-10-02 23:10:49 +03:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace Lucent\Revision;
|
|
|
|
|
|
|
|
|
|
use Illuminate\Support\Str;
|
2024-03-30 13:42:38 +02:00
|
|
|
use Lucent\Graph\Data\FieldData;
|
|
|
|
|
use Lucent\Graph\Edge\EdgeCollection;
|
|
|
|
|
use Lucent\Graph\Record\Record;
|
|
|
|
|
use Lucent\Graph\Record\System;
|
2023-10-02 23:10:49 +03:00
|
|
|
|
|
|
|
|
readonly class Revision
|
|
|
|
|
{
|
|
|
|
|
|
2024-03-23 22:15:06 +02:00
|
|
|
/**
|
|
|
|
|
* @param string $id
|
|
|
|
|
* @param string $recordId
|
|
|
|
|
* @param System $_sys
|
2024-03-30 13:42:38 +02:00
|
|
|
* @param FieldData $data
|
2024-03-25 21:26:21 +02:00
|
|
|
* @param EdgeCollection $_edges
|
2024-03-23 22:15:06 +02:00
|
|
|
*/
|
2023-10-02 23:10:49 +03:00
|
|
|
function __construct(
|
2024-03-30 13:42:38 +02:00
|
|
|
public string $id,
|
|
|
|
|
public string $recordId,
|
|
|
|
|
public System $_sys,
|
|
|
|
|
public FieldData $data,
|
|
|
|
|
public EdgeCollection $_edges,
|
2023-10-02 23:10:49 +03:00
|
|
|
|
2023-10-15 19:14:07 +03:00
|
|
|
)
|
2023-10-02 23:10:49 +03:00
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-23 22:15:06 +02:00
|
|
|
/**
|
|
|
|
|
* @param Record $record
|
2024-03-25 21:26:21 +02:00
|
|
|
* @param EdgeCollection $edges
|
2024-03-23 22:15:06 +02:00
|
|
|
* @return Revision
|
|
|
|
|
*/
|
2024-03-25 21:26:21 +02:00
|
|
|
public static function fromRecord(Record $record, EdgeCollection $edges): Revision
|
2023-10-02 23:10:49 +03:00
|
|
|
{
|
|
|
|
|
return new Revision(
|
|
|
|
|
id: (string)Str::uuid(),
|
|
|
|
|
recordId: $record->id,
|
|
|
|
|
_sys: $record->_sys,
|
|
|
|
|
data: $record->data,
|
2023-10-15 19:14:07 +03:00
|
|
|
_edges: $edges,
|
2023-10-02 23:10:49 +03:00
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|