Files
oficial/app/common/Ideal/Model.php
aldarien 742de657c5 develop (#45)
Co-authored-by: Juan Pablo Vial <jpvialb@incoviba.cl>
Reviewed-on: #45
2025-10-04 11:40:52 -03:00

39 lines
793 B
PHP

<?php
namespace Incoviba\Common\Ideal;
use Incoviba\Common\Define;
abstract class Model implements Define\Model
{
public int $id;
protected array $factories;
public function addFactory(string $property, Define\Repository\Factory $factory): Model
{
$this->factories[$property] = $factory;
return $this;
}
protected function runFactory(string $property): mixed
{
if (isset($this->factories[$property])) {
return $this->factories[$property]->run();
}
return null;
}
public function jsonSerialize(): mixed
{
return [
'id' => $this->id ?? '',
...$this->jsonComplement()
];
}
protected function jsonComplement(): array
{
return [];
}
}