mirror of
https://github.com/Karaka-Management/oms-Knowledgebase.git
synced 2026-02-10 07:18:43 +00:00
start working on knowledgebase
This commit is contained in:
parent
bdf5b8b59f
commit
1ea1f65dca
|
|
@ -1,4 +1,22 @@
|
||||||
{
|
{
|
||||||
|
"wiki_app": {
|
||||||
|
"name": "wiki_app",
|
||||||
|
"comment": "This allows to create different wikis",
|
||||||
|
"fields": {
|
||||||
|
"wiki_app_id": {
|
||||||
|
"name": "wiki_app_id",
|
||||||
|
"type": "INT",
|
||||||
|
"null": false,
|
||||||
|
"primary": true,
|
||||||
|
"autoincrement": true
|
||||||
|
},
|
||||||
|
"wiki_app_name": {
|
||||||
|
"name": "wiki_app_name",
|
||||||
|
"type": "VARCHAR(255)",
|
||||||
|
"null": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"wiki_category": {
|
"wiki_category": {
|
||||||
"name": "wiki_category",
|
"name": "wiki_category",
|
||||||
"fields": {
|
"fields": {
|
||||||
|
|
@ -14,6 +32,11 @@
|
||||||
"type": "VARCHAR(255)",
|
"type": "VARCHAR(255)",
|
||||||
"null": false
|
"null": false
|
||||||
},
|
},
|
||||||
|
"wiki_category_path": {
|
||||||
|
"name": "wiki_category_path",
|
||||||
|
"type": "VARCHAR(255)",
|
||||||
|
"null": false
|
||||||
|
},
|
||||||
"wiki_category_parent": {
|
"wiki_category_parent": {
|
||||||
"name": "wiki_category_parent",
|
"name": "wiki_category_parent",
|
||||||
"type": "INT",
|
"type": "INT",
|
||||||
|
|
@ -21,6 +44,14 @@
|
||||||
"null": true,
|
"null": true,
|
||||||
"foreignTable": "wiki_category",
|
"foreignTable": "wiki_category",
|
||||||
"foreignKey": "wiki_category_id"
|
"foreignKey": "wiki_category_id"
|
||||||
|
},
|
||||||
|
"wiki_category_app": {
|
||||||
|
"name": "wiki_category_app",
|
||||||
|
"type": "INT",
|
||||||
|
"default": null,
|
||||||
|
"null": true,
|
||||||
|
"foreignTable": "wiki_app",
|
||||||
|
"foreignKey": "wiki_app_id"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -54,18 +85,6 @@
|
||||||
"type": "TEXT",
|
"type": "TEXT",
|
||||||
"null": false
|
"null": false
|
||||||
},
|
},
|
||||||
"wiki_article_created_at": {
|
|
||||||
"name": "wiki_article_created_at",
|
|
||||||
"type": "DATETIME",
|
|
||||||
"null": false
|
|
||||||
},
|
|
||||||
"wiki_article_created_by": {
|
|
||||||
"name": "wiki_article_created_by",
|
|
||||||
"type": "INT",
|
|
||||||
"null": false,
|
|
||||||
"foreignTable": "account",
|
|
||||||
"foreignKey": "account_id"
|
|
||||||
},
|
|
||||||
"wiki_article_category": {
|
"wiki_article_category": {
|
||||||
"name": "wiki_article_category",
|
"name": "wiki_article_category",
|
||||||
"type": "INT",
|
"type": "INT",
|
||||||
|
|
@ -73,6 +92,14 @@
|
||||||
"null": true,
|
"null": true,
|
||||||
"foreignTable": "wiki_category",
|
"foreignTable": "wiki_category",
|
||||||
"foreignKey": "wiki_category_id"
|
"foreignKey": "wiki_category_id"
|
||||||
|
},
|
||||||
|
"wiki_article_app": {
|
||||||
|
"name": "wiki_article_app",
|
||||||
|
"type": "INT",
|
||||||
|
"default": null,
|
||||||
|
"null": true,
|
||||||
|
"foreignTable": "wiki_app",
|
||||||
|
"foreignKey": "wiki_app_id"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
27
Models/NullWikiApp.php
Normal file
27
Models/NullWikiApp.php
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Orange Management
|
||||||
|
*
|
||||||
|
* PHP Version 7.4
|
||||||
|
*
|
||||||
|
* @package Modules\Knowledgebase\Models
|
||||||
|
* @copyright Dennis Eichhorn
|
||||||
|
* @license OMS License 1.0
|
||||||
|
* @version 1.0.0
|
||||||
|
* @link https://orange-management.org
|
||||||
|
*/
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Modules\Knowledgebase\Models;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Task class.
|
||||||
|
*
|
||||||
|
* @package Modules\Knowledgebase\Models
|
||||||
|
* @license OMS License 1.0
|
||||||
|
* @link https://orange-management.org
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
final class NullWikiApp extends WikiApp
|
||||||
|
{
|
||||||
|
}
|
||||||
99
Models/WikiApp.php
Normal file
99
Models/WikiApp.php
Normal file
|
|
@ -0,0 +1,99 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Orange Management
|
||||||
|
*
|
||||||
|
* PHP Version 7.4
|
||||||
|
*
|
||||||
|
* @package Modules\Knowledgebase\Models
|
||||||
|
* @copyright Dennis Eichhorn
|
||||||
|
* @license OMS License 1.0
|
||||||
|
* @version 1.0.0
|
||||||
|
* @link https://orange-management.org
|
||||||
|
*/
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Modules\Knowledgebase\Models;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wiki app class.
|
||||||
|
*
|
||||||
|
* @package Modules\Knowledgebase\Models
|
||||||
|
* @license OMS License 1.0
|
||||||
|
* @link https://orange-management.org
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
class WikiApp implements \JsonSerializable
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* ID.
|
||||||
|
*
|
||||||
|
* @var int
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
protected int $id = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Application name.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
protected string $name = '';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get id.
|
||||||
|
*
|
||||||
|
* @return int Model id
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function getId() : int
|
||||||
|
{
|
||||||
|
return $this->id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the name.
|
||||||
|
*
|
||||||
|
* @param string $name Name of the app
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function setName(string $name) : void
|
||||||
|
{
|
||||||
|
$this->name = $name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the app name
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function getName() : string
|
||||||
|
{
|
||||||
|
return $this->name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function toArray() : array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'id' => $this->id,
|
||||||
|
'name' => $this->name,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function jsonSerialize()
|
||||||
|
{
|
||||||
|
return $this->toArray();
|
||||||
|
}
|
||||||
|
}
|
||||||
55
Models/WikiAppMapper.php
Normal file
55
Models/WikiAppMapper.php
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Orange Management
|
||||||
|
*
|
||||||
|
* PHP Version 7.4
|
||||||
|
*
|
||||||
|
* @package Modules\Knowledgebase\Models
|
||||||
|
* @copyright Dennis Eichhorn
|
||||||
|
* @license OMS License 1.0
|
||||||
|
* @version 1.0.0
|
||||||
|
* @link https://orange-management.org
|
||||||
|
*/
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Modules\Knowledgebase\Models;
|
||||||
|
|
||||||
|
use phpOMS\DataStorage\Database\DataMapperAbstract;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mapper class.
|
||||||
|
*
|
||||||
|
* @package Modules\Knowledgebase\Models
|
||||||
|
* @license OMS License 1.0
|
||||||
|
* @link https://orange-management.org
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
final class WikiAppMapper extends DataMapperAbstract
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Columns.
|
||||||
|
*
|
||||||
|
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
protected static array $columns = [
|
||||||
|
'wiki_app_id' => ['name' => 'wiki_app_id', 'type' => 'int', 'internal' => 'id'],
|
||||||
|
'wiki_app_name' => ['name' => 'wiki_app_name', 'type' => 'string', 'internal' => 'name'],
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Primary table.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
protected static string $table = 'wiki_app';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Primary field name.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
protected static string $primaryField = 'wiki_app_id';
|
||||||
|
}
|
||||||
|
|
@ -15,7 +15,7 @@ declare(strict_types=1);
|
||||||
namespace Modules\Knowledgebase\Models;
|
namespace Modules\Knowledgebase\Models;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Task class.
|
* Wiki category class.
|
||||||
*
|
*
|
||||||
* @package Modules\Knowledgebase\Models
|
* @package Modules\Knowledgebase\Models
|
||||||
* @license OMS License 1.0
|
* @license OMS License 1.0
|
||||||
|
|
@ -32,6 +32,16 @@ class WikiCategory implements \JsonSerializable
|
||||||
*/
|
*/
|
||||||
protected int $id = 0;
|
protected int $id = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* App id.
|
||||||
|
*
|
||||||
|
* There can be different wikis
|
||||||
|
*
|
||||||
|
* @var null|int|WikiApp
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
private $app = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Name.
|
* Name.
|
||||||
*
|
*
|
||||||
|
|
@ -40,6 +50,19 @@ class WikiCategory implements \JsonSerializable
|
||||||
*/
|
*/
|
||||||
private string $name = '';
|
private string $name = '';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Path.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
private string $path = '/';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parent category.
|
||||||
|
*
|
||||||
|
* @var null|int|self
|
||||||
|
*/
|
||||||
private $parent = null;
|
private $parent = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -54,6 +77,32 @@ class WikiCategory implements \JsonSerializable
|
||||||
return $this->id;
|
return $this->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get app
|
||||||
|
*
|
||||||
|
* @return null|int|WikiApp
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function getApp()
|
||||||
|
{
|
||||||
|
return $this->app;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set app
|
||||||
|
*
|
||||||
|
* @param int $app App
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function setApp(int $app) : void
|
||||||
|
{
|
||||||
|
$this->app = $app;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get name
|
* Get name
|
||||||
*
|
*
|
||||||
|
|
@ -81,13 +130,39 @@ class WikiCategory implements \JsonSerializable
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get parent category
|
* Get path
|
||||||
*
|
*
|
||||||
* @return null|int
|
* @return string
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
public function getParent() : ?int
|
public function getPath() : string
|
||||||
|
{
|
||||||
|
return $this->path;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set path
|
||||||
|
*
|
||||||
|
* @param string $path Path
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function setPath(string $path) : void
|
||||||
|
{
|
||||||
|
$this->path = $path;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get parent category
|
||||||
|
*
|
||||||
|
* @return null|int|self
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function getParent()
|
||||||
{
|
{
|
||||||
return $this->parent;
|
return $this->parent;
|
||||||
}
|
}
|
||||||
|
|
@ -109,8 +184,21 @@ class WikiCategory implements \JsonSerializable
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function jsonSerialize() : array
|
public function toArray() : array
|
||||||
{
|
{
|
||||||
return [];
|
return [
|
||||||
|
'id' => $this->id,
|
||||||
|
'app' => $this->app,
|
||||||
|
'name' => $this->name,
|
||||||
|
'path' => $this->path,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function jsonSerialize()
|
||||||
|
{
|
||||||
|
return $this->toArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,10 +34,29 @@ final class WikiCategoryMapper extends DataMapperAbstract
|
||||||
*/
|
*/
|
||||||
protected static array $columns = [
|
protected static array $columns = [
|
||||||
'wiki_category_id' => ['name' => 'wiki_category_id', 'type' => 'int', 'internal' => 'id'],
|
'wiki_category_id' => ['name' => 'wiki_category_id', 'type' => 'int', 'internal' => 'id'],
|
||||||
|
'wiki_category_app' => ['name' => 'wiki_category_app', 'type' => 'int', 'internal' => 'app'],
|
||||||
'wiki_category_name' => ['name' => 'wiki_category_name', 'type' => 'string', 'internal' => 'name'],
|
'wiki_category_name' => ['name' => 'wiki_category_name', 'type' => 'string', 'internal' => 'name'],
|
||||||
|
'wiki_category_path' => ['name' => 'wiki_category_path', 'type' => 'string', 'internal' => 'path'],
|
||||||
'wiki_category_parent' => ['name' => 'wiki_category_parent', 'type' => 'int', 'internal' => 'parent'],
|
'wiki_category_parent' => ['name' => 'wiki_category_parent', 'type' => 'int', 'internal' => 'parent'],
|
||||||
];
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Has owns one relation.
|
||||||
|
*
|
||||||
|
* @var array<string, array<string, null|string>>
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
protected static array $belongsTo = [
|
||||||
|
'parent' => [
|
||||||
|
'mapper' => WikiCategoryMapper::class,
|
||||||
|
'self' => 'wiki_category_parent',
|
||||||
|
],
|
||||||
|
'app' => [
|
||||||
|
'mapper' => WikiAppMapper::class,
|
||||||
|
'self' => 'wiki_category_app'
|
||||||
|
],
|
||||||
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Primary table.
|
* Primary table.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,16 @@ class WikiDoc implements \JsonSerializable
|
||||||
*/
|
*/
|
||||||
protected int $id = 0;
|
protected int $id = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* App id.
|
||||||
|
*
|
||||||
|
* There can be different wikis
|
||||||
|
*
|
||||||
|
* @var null|int|WikiApp
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
private $app = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Name.
|
* Name.
|
||||||
*
|
*
|
||||||
|
|
@ -40,29 +50,53 @@ class WikiDoc implements \JsonSerializable
|
||||||
*/
|
*/
|
||||||
private string $name = '';
|
private string $name = '';
|
||||||
|
|
||||||
private int $status = WikiStatus::ACTIVE;
|
|
||||||
|
|
||||||
private $doc = '';
|
|
||||||
|
|
||||||
private $category = 0;
|
|
||||||
|
|
||||||
private $language = '';
|
|
||||||
|
|
||||||
private $createdBy = 0;
|
|
||||||
|
|
||||||
private $createdAt = null;
|
|
||||||
|
|
||||||
private $badges = [];
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Article status.
|
||||||
*
|
*
|
||||||
|
* @var int
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
public function __construct()
|
private int $status = WikiStatus::ACTIVE;
|
||||||
{
|
|
||||||
$this->createdAt = new \DateTime('now');
|
/**
|
||||||
}
|
* Document content.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
private string $doc = '';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Document raw content.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
private string $docRaw = '';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Category.
|
||||||
|
*
|
||||||
|
* @var int|WikiCategory
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
private $category = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Language.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
private $language = 'en';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tags.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
private $tags = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get id.
|
* Get id.
|
||||||
|
|
@ -76,6 +110,32 @@ class WikiDoc implements \JsonSerializable
|
||||||
return $this->id;
|
return $this->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get app
|
||||||
|
*
|
||||||
|
* @return null|int|WikiApp
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function getApp()
|
||||||
|
{
|
||||||
|
return $this->app;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set app
|
||||||
|
*
|
||||||
|
* @param int $app App
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function setApp(int $app) : void
|
||||||
|
{
|
||||||
|
$this->app = $app;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get language
|
* Get language
|
||||||
*
|
*
|
||||||
|
|
@ -154,6 +214,32 @@ class WikiDoc implements \JsonSerializable
|
||||||
$this->doc = $doc;
|
$this->doc = $doc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get content
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function getDocRaw() : string
|
||||||
|
{
|
||||||
|
return $this->docRaw;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set content
|
||||||
|
*
|
||||||
|
* @param string $doc Document content
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function setDocRaw(string $doc) : void
|
||||||
|
{
|
||||||
|
$this->docRaw = $doc;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get status
|
* Get status
|
||||||
*
|
*
|
||||||
|
|
@ -207,67 +293,29 @@ class WikiDoc implements \JsonSerializable
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get created by
|
* Get tags
|
||||||
*
|
|
||||||
* @return int|\phpOMS\Account\Account
|
|
||||||
*
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
public function getCreatedBy() : int
|
|
||||||
{
|
|
||||||
return $this->createdBy;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set created by
|
|
||||||
*
|
|
||||||
* @param mixed $id Created by
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
public function setCreatedBy($id) : void
|
|
||||||
{
|
|
||||||
$this->createdBy = $id;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get created at date time
|
|
||||||
*
|
|
||||||
* @return \DateTime
|
|
||||||
*
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
public function getCreatedAt() : \DateTime
|
|
||||||
{
|
|
||||||
return $this->createdAt;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get badges
|
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
public function getBadges() : array
|
public function getTags() : array
|
||||||
{
|
{
|
||||||
return $this->badges;
|
return $this->tags;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add badge
|
* Add tag
|
||||||
*
|
*
|
||||||
* @param mixed $badge Badge
|
* @param mixed $tag Tag
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
public function addBadge($badge) : void
|
public function addTag($tag) : void
|
||||||
{
|
{
|
||||||
$this->badges[] = $badge;
|
$this->tags[] = $tag;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -33,14 +33,13 @@ final class WikiDocMapper extends DataMapperAbstract
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
protected static array $columns = [
|
protected static array $columns = [
|
||||||
'wiki_article_id' => ['name' => 'wiki_article_id', 'type' => 'int', 'internal' => 'id'],
|
'wiki_article_id' => ['name' => 'wiki_article_id', 'type' => 'int', 'internal' => 'id'],
|
||||||
'wiki_article_title' => ['name' => 'wiki_article_title', 'type' => 'string', 'internal' => 'name'],
|
'wiki_article_app' => ['name' => 'wiki_article_app', 'type' => 'int', 'internal' => 'app'],
|
||||||
'wiki_article_language' => ['name' => 'wiki_article_language', 'type' => 'string', 'internal' => 'language'],
|
'wiki_article_title' => ['name' => 'wiki_article_title', 'type' => 'string', 'internal' => 'name'],
|
||||||
'wiki_article_doc' => ['name' => 'wiki_article_doc', 'type' => 'string', 'internal' => 'doc'],
|
'wiki_article_language' => ['name' => 'wiki_article_language', 'type' => 'string', 'internal' => 'language'],
|
||||||
'wiki_article_status' => ['name' => 'wiki_article_status', 'type' => 'int', 'internal' => 'status'],
|
'wiki_article_doc' => ['name' => 'wiki_article_doc', 'type' => 'string', 'internal' => 'doc'],
|
||||||
'wiki_article_category' => ['name' => 'wiki_article_category', 'type' => 'int', 'internal' => 'category'],
|
'wiki_article_status' => ['name' => 'wiki_article_status', 'type' => 'int', 'internal' => 'status'],
|
||||||
'wiki_article_created_by' => ['name' => 'wiki_article_created_by', 'type' => 'int', 'internal' => 'createdBy'],
|
'wiki_article_category' => ['name' => 'wiki_article_category', 'type' => 'int', 'internal' => 'category'],
|
||||||
'wiki_article_created_at' => ['name' => 'wiki_article_created_at', 'type' => 'DateTime', 'internal' => 'createdAt', 'readonly' => true],
|
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -65,10 +64,14 @@ final class WikiDocMapper extends DataMapperAbstract
|
||||||
* @var array<string, array<string, null|string>>
|
* @var array<string, array<string, null|string>>
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
protected static array $ownsOne = [
|
protected static array $belongsTo = [
|
||||||
'category' => [
|
'category' => [
|
||||||
'mapper' => WikiCategoryMapper::class,
|
'mapper' => WikiCategoryMapper::class,
|
||||||
'external' => 'wiki_article_category',
|
'self' => 'wiki_article_category',
|
||||||
|
],
|
||||||
|
'app' => [
|
||||||
|
'mapper' => WikiAppMapper::class,
|
||||||
|
'self' => 'wiki_article_app'
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
@ -80,14 +83,6 @@ final class WikiDocMapper extends DataMapperAbstract
|
||||||
*/
|
*/
|
||||||
protected static string $table = 'wiki_article';
|
protected static string $table = 'wiki_article';
|
||||||
|
|
||||||
/**
|
|
||||||
* Created at.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
protected static string $createdAt = 'wiki_article_created_at';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Primary field name.
|
* Primary field name.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user