100 lines
2.0 KiB
PHP
100 lines
2.0 KiB
PHP
|
|
<?php
|
|||
|
|
|
|||
|
|
namespace app\repository;
|
|||
|
|
|
|||
|
|
use MongoDB\Laravel\Eloquent\Model;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 数据源仓储
|
|||
|
|
*
|
|||
|
|
* 对应集合:data_sources
|
|||
|
|
*/
|
|||
|
|
class DataSourceRepository extends Model
|
|||
|
|
{
|
|||
|
|
/**
|
|||
|
|
* 指定使用的数据库连接
|
|||
|
|
*
|
|||
|
|
* @var string
|
|||
|
|
*/
|
|||
|
|
protected $connection = 'mongodb';
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 对应的 MongoDB 集合名
|
|||
|
|
*
|
|||
|
|
* @var string
|
|||
|
|
*/
|
|||
|
|
protected $table = 'data_sources';
|
|||
|
|
|
|||
|
|
protected $primaryKey = 'data_source_id';
|
|||
|
|
|
|||
|
|
public $incrementing = false;
|
|||
|
|
|
|||
|
|
protected $keyType = 'string';
|
|||
|
|
|
|||
|
|
protected $fillable = [
|
|||
|
|
'data_source_id',
|
|||
|
|
'name',
|
|||
|
|
'type',
|
|||
|
|
'host',
|
|||
|
|
'port',
|
|||
|
|
'database',
|
|||
|
|
'username',
|
|||
|
|
'password',
|
|||
|
|
'auth_source',
|
|||
|
|
'options',
|
|||
|
|
'description',
|
|||
|
|
'status',
|
|||
|
|
'is_tag_engine', // 是否为标签引擎数据库(ckb数据库)
|
|||
|
|
'created_at',
|
|||
|
|
'updated_at',
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
protected $casts = [
|
|||
|
|
'port' => 'int',
|
|||
|
|
'options' => 'array',
|
|||
|
|
'status' => 'int',
|
|||
|
|
'is_tag_engine' => 'bool',
|
|||
|
|
'created_at' => 'datetime',
|
|||
|
|
'updated_at' => 'datetime',
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
public $timestamps = true;
|
|||
|
|
|
|||
|
|
const CREATED_AT = 'created_at';
|
|||
|
|
const UPDATED_AT = 'updated_at';
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 转换为配置格式(兼容原有的config格式)
|
|||
|
|
*
|
|||
|
|
* @return array<string, mixed>
|
|||
|
|
*/
|
|||
|
|
public function toConfigArray(): array
|
|||
|
|
{
|
|||
|
|
$config = [
|
|||
|
|
'type' => $this->type,
|
|||
|
|
'host' => $this->host,
|
|||
|
|
'port' => $this->port,
|
|||
|
|
'database' => $this->database,
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
if ($this->username) {
|
|||
|
|
$config['username'] = $this->username;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if ($this->password) {
|
|||
|
|
$config['password'] = $this->password;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if ($this->auth_source) {
|
|||
|
|
$config['auth_source'] = $this->auth_source;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if ($this->options) {
|
|||
|
|
$config['options'] = $this->options;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return $config;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|