src/Entity/Site/Config.php line 17

  1. <?php
  2. namespace App\Entity\Site;
  3. use App\Entity\Traits\TrackerFields;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use App\Entity\Traits\CreatedTrait;
  6. use App\Entity\Traits\DeletedTrait;
  7. use App\Entity\Traits\UpdatedTrait;
  8. use App\Entity\Traits\UserCreatedInterface;
  9. use App\Entity\Traits\UserUpdatedInterface;
  10. #[ORM\Table(name'site_config')]
  11. #[ORM\Entity(repositoryClass'App\Repository\Site\ConfigRepository')]
  12. #[ORM\HasLifecycleCallbacks]
  13. class Config implements UserCreatedInterfaceUserUpdatedInterface
  14. {
  15.     use TrackerFields;
  16.     public const  HTML 'html';
  17.     public const STRING 'string';
  18.     public const INT 'int';
  19.     public const TEXT 'text';
  20.     public const IMAGE 'image';
  21.     public const LINK 'link';
  22.     public const DATE 'date';
  23.     public const DATETIME 'datetime';
  24.     public const BOOL 'boolean';
  25.     #[ORM\Id]
  26.     #[ORM\GeneratedValue(strategy'AUTO')]
  27.     #[ORM\Column(type'integer')]
  28.     private ?int $id;
  29.     #[ORM\Column(type'string'nullablefalse)]
  30.     private ?string $slug;
  31.     #[ORM\Column(type'string'nullablefalse)]
  32.     private ?string $caption;
  33.     #[ORM\Column(type'json'nullabletrue)]
  34.     private array $value = [];
  35.     #[ORM\Column(type'json'name'schema_array'nullabletrue)]
  36.     private array $schema = [];
  37.     public static function getRowTypes(): array
  38.     {
  39.         return [
  40.             self::HTML,
  41.             self::STRING,
  42.             self::INT,
  43.             self::TEXT,
  44.             self::IMAGE,
  45.             self::LINK,
  46.             self::BOOL,
  47.             self::DATE,
  48.             self::DATETIME
  49.         ];
  50.     }
  51.     /**
  52.      * @return int|null
  53.      */
  54.     public function getId(): ?int
  55.     {
  56.         return $this->id;
  57.     }
  58.     /**
  59.      * @param int|null $id
  60.      */
  61.     public function setId(?int $id): void
  62.     {
  63.         $this->id $id;
  64.     }
  65.    
  66.     public function getSlug(): ?string
  67.     {
  68.         return $this->slug;
  69.     }
  70.   
  71.     public function setSlug(?string $slug): void
  72.     {
  73.         $this->slug $slug;
  74.     }
  75.     /**
  76.      * @return string|null
  77.      */
  78.     public function getCaption(): ?string
  79.     {
  80.         return $this->caption;
  81.     }
  82.     /**
  83.      * @param string|null $caption
  84.      */
  85.     public function setCaption(?string $caption): void
  86.     {
  87.         $this->caption $caption;
  88.     }
  89.     /**
  90.      * @return array
  91.      */
  92.     public function getValue(): array
  93.     {
  94.         return $this->value;
  95.     }
  96.     /**
  97.      * @param array $value
  98.      */
  99.     public function setValue(array $value): void
  100.     {
  101.         $this->value $value;
  102.     }
  103.     /**
  104.      * @return array
  105.      */
  106.     public function getSchema(): array
  107.     {
  108.         return $this->schema;
  109.     }
  110.     public function getSchemaItem($slug):?array{
  111.         foreach($this->schema as $item){
  112.             if($item['slug']==$slug) return $item;
  113.         }
  114.         return null;
  115.     }
  116.     
  117.     /**
  118.      * @param array $schema
  119.      */
  120.     public function setSchema(array $schema): void
  121.     {
  122.         $this->schema $schema;
  123.     }
  124. }