diff --git a/app/Config/Routes.php b/app/Config/Routes.php
index c71d95d..c155457 100644
--- a/app/Config/Routes.php
+++ b/app/Config/Routes.php
@@ -161,6 +161,19 @@ $routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'au
$routes->post('batchjob_delete', 'PartController::batchjob_delete');
$routes->get('download/(:alpha)', 'PartController::download/$1');
});
+ $routes->group('defence', ['namespace' => 'App\Controllers\Admin\Equipment'], function ($routes) {
+ $routes->get('/', 'DefenceController::index', []);
+ $routes->get('create', 'DefenceController::create_form');
+ $routes->post('create', 'DefenceController::create');
+ $routes->get('modify/(:num)', 'DefenceController::modify_form/$1');
+ $routes->post('modify/(:num)', 'DefenceController::modify/$1');
+ $routes->get('view/(:num)', 'DefenceController::view/$1');
+ $routes->get('delete/(:num)', 'DefenceController::delete/$1');
+ $routes->get('toggle/(:num)/(:any)', 'DefenceController::toggle/$1/$2');
+ $routes->post('batchjob', 'DefenceController::batchjob');
+ $routes->post('batchjob_delete', 'DefenceController::batchjob_delete');
+ $routes->get('download/(:alpha)', 'DefenceController::download/$1');
+ });
$routes->group('software', ['namespace' => 'App\Controllers\Admin\Equipment'], function ($routes) {
$routes->get('/', 'SoftwareController::index', []);
$routes->get('create', 'SoftwareController::create_form');
@@ -174,5 +187,18 @@ $routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'au
$routes->post('batchjob_delete', 'SoftwareController::batchjob_delete');
$routes->get('download/(:alpha)', 'SoftwareController::download/$1');
});
+ $routes->group('serverpart', ['namespace' => 'App\Controllers\Admin\Equipment'], function ($routes) {
+ $routes->get('/', 'ServerPartController::index', []);
+ $routes->get('create', 'ServerPartController::create_form');
+ $routes->post('create', 'ServerPartController::create');
+ $routes->get('modify/(:num)', 'ServerPartController::modify_form/$1');
+ $routes->post('modify/(:num)', 'ServerPartController::modify/$1');
+ $routes->get('view/(:num)', 'ServerPartController::view/$1');
+ $routes->get('delete/(:num)', 'ServerPartController::delete/$1');
+ $routes->get('toggle/(:num)/(:any)', 'ServerPartController::toggle/$1/$2');
+ $routes->post('batchjob', 'ServerPartController::batchjob');
+ $routes->post('batchjob_delete', 'ServerPartController::batchjob_delete');
+ $routes->get('download/(:alpha)', 'ServerPartController::download/$1');
+ });
});
});
diff --git a/app/Controllers/Admin/Customer/ClientController.php b/app/Controllers/Admin/Customer/ClientController.php
index dfe030e..08fd58e 100644
--- a/app/Controllers/Admin/Customer/ClientController.php
+++ b/app/Controllers/Admin/Customer/ClientController.php
@@ -57,7 +57,7 @@ class ClientController extends CustomerController
protected function view_process($uid): mixed
{
$fields = [
- 'fields' => [$this->getService()->getModel()->getTitleField(), 'email', 'phone', 'role', 'account_balance', 'coupon_balance', 'point_balance', 'status'],
+ 'fields' => ['name', 'email', 'phone', 'role', 'account_balance', 'coupon_balance', 'point_balance', 'status'],
];
$this->init('view', $fields);
return parent::view_process($uid);
@@ -65,7 +65,7 @@ class ClientController extends CustomerController
protected function index_process(): array
{
$fields = [
- 'fields' => [$this->getService()->getModel()->getTitleField(), 'email', 'phone', 'role', 'account_balance', 'coupon_balance', 'point_balance', 'status'],
+ 'fields' => ['name', 'email', 'phone', 'role', 'account_balance', 'coupon_balance', 'point_balance', 'status'],
];
$this->init('index', $fields);
return parent::index_process();
diff --git a/app/Controllers/Admin/Customer/ServiceController.php b/app/Controllers/Admin/Customer/ServiceController.php
index 0d39626..72d0ff3 100644
--- a/app/Controllers/Admin/Customer/ServiceController.php
+++ b/app/Controllers/Admin/Customer/ServiceController.php
@@ -2,18 +2,19 @@
namespace App\Controllers\Admin\Customer;
-use App\Entities\Customer\ServicePartEntity;
-use App\Helpers\Customer\ServiceHelper;
-use App\Services\Customer\ServiceService;
-use App\Services\Equipment\PartService;
-use App\Services\Equipment\IpService;
-
use App\Services\Equipment\ServerService;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use CodeIgniter\Validation\Validation;
use Psr\Log\LoggerInterface;
+use App\Entities\Customer\ServicePartEntity;
+use App\Services\Customer\ServicePartService;
+use App\Helpers\Customer\ServiceHelper;
+use App\Services\Customer\ServiceService;
+use App\Services\Equipment\PartService;
+use App\Services\Equipment\IpService;
+
class ServiceController extends CustomerController
{
private ?ServerService $_serverService = null;
@@ -23,13 +24,11 @@ class ServiceController extends CustomerController
{
parent::initController($request, $response, $logger);
$this->uri_path .= strtolower($this->getService()->getClassName()) . '/';
- $this->view_path .= strtolower($this->getService()->getClassName()) . DIRECTORY_SEPARATOR;
- // echo $this->view_path;
- // exit;
+ // $this->view_path .= strtolower($this->getService()->getClassName()) . DIRECTORY_SEPARATOR;
$this->class_path = $this->getService()->getClassPath();
$this->title = lang("{$this->getService()->getClassPath()}.title");
$this->helper = $this->getHelper();
- $this->individualStylesheets = ['server_partinfo.css'];;
+ $this->individualStylesheets = ['server_partinfo.css'];
$this->individualScripts = ['server_partinfo.js'];
}
public function getService(): ServiceService
@@ -67,106 +66,28 @@ class ServiceController extends CustomerController
}
return $this->_ipService;
}
-
- //Index,FieldForm관련
- protected function getFieldRule(string $action, string $field): string
- {
- if (is_array($field)) {
- throw new \Exception(__FUNCTION__ . "=> field가 array 입니다.\n" . var_export($field, true));
- }
- switch ($field) {
- case 'CPU':
- case 'RAM':
- case 'DISK':
- $rule = "if_exist|permit_empty|numeric";
- break;
- default:
- $rule = parent::getFieldRule($action, $field);
- break;
- }
- return $rule;
- }
- protected function getFormFieldOption(string $field, array $options = []): array
- {
- switch ($field) {
- case 'SERVER':
- $options[$field] = $this->getServerService()->getFormFieldOption($field);
- break;
- case 'CPU':
- case 'RAM':
- case 'DISK':
- $options[$field] = $this->getPartService()->getFormFieldOption($field);
- break;
- case 'IP':
- $options[$field] = $this->getIPService()->getFormFieldOption($field);
- break;
- default:
- $options = parent::getFormFieldOption($field, $options);
- break;
- }
- return $options;
- }
- protected function setValidation(Validation $validation, string $action, string $field, ?string $rule = null): Validation
- {
- switch ($field) {
- case 'SERVER':
- case 'CPU':
- case 'RAM':
- case 'DISK':
- case 'IP':
- //아래 Rule Array는 필드명.* checkbox를 사용
- $validation->setRule("{$field}.*", $field, $rule);
- break;
- default:
- $validation = parent::setValidation($validation, $action, $field, $rule);
- break;
- }
- return $validation;
- }
//Index,FieldForm관련
- protected function create_process(): mixed
+ private function setPartEntity(ServiceEntity $entity): ServiceEntity
{
- $entity = parent::create_process();
- //변경할 UIDS
- $cpu_uids = $this->request->getVar('CPU[]');
- if (!is_array($cpu_uids)) {
- throw new \Exception("CPU가 정의되지 않았습니다.");
- }
- foreach ($cpu_uids as $uid) {
- $temps = ['serviceinfo_uid' => $entity->getPK(), 'partinfo_uid' => $uid];
- $this->getService()->create($temps, new ServicePartEntity());
- }
- $ram_uids = $this->request->getVar('RAM[]');
- if (!is_array($ram_uids)) {
- throw new \Exception("RAM가 정의되지 않았습니다.");
- }
- foreach ($ram_uids as $uid) {
- $temps = ['serviceinfo_uid' => $entity->getPK(), 'partinfo_uid' => $uid];
- $this->getService()->create($temps, new ServicePartEntity());
- }
- $disk_uids = $this->request->getVar('DISK[]');
- if (!is_array($disk_uids)) {
- throw new \Exception("DISK가 정의되지 않았습니다.");
- }
- foreach ($disk_uids as $uid) {
- $temps = ['serviceinfo_uid' => $entity->getPK(), 'partinfo_uid' => $uid];
- $this->getService()->create($temps, new ServicePartEntity());
+ foreach ($this->getServicePartService()->getEntities(['serviceinfo_uid' => $entity->getPK()]) as $servicePartEntity) {
+ $partEntity = $this->getPartService()->getEntity($servicePartEntity->getPartInfo());
+ if ($partEntity) {
+ $entity->addPartEntity($partEntity->getType(), $partEntity);
+ }
}
return $entity;
}
protected function index_process(): array
{
$fields = [
- 'fields' => ['clientinfo_uid', 'type', $this->getService()->getModel()->getTitleField(), 'billing_at', 'start_at', 'end_at', 'status'],
+ 'fields' => ['type', 'model', 'IP', 'SERVER', 'CPU', 'RAM', 'DISK', 'status'],
];
$this->init('index', $fields);
$this->modal_type = 'modal_iframe';
- $entities = parent::index_process();
- foreach ($entities as $key => $entity) {
- $entity->CPU = $this->getServerService()->getEntities(['serverinfo_uid' => $entity->getPK()]);
- $entity->RAM = $this->getServerService()->getEntities(['serverinfo_uid' => $entity->getPK()]);
- $entity->DISK = $this->getServerService()->getEntities(['serverinfo_uid' => $entity->getPK()]);
+ $entities = [];
+ foreach (parent::index_process() as $entity) {
+ $entities[] = $this->setPartEntity($entity);
}
return $entities;
}
diff --git a/app/Controllers/Admin/Customer/ServicePartController.php b/app/Controllers/Admin/Customer/ServicePartController.php
new file mode 100644
index 0000000..2ee9427
--- /dev/null
+++ b/app/Controllers/Admin/Customer/ServicePartController.php
@@ -0,0 +1,93 @@
+uri_path .= strtolower($this->getService()->getClassName()) . '/';
+ $this->class_path = $this->getService()->getClassPath();
+ $this->title = lang("{$this->getService()->getClassPath()}.title");
+ $this->helper = $this->getHelper();
+ }
+ public function getService(): ServicePartService
+ {
+ if (!$this->_service) {
+ $this->_service = new ServicePartService($this->request);
+ }
+ return $this->_service;
+ }
+ public function getHelper(): mixed
+ {
+ if (!$this->_helper) {
+ $this->_helper = new ServicePartHelper($this->request);
+ }
+ return $this->_helper;
+ }
+ final public function getPartService(): PartService
+ {
+ if (!$this->_partService) {
+ $this->_partService = new PartService($this->request);
+ }
+ return $this->_partService;
+ }
+ protected function getFormFieldOption(string $field, array $options = []): array
+ {
+ switch ($field) {
+ case 'serverinfo_uid':
+ $options[$field] = $this->getServiceService()->getFormFieldOption($field);
+ break;
+ case 'partinfo_uid':
+ $options[$field] = $this->getPartService()->getFormFieldOption($field);
+ break;
+ default:
+ $options = parent::getFormFieldOption($field, $options);
+ break;
+ }
+ return $options;
+ }
+ protected function getResultPageByActon(string $action, string $message = MESSAGES["SUCCESS"]): RedirectResponse|string
+ {
+ switch ($action) {
+ case 'index':
+ case 'view':
+ $this->getHelper()->setViewDatas($this->getViewDatas());
+ $result = view($this->view_path . "popup" . DIRECTORY_SEPARATOR . $action, ['viewDatas' => $this->getViewDatas()]);
+ break;
+ default:
+ $result = parent::getResultPageByActon($action, $message);
+ break;
+ }
+ return $result;
+ }
+ //Index,FieldForm관련
+
+
+ protected function setOrderByForList()
+ {
+ //OrderBy 처리
+ $this->getService()->getModel()->orderBy('serverinfo_uid', 'ASC', false);
+ parent::setOrderByForList();
+ }
+ protected function index_process(): array
+ {
+ $fields = [
+ 'fields' => ['serverinfo_uid', 'type', 'partinfo_uid'],
+ ];
+ $this->init('index', $fields);
+ $this->modal_type = 'modal_iframe';
+ return parent::index_process();
+ }
+}
diff --git a/app/Controllers/Admin/Equipment/DefenceController.php b/app/Controllers/Admin/Equipment/DefenceController.php
new file mode 100644
index 0000000..d38de43
--- /dev/null
+++ b/app/Controllers/Admin/Equipment/DefenceController.php
@@ -0,0 +1,55 @@
+uri_path .= strtolower($this->getService()->getClassName()) . '/';
+
+ $this->class_path = $this->getService()->getClassPath();
+ $this->title = lang("{$this->getService()->getClassPath()}.title");
+ $this->helper = $this->getHelper();
+ }
+ public function getService(): DefenceService
+ {
+ if (!$this->_service) {
+ $this->_service = new DefenceService($this->request);
+ }
+ return $this->_service;
+ }
+ public function getHelper(): mixed
+ {
+ if (!$this->_helper) {
+ $this->_helper = new DefenceHelper($this->request);
+ }
+ return $this->_helper;
+ }
+ //Index,FieldForm관련
+
+ protected function setOrderByForList()
+ {
+ //OrderBy 처리
+ $this->getService()->getModel()->orderBy('INET_ATON(ip)', 'ASC', false);
+ parent::setOrderByForList();
+ }
+
+ protected function index_process(): array
+ {
+ $fields = [
+ 'fields' => ['type', 'ip', 'accountid', 'domain', 'status'],
+ ];
+ $this->init('index', $fields);
+ $this->modal_type = 'modal_iframe';
+ return parent::index_process();
+ }
+}
diff --git a/app/Controllers/Admin/Equipment/EquipmentController.php b/app/Controllers/Admin/Equipment/EquipmentController.php
index 456fd4a..99881bc 100644
--- a/app/Controllers/Admin/Equipment/EquipmentController.php
+++ b/app/Controllers/Admin/Equipment/EquipmentController.php
@@ -17,8 +17,8 @@ abstract class EquipmentController extends AdminController
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
parent::initController($request, $response, $logger);
- $this->uri_path .= 'device/';
- // $this->view_path .= "device" . DIRECTORY_SEPARATOR;
+ $this->uri_path .= 'equipment/';
+ // $this->view_path .= "equipment" . DIRECTORY_SEPARATOR;
}
final public function getServerService(): ServerService
{
diff --git a/app/Controllers/Admin/Equipment/IpController.php b/app/Controllers/Admin/Equipment/IpController.php
index 4f3b64e..a6ce47d 100644
--- a/app/Controllers/Admin/Equipment/IpController.php
+++ b/app/Controllers/Admin/Equipment/IpController.php
@@ -45,7 +45,7 @@ class IpController extends EquipmentController
protected function index_process(): array
{
$fields = [
- 'fields' => ['lineinfo_uid', $this->getService()->getModel()->getTitleField(), 'status', 'updated_at'],
+ 'fields' => ['lineinfo_uid', 'ip', 'status', 'updated_at'],
];
$this->init('index', $fields);
return parent::index_process();
diff --git a/app/Controllers/Admin/Equipment/LineController.php b/app/Controllers/Admin/Equipment/LineController.php
index 72a493c..e269d4f 100644
--- a/app/Controllers/Admin/Equipment/LineController.php
+++ b/app/Controllers/Admin/Equipment/LineController.php
@@ -68,7 +68,7 @@ class LineController extends EquipmentController
protected function view_process($uid): mixed
{
$fields = [
- 'fields' => ['clientinfo_uid', 'type', $this->getService()->getModel()->getTitleField(), 'bandwith', 'status', "start_at", 'created_at'],
+ 'fields' => ['clientinfo_uid', 'type', 'title', 'bandwith', 'status', "start_at", 'created_at'],
];
$this->init('view', $fields);
return parent::view_process($uid);
@@ -77,9 +77,10 @@ class LineController extends EquipmentController
protected function index_process(): array
{
$fields = [
- 'fields' => ['clientinfo_uid', 'type', $this->getService()->getModel()->getTitleField(), 'bandwith', 'status', "start_at", 'created_at'],
+ 'fields' => ['clientinfo_uid', 'type', 'title', 'bandwith', 'status', "start_at", 'created_at'],
];
$this->init('index', $fields);
+ $this->modal_type = 'modal_iframe';
return parent::index_process();
}
}
diff --git a/app/Controllers/Admin/Equipment/PartController.php b/app/Controllers/Admin/Equipment/PartController.php
index f92439d..29412d7 100644
--- a/app/Controllers/Admin/Equipment/PartController.php
+++ b/app/Controllers/Admin/Equipment/PartController.php
@@ -2,13 +2,12 @@
namespace App\Controllers\Admin\Equipment;
-use CodeIgniter\HTTP\RequestInterface;
-use CodeIgniter\HTTP\ResponseInterface;
-use CodeIgniter\Validation\Validation;
-use Psr\Log\LoggerInterface;
-
use App\Helpers\Equipment\PartHelper;
use App\Services\Equipment\PartService;
+use CodeIgniter\HTTP\RequestInterface;
+
+use CodeIgniter\HTTP\ResponseInterface;
+use Psr\Log\LoggerInterface;
class PartController extends EquipmentController
{
@@ -35,10 +34,17 @@ class PartController extends EquipmentController
return $this->_helper;
}
//Index,FieldForm관련
+
+ protected function setOrderByForList()
+ {
+ //OrderBy 처리
+ $this->getService()->getModel()->orderBy('type', 'ASC', false);
+ parent::setOrderByForList();
+ }
protected function index_process(): array
{
$fields = [
- 'fields' => ['type', $this->getService()->getModel()->getTitleField(), 'manufactur_at', 'status'],
+ 'fields' => ['type', 'model', 'status'],
];
$this->init('index', $fields);
$this->modal_type = 'modal_iframe';
diff --git a/app/Controllers/Admin/Equipment/ServerController.php b/app/Controllers/Admin/Equipment/ServerController.php
index b3bc6ad..86af257 100644
--- a/app/Controllers/Admin/Equipment/ServerController.php
+++ b/app/Controllers/Admin/Equipment/ServerController.php
@@ -2,24 +2,32 @@
namespace App\Controllers\Admin\Equipment;
-use App\Entities\Equipment\ServerPartEntity;
-use App\Helpers\Equipment\ServerHelper;
-
-use App\Services\Equipment\ServerService;
+use App\Entities\Equipment\ServerEntity;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
+use CodeIgniter\Validation\Validation;
+
+use App\Helpers\Equipment\ServerHelper;
+use App\Services\Equipment\ServerService;
+use App\Services\Equipment\PartService;
+use App\Services\Equipment\ServerPartService;
+use App\Entities\Equipment\ServerPartEntity;
class ServerController extends EquipmentController
{
+ private ?PartService $_partService = null;
+ private ?ServerPartService $_serverPartService = null;
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
parent::initController($request, $response, $logger);
$this->uri_path .= strtolower($this->getService()->getClassName()) . '/';
-
+ // $this->view_path .= strtolower($this->getService()->getClassName()) . DIRECTORY_SEPARATOR;
$this->class_path = $this->getService()->getClassPath();
$this->title = lang("{$this->getService()->getClassPath()}.title");
$this->helper = $this->getHelper();
+ $this->individualStylesheets = ['server_partinfo.css'];
+ $this->individualScripts = ['server_partinfo.js'];
}
public function getService(): ServerService
{
@@ -35,15 +43,42 @@ class ServerController extends EquipmentController
}
return $this->_helper;
}
+ final public function getPartService(): PartService
+ {
+ if (!$this->_partService) {
+ $this->_partService = new PartService($this->request);
+ }
+ return $this->_partService;
+ }
+ final public function getServerPartService(): ServerPartService
+ {
+ if (!$this->_serverPartService) {
+ $this->_serverPartService = new ServerPartService($this->request);
+ }
+ return $this->_serverPartService;
+ }
//Index,FieldForm관련
-
+ private function setPartEntity(ServerEntity $entity): ServerEntity
+ {
+ foreach ($this->getServerPartService()->getEntities(['serverinfo_uid' => $entity->getPK()]) as $serverPartEntity) {
+ $partEntity = $this->getPartService()->getEntity($serverPartEntity->getPartInfo());
+ if ($partEntity) {
+ $entity->addPartEntity($partEntity->getType(), $partEntity);
+ }
+ }
+ return $entity;
+ }
protected function index_process(): array
{
$fields = [
- 'fields' => ['code', 'type', $this->getService()->getModel()->getTitleField(), 'manufactur_at', 'status'],
+ 'fields' => ['code', 'type', 'model', 'CPU', 'RAM', 'DISK', 'status'],
];
$this->init('index', $fields);
$this->modal_type = 'modal_iframe';
- return parent::index_process();
+ $entities = [];
+ foreach (parent::index_process() as $entity) {
+ $entities[] = $this->setPartEntity($entity);
+ }
+ return $entities;
}
}
diff --git a/app/Controllers/Admin/Equipment/ServerPartController.php b/app/Controllers/Admin/Equipment/ServerPartController.php
new file mode 100644
index 0000000..8eea678
--- /dev/null
+++ b/app/Controllers/Admin/Equipment/ServerPartController.php
@@ -0,0 +1,93 @@
+uri_path .= strtolower($this->getService()->getClassName()) . '/';
+ $this->class_path = $this->getService()->getClassPath();
+ $this->title = lang("{$this->getService()->getClassPath()}.title");
+ $this->helper = $this->getHelper();
+ }
+ public function getService(): ServerPartService
+ {
+ if (!$this->_service) {
+ $this->_service = new ServerPartService($this->request);
+ }
+ return $this->_service;
+ }
+ public function getHelper(): mixed
+ {
+ if (!$this->_helper) {
+ $this->_helper = new ServerPartHelper($this->request);
+ }
+ return $this->_helper;
+ }
+ final public function getPartService(): PartService
+ {
+ if (!$this->_partService) {
+ $this->_partService = new PartService($this->request);
+ }
+ return $this->_partService;
+ }
+ protected function getFormFieldOption(string $field, array $options = []): array
+ {
+ switch ($field) {
+ case 'serverinfo_uid':
+ $options[$field] = $this->getServerService()->getFormFieldOption($field);
+ break;
+ case 'partinfo_uid':
+ $options[$field] = $this->getPartService()->getFormFieldOption($field);
+ break;
+ default:
+ $options = parent::getFormFieldOption($field, $options);
+ break;
+ }
+ return $options;
+ }
+ protected function getResultPageByActon(string $action, string $message = MESSAGES["SUCCESS"]): RedirectResponse|string
+ {
+ switch ($action) {
+ case 'index':
+ case 'view':
+ $this->getHelper()->setViewDatas($this->getViewDatas());
+ $result = view($this->view_path . "popup" . DIRECTORY_SEPARATOR . $action, ['viewDatas' => $this->getViewDatas()]);
+ break;
+ default:
+ $result = parent::getResultPageByActon($action, $message);
+ break;
+ }
+ return $result;
+ }
+ //Index,FieldForm관련
+
+
+ protected function setOrderByForList()
+ {
+ //OrderBy 처리
+ $this->getService()->getModel()->orderBy('serverinfo_uid', 'ASC', false);
+ parent::setOrderByForList();
+ }
+ protected function index_process(): array
+ {
+ $fields = [
+ 'fields' => ['serverinfo_uid', 'type', 'partinfo_uid'],
+ ];
+ $this->init('index', $fields);
+ $this->modal_type = 'modal_iframe';
+ return parent::index_process();
+ }
+}
diff --git a/app/Controllers/Admin/Equipment/SoftwareController.php b/app/Controllers/Admin/Equipment/SoftwareController.php
index 95b8e97..20b5a06 100644
--- a/app/Controllers/Admin/Equipment/SoftwareController.php
+++ b/app/Controllers/Admin/Equipment/SoftwareController.php
@@ -4,7 +4,7 @@ namespace App\Controllers\Admin\Equipment;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
-use CodeIgniter\Validation\Validation;
+
use Psr\Log\LoggerInterface;
use App\Helpers\Equipment\SoftwareHelper;
@@ -38,7 +38,7 @@ class SoftwareController extends EquipmentController
protected function index_process(): array
{
$fields = [
- 'fields' => ['type', $this->getService()->getModel()->getTitleField(), 'status', 'description'],
+ 'fields' => ['type', 'model', 'status', 'description'],
];
$this->init('index', $fields);
$this->modal_type = 'modal_iframe';
diff --git a/app/Controllers/Admin/MyLogController.php b/app/Controllers/Admin/MyLogController.php
index b03a3bb..5f97ec6 100644
--- a/app/Controllers/Admin/MyLogController.php
+++ b/app/Controllers/Admin/MyLogController.php
@@ -66,7 +66,7 @@ class MyLogController extends AdminController
protected function view_process($uid): mixed
{
$fields = [
- 'fields' => ['user_uid', 'class_name', 'method_name', $this->getService()->getModel()->getTitleField(), 'status', 'created_at', 'content'],
+ 'fields' => ['user_uid', 'class_name', 'method_name', 'title', 'status', 'created_at', 'content'],
];
$this->init('view', $fields);
return parent::view_process($uid);
@@ -74,7 +74,7 @@ class MyLogController extends AdminController
protected function index_process(): array
{
$fields = [
- 'fields' => ['user_uid', 'class_name', 'method_name', $this->getService()->getModel()->getTitleField(), 'status', 'created_at'],
+ 'fields' => ['user_uid', 'class_name', 'method_name', 'title', 'status', 'created_at'],
];
$this->init('index', $fields);
return parent::index_process();
diff --git a/app/Controllers/Admin/UserController.php b/app/Controllers/Admin/UserController.php
index f7a6eaf..38a06f3 100644
--- a/app/Controllers/Admin/UserController.php
+++ b/app/Controllers/Admin/UserController.php
@@ -73,7 +73,7 @@ class UserController extends AdminController
protected function view_process($uid): mixed
{
$fields = [
- 'fields' => ['id', $this->getService()->getModel()->getTitleField(), 'email', 'mobile', 'role', 'status'],
+ 'fields' => ['id', 'name', 'email', 'mobile', 'role', 'status'],
];
$this->init('view', $fields);
return parent::view_process($uid);
@@ -81,7 +81,7 @@ class UserController extends AdminController
protected function index_process(): array
{
$fields = [
- 'fields' => ['id', $this->getService()->getModel()->getTitleField(), 'email', 'mobile', 'role', 'status'],
+ 'fields' => ['id', 'name', 'email', 'mobile', 'role', 'status'],
];
$this->init('index', $fields);
return parent::index_process();
diff --git a/app/Controllers/CommonController.php b/app/Controllers/CommonController.php
index d7dc774..b392ed3 100644
--- a/app/Controllers/CommonController.php
+++ b/app/Controllers/CommonController.php
@@ -144,7 +144,7 @@ abstract class CommonController extends BaseController
{
switch ($field) {
default:
- $validation->setRule($field, $field, $rule ?? $this->getService()->getFieldRule($action, $field));
+ $validation->setRule($field, $field, $rule ?? $this->getFieldRule($action, $field));
break;
}
return $validation;
diff --git a/app/Database/erp2.vuerd.json b/app/Database/erp2.vuerd.json
index d6f95c9..9f9a86c 100644
--- a/app/Database/erp2.vuerd.json
+++ b/app/Database/erp2.vuerd.json
@@ -4,13 +4,13 @@
"settings": {
"width": 4000,
"height": 4000,
- "scrollTop": -2057.1261,
- "scrollLeft": -1040.6149,
- "zoomLevel": 0.79,
+ "scrollTop": -2252.9128,
+ "scrollLeft": -992.9859,
+ "zoomLevel": 0.88,
"show": 511,
"database": 4,
"databaseName": "",
- "canvasType": "@dineug/erd-editor/builtin-schema-sql",
+ "canvasType": "ERD",
"language": 1,
"tableNameCase": 4,
"columnNameCase": 2,
@@ -43,15 +43,15 @@
"sgFc3Tg9sWiMm4hsEwKm9",
"5KwHMmZppj-7TjRC_xQ54",
"3tdV9J9ns8BWCGQeCXITI",
- "F82-EcEv3fB4uzGzPrPla",
"jO40Ej5EXImXnadoJo9bn",
"gsa0XtQZQgrJ8ZXy8VQVg",
"5AUwJum9FKPCoYRMBhLnF",
"RMhrLs7bOaopKmKt9YKHQ",
"gYqhvNLZjWrQk8LNKH3il",
- "M9XC2MNIJqyKe77s6znI7",
"RTq5rHQupiXXJPXqpN8K5",
- "q0nHqNHYRczLFnV35V_qc"
+ "3RJ8qxNNqL7eCvBmmqzpd",
+ "Btzrm5KCDr_59gZoXRXol",
+ "BoXnD7ITrjdXuJVzpiLoN"
],
"relationshipIds": [
"gAVYXWnBSnCw-0ieO4Mil",
@@ -61,21 +61,21 @@
"fXVyT3pzVo0T0fgoFz4Gi",
"gNCG3TpxxGPRdE0xNJM4Z",
"KG3dDhcIJxHk3e1aGPWPa",
- "AckV69XB9r2m1VHP64gtd",
- "6blFGW77QEOBG_yDwtFQq",
"95uRv2fz3rssNbkyuzkLh",
"4BDt10BeeryoN0ZdEHIui",
"KtdVJCYZ3DMVnPnFGKi3P",
"AH1dyESfueUlhcoiU6KsQ",
"H3ufP8FbEnPlyFiHAggt0",
"hEYDIiEFtsN5gxqTmDYC7",
- "zH9SNavkYXAVRNXk4KF3w",
- "8v6Wmy4UTd5daxh1_kCH4",
- "YDIkLS7KeNom6uC_nProR",
"rDaiOqjpenuTOWAB9GhA6",
"rvhOgmNcWHmmWI1PYPjzk",
- "gy8AYT4ifY9wU-1_ttgwO",
- "OfL_b7drVbtK_qtISBxwG"
+ "6OXR3AW1sSxDJA2ITIz9i",
+ "QJHejLurUndA2vJMYRawK",
+ "avEpCJt-x4kXYN5bcKxiG",
+ "xnvl_tBcFrTl87jBGDW08",
+ "xYyFwSIzfn3RPzA8eaJoV",
+ "KMa7J50RT1ImakceLy9iZ",
+ "bVmMQk7Qb5kh6yURDiOLx"
],
"indexIds": [],
"memoIds": []
@@ -214,11 +214,10 @@
"comment": "서버정보",
"columnIds": [
"F9EPb6nsDx6Tf3GG8rvP1",
- "J97WIRanerqkRvOlQCnL3",
+ "GUAjQ-qFNvMHOaqY-rBXq",
"BAzGsBrmLOwZGYLchLmyP",
"9F6QpQqxeEggZ0FHM81O1",
"54iuIW4knok06vP4JH-oN",
- "o0KMVEBZAnWRSsxx10HmA",
"bh-W1plz0vCW2rURDnfDR",
"tNaVOzr3vywCXiQdfUJWq",
"6bQ_6eGfINic9LpM6PtDw"
@@ -230,6 +229,7 @@
"kyD7tU9kevxCDow7j2uHI",
"pY1RZgzuWBgRILX2XsMTt",
"J97WIRanerqkRvOlQCnL3",
+ "GUAjQ-qFNvMHOaqY-rBXq",
"BAzGsBrmLOwZGYLchLmyP",
"9F6QpQqxeEggZ0FHM81O1",
"6e3HgOnQwPQRS7r37pAK6",
@@ -244,52 +244,18 @@
"yjaoHnd4nFaa-3REXvRfN"
],
"ui": {
- "x": 2446.3712,
- "y": 1382.4445,
+ "x": 2410.6602,
+ "y": 2559.435,
"zIndex": 2,
"widthName": 60,
"widthComment": 60,
"color": ""
},
"meta": {
- "updateAt": 1747379455586,
+ "updateAt": 1747632582436,
"createAt": 1745819764137
}
},
- "IhXnqMFBU_GmCvISNyaKj": {
- "id": "IhXnqMFBU_GmCvISNyaKj",
- "name": "serverinfos_partinfos",
- "comment": "장비-부속품 연결정보",
- "columnIds": [
- "iylHjtnqU_oLEYolQkQIM",
- "pDILaJt_-vUo0fH_c6t2O",
- "7oTkP7etYsNgI6J6xQZVG",
- "NNGQ-RewVIApA1EISBQRS"
- ],
- "seqColumnIds": [
- "iylHjtnqU_oLEYolQkQIM",
- "pDILaJt_-vUo0fH_c6t2O",
- "7oTkP7etYsNgI6J6xQZVG",
- "5kPFX9LYoh8iinAEpt3lm",
- "qHwMDFU4dV5frDXsuW445",
- "dLOesaVz9GnwntiIyvxwW",
- "wQnQfh-JJI9BSQGaahMFu",
- "NNGQ-RewVIApA1EISBQRS",
- "D0lTirj9_pycie0SwZlUG"
- ],
- "ui": {
- "x": 2998.8895,
- "y": 2407.4365,
- "zIndex": 2,
- "widthName": 111,
- "widthComment": 118,
- "color": ""
- },
- "meta": {
- "updateAt": 1747119231934,
- "createAt": 1745819764138
- }
- },
"ZMGIWLFEswObjH2Sx0NlW": {
"id": "ZMGIWLFEswObjH2Sx0NlW",
"name": "softwareinfo",
@@ -315,15 +281,15 @@
"8ZPjmeG3NoO6C0icGibJP"
],
"ui": {
- "x": 2457.4319,
- "y": 2515.0816,
+ "x": 2400.1595,
+ "y": 2278.1189,
"zIndex": 2,
"widthName": 68,
"widthComment": 89,
"color": ""
},
"meta": {
- "updateAt": 1747379200589,
+ "updateAt": 1747631449097,
"createAt": 1745819764138
}
},
@@ -352,6 +318,7 @@
"oc5quhO8E3mqrBZKbIy_G",
"lZQAY89JoyOHoTQEHeS1Y",
"fiQBfXvw-4tj42PuGiDAk",
+ "BaXSr0Zs4Yk5dCbD8X_lm",
"ehNv0f07ci1ARnkTSDG6J",
"xaUC3GLta1iHmo1YQ-qDo",
"PHhRG4nKR6k_CQF9B8xS1",
@@ -360,15 +327,15 @@
"liJON6hIBB9aS-pQgM0Q6"
],
"ui": {
- "x": 2417.4558,
- "y": 774.7781,
+ "x": 2349.9171,
+ "y": 1413.5552,
"zIndex": 2,
"widthName": 60,
"widthComment": 60,
"color": ""
},
"meta": {
- "updateAt": 1747379439614,
+ "updateAt": 1747626184082,
"createAt": 1745819764138
}
},
@@ -399,15 +366,15 @@
"R-UjmO-S2UeQdddVNwH5M"
],
"ui": {
- "x": 2439.4932,
- "y": 1132.3495,
+ "x": 2404.3581,
+ "y": 1780.9982,
"zIndex": 2,
"widthName": 60,
"widthComment": 60,
"color": ""
},
"meta": {
- "updateAt": 1747379446240,
+ "updateAt": 1747625582327,
"createAt": 1745819764138
}
},
@@ -418,9 +385,7 @@
"columnIds": [
"nb5CGzskl3_LIRA0yyede",
"sscrxOdwLlx94tx1j_MrH",
- "UKMpq-uPW9JhNhwRMtBmC",
"iM3NfWTfO6qrXv94EUFgk",
- "CITRNBpXOZqGM6gHy5MlB",
"lwr6RuK8OGKJNLdd70NGS",
"qnVCOfUyejx2ToAQhkmu0",
"JItDVSlR3alwlWIyiXSyW",
@@ -433,6 +398,7 @@
"sscrxOdwLlx94tx1j_MrH",
"74hYN_2bj1ubH9fDJVRVz",
"JXFtN33CEiVr8DDSQay0k",
+ "CY-ZAs3Ns1YhoxL9UiCee",
"UKMpq-uPW9JhNhwRMtBmC",
"iM3NfWTfO6qrXv94EUFgk",
"CITRNBpXOZqGM6gHy5MlB",
@@ -455,21 +421,20 @@
"color": ""
},
"meta": {
- "updateAt": 1747380828026,
+ "updateAt": 1747727821087,
"createAt": 1745819764139
}
},
"R4reSshLxH3DQW6fUfSPa": {
"id": "R4reSshLxH3DQW6fUfSPa",
- "name": "invoiceinfo",
+ "name": "billinginfo",
"comment": "청구서 정보",
"columnIds": [
"fsAJySlXPbGQahV59hQgo",
- "Mlq3l8ZyEkSzXldwOmRed",
+ "uodvC_rgsnCqB65A3uZYW",
"NzUNVP-O0U298m6bClqyd",
"hCs1Oji5S6161mXCnAgP6",
"iDvGbVnpR-GTfqajd7P02",
- "rfUyj0qgcwNt8AYQrQpwr",
"2SU_tNQXyQlsQc6WchJ04"
],
"seqColumnIds": [
@@ -478,6 +443,7 @@
"bEnLVhafLMHZluEaYba4n",
"F6kponQqcXk2TT-AIElPY",
"h9_O9yvER5oW6Tb7ygofm",
+ "uodvC_rgsnCqB65A3uZYW",
"NzUNVP-O0U298m6bClqyd",
"zT13NpysXzkDKNUgdBOIC",
"hCs1Oji5S6161mXCnAgP6",
@@ -487,15 +453,15 @@
"2SU_tNQXyQlsQc6WchJ04"
],
"ui": {
- "x": 201.3262,
- "y": 833.1988,
+ "x": 1158.0459,
+ "y": 1342.7878,
"zIndex": 2,
"widthName": 60,
"widthComment": 65,
"color": ""
},
"meta": {
- "updateAt": 1747374182062,
+ "updateAt": 1747626911262,
"createAt": 1745819764139
}
},
@@ -526,15 +492,15 @@
"UCQyqc-F1swYRY6Qa3lIi"
],
"ui": {
- "x": 1185.2953,
- "y": 1976.666,
+ "x": 1167.4791,
+ "y": 2150.4061,
"zIndex": 2,
"widthName": 136,
"widthComment": 94,
"color": ""
},
"meta": {
- "updateAt": 1747379675241,
+ "updateAt": 1747625655368,
"createAt": 1745819764139
}
},
@@ -562,15 +528,15 @@
"3v3JWUBHg3mAb4HmHPUP-"
],
"ui": {
- "x": 1178.7675,
- "y": 2563.8046,
+ "x": 1170.8023,
+ "y": 2382.9427,
"zIndex": 2,
"widthName": 139,
"widthComment": 130,
"color": ""
},
"meta": {
- "updateAt": 1747375494938,
+ "updateAt": 1747631546977,
"createAt": 1745819764139
}
},
@@ -599,15 +565,15 @@
"kTwnu5ylJ22aQ7cBwn3pZ"
],
"ui": {
- "x": 1180.4415,
- "y": 1436.5532,
+ "x": 1169.2751,
+ "y": 1924.3199,
"zIndex": 2,
"widthName": 104,
"widthComment": 80,
"color": ""
},
"meta": {
- "updateAt": 1747379530935,
+ "updateAt": 1747625658979,
"createAt": 1745819764139
}
},
@@ -635,15 +601,15 @@
"nAYYL4VvZwFBqqY9J5A1P"
],
"ui": {
- "x": 1180.7967,
- "y": 1196.9182,
+ "x": 1169.5592,
+ "y": 1703.1059,
"zIndex": 2,
"widthName": 113,
"widthComment": 94,
"color": ""
},
"meta": {
- "updateAt": 1747379529326,
+ "updateAt": 1747625662621,
"createAt": 1745819764139
}
},
@@ -720,46 +686,17 @@
],
"ui": {
"x": 1181.8279,
- "y": 2845.3078,
+ "y": 3150.7872,
"zIndex": 2,
"widthName": 60,
"widthComment": 81,
"color": ""
},
"meta": {
- "updateAt": 1747375496865,
+ "updateAt": 1747631474020,
"createAt": 1745819764142
}
},
- "h2unshrMDFXEq0pYzkkj1": {
- "id": "h2unshrMDFXEq0pYzkkj1",
- "name": "ipinfos_serverinfos",
- "comment": "IP 사용내역",
- "columnIds": [
- "0VUfC7ZS0NaIcqAhZYWHV",
- "-VaB7wQ3cQKai3peK85u8",
- "eh3Ubc6NIftsQEbE3kq-v",
- "QZeSgl1hDBgLHn8iG-S4s"
- ],
- "seqColumnIds": [
- "0VUfC7ZS0NaIcqAhZYWHV",
- "-VaB7wQ3cQKai3peK85u8",
- "eh3Ubc6NIftsQEbE3kq-v",
- "QZeSgl1hDBgLHn8iG-S4s"
- ],
- "ui": {
- "x": 3198.8062,
- "y": 1853.3342,
- "zIndex": 143,
- "widthName": 100,
- "widthComment": 63,
- "color": ""
- },
- "meta": {
- "updateAt": 1747104160796,
- "createAt": 1745820710362
- }
- },
"5AUwJum9FKPCoYRMBhLnF": {
"id": "5AUwJum9FKPCoYRMBhLnF",
"name": "pointinfo",
@@ -802,93 +739,6 @@
"createAt": 1745914844735
}
},
- "xrgAG9Zc_whfxTeGQ2fqx": {
- "id": "xrgAG9Zc_whfxTeGQ2fqx",
- "name": "networkinfo",
- "comment": "네트워크장비정보",
- "columnIds": [
- "r7fMKgeUcNq4FhYZPN3h8",
- "QJ0gQxBMvgFftpj3p2koI",
- "GwdDytCn1l984Y6piavyi",
- "DvwDCnsNxrcfqx6nTsbP4",
- "B3NNhoIrKYGZrScx8XuuH",
- "06IXODaDZXY8cDIet15Im",
- "vnQRLYgWHQ8AgJkfbs2a3",
- "0HPmN1faJk-KhZXILO2zx",
- "AtQmi9C4c5YlY8Brl9irr",
- "a0bnNatieTB5pr9jElQbS",
- "qZSh2gBdoEMUq6j7FdhHg"
- ],
- "seqColumnIds": [
- "r7fMKgeUcNq4FhYZPN3h8",
- "HlUwkGDQIzvSXKilnVmeR",
- "cbdszvDa-AJcISTgkydfJ",
- "QJ0gQxBMvgFftpj3p2koI",
- "GwdDytCn1l984Y6piavyi",
- "kpG1Udq4ON9Ohj4ociOCo",
- "DvwDCnsNxrcfqx6nTsbP4",
- "xGjZPy89motgc7RMZWhnl",
- "ZyOb1xK46x0-io64OuWOF",
- "B3NNhoIrKYGZrScx8XuuH",
- "06IXODaDZXY8cDIet15Im",
- "vnQRLYgWHQ8AgJkfbs2a3",
- "0HPmN1faJk-KhZXILO2zx",
- "AtQmi9C4c5YlY8Brl9irr",
- "a0bnNatieTB5pr9jElQbS",
- "sfeekPFUxsfR1R3fpCkPO",
- "2rgItDTiBojLhyoJ4J-z-",
- "qZSh2gBdoEMUq6j7FdhHg"
- ],
- "ui": {
- "x": 2429.8024,
- "y": 1794.7664,
- "zIndex": 401,
- "widthName": 65,
- "widthComment": 98,
- "color": ""
- },
- "meta": {
- "updateAt": 1747287681465,
- "createAt": 1745916349284
- }
- },
- "CYHveKA03TPJiz6X5wq2L": {
- "id": "CYHveKA03TPJiz6X5wq2L",
- "name": "serviceinfos_networkinfos",
- "comment": "서비스-네트워크장비 연결",
- "columnIds": [
- "JJri1o7mljYSCAk5wNIYS",
- "RtHk4GL4mwwGvwZ0UAoXQ",
- "2DXZGT0BJwjeij0IKXFa1",
- "rU3ltf8eeXRUibpCkm9H-",
- "Pf3dXiCCFxq7Rp3X1El7K",
- "xnnAe8XzDqeKCQuqBQW8J",
- "7axE7VR8JiDojluDdGLOw",
- "RZJESxJSfjv0xxD8DYnZy"
- ],
- "seqColumnIds": [
- "JJri1o7mljYSCAk5wNIYS",
- "RtHk4GL4mwwGvwZ0UAoXQ",
- "2DXZGT0BJwjeij0IKXFa1",
- "rU3ltf8eeXRUibpCkm9H-",
- "Pf3dXiCCFxq7Rp3X1El7K",
- "xnnAe8XzDqeKCQuqBQW8J",
- "7axE7VR8JiDojluDdGLOw",
- "RZJESxJSfjv0xxD8DYnZy"
- ],
- "ui": {
- "x": 1187.9662,
- "y": 2058.1851,
- "zIndex": 428,
- "widthName": 137,
- "widthComment": 142,
- "color": ""
- },
- "meta": {
- "updateAt": 1747285325750,
- "createAt": 1746576203015
- }
- },
"RMhrLs7bOaopKmKt9YKHQ": {
"id": "RMhrLs7bOaopKmKt9YKHQ",
"name": "partinfo",
@@ -898,7 +748,6 @@
"-Vr-igaSkx5zEcVp0oUGN",
"DC7TvFFpBT7vY0UKKHt-W",
"dr0UoY8ebsS-TjcPyP4is",
- "GnoGvT4HaG9kp-BvwZ4FQ",
"wx8zTFviA4I8YQnn-MFpW",
"3nwgqrQd_qDGdg6Fe3kEp",
"mwVYv9PaJFpoxYvTRJ223"
@@ -919,15 +768,15 @@
"mwVYv9PaJFpoxYvTRJ223"
],
"ui": {
- "x": 2445.6254,
- "y": 2155.381,
+ "x": 2410.026,
+ "y": 2835.3911,
"zIndex": 495,
"widthName": 60,
"widthComment": 60,
"color": ""
},
"meta": {
- "updateAt": 1747379195341,
+ "updateAt": 1747631446772,
"createAt": 1746783410914
}
},
@@ -955,29 +804,29 @@
"VzuPW7xCYQCRJ5S3m5qU1"
],
"ui": {
- "x": 1180.3332,
- "y": 2274.5767,
+ "x": 1182.4615,
+ "y": 2916.1046,
"zIndex": 547,
"widthName": 116,
"widthComment": 94,
"color": ""
},
"meta": {
- "updateAt": 1747375877524,
+ "updateAt": 1747631498746,
"createAt": 1746783705263
}
},
"M9XC2MNIJqyKe77s6znI7": {
"id": "M9XC2MNIJqyKe77s6znI7",
- "name": "invoiceinfo_detail",
+ "name": "billinginfo_detail",
"comment": "청구서 상세정보",
"columnIds": [
"zlUiG0OmBC3q6Z3V1dOKc",
"XqPP8eaTMK9vWD9QQJkYy",
- "ZeTOeaI1N5mWuBiB0tO1F",
+ "g41qCdbclynuoNo7zTUoC",
+ "4sOzBtwc60uLCkHDsc97O",
"1rO0HpkAfirZmhaN1AfEp",
"gj0lezIVbnpLT2mHo07Lt",
- "M6x8wlvrCkm0FWL8umYC3",
"ML125axlUAsBywUvRiZTr"
],
"seqColumnIds": [
@@ -990,6 +839,8 @@
"ZeTOeaI1N5mWuBiB0tO1F",
"GfFdPBERgldIUWf5bA_nZ",
"cuyA-A5FkTXz_x0BD1Uld",
+ "g41qCdbclynuoNo7zTUoC",
+ "4sOzBtwc60uLCkHDsc97O",
"1rO0HpkAfirZmhaN1AfEp",
"gj0lezIVbnpLT2mHo07Lt",
"M6x8wlvrCkm0FWL8umYC3",
@@ -997,79 +848,18 @@
"761T13bs94ZLVeC2iJm13"
],
"ui": {
- "x": 202.4648,
- "y": 1212.971,
+ "x": 2324.3826,
+ "y": 971.8752,
"zIndex": 697,
- "widthName": 94,
+ "widthName": 89,
"widthComment": 89,
"color": ""
},
"meta": {
- "updateAt": 1747379521765,
+ "updateAt": 1747627186617,
"createAt": 1747281566137
}
},
- "Jbg57aw6IK3Z4Fx7SqZdh": {
- "id": "Jbg57aw6IK3Z4Fx7SqZdh",
- "name": "serverinfos_partinfos",
- "comment": "서버-부품 연결",
- "columnIds": [
- "cGeAaXm_heE_1MxoPQZ6x",
- "rv1LHZrU_9V_9PTrhJglL",
- "iH6WMT-edRu71AXKHha-O",
- "X0uYzbny1prISJa_gYnIt",
- "lcvHWshW-AKfY3CHnmbiC"
- ],
- "seqColumnIds": [
- "0-PXIFE_CwDwDXvY_qlMC",
- "cGeAaXm_heE_1MxoPQZ6x",
- "rv1LHZrU_9V_9PTrhJglL",
- "iH6WMT-edRu71AXKHha-O",
- "X0uYzbny1prISJa_gYnIt",
- "lcvHWshW-AKfY3CHnmbiC"
- ],
- "ui": {
- "x": 3256.2456,
- "y": 2541.8608,
- "zIndex": 869,
- "widthName": 111,
- "widthComment": 82,
- "color": ""
- },
- "meta": {
- "updateAt": 1747296246228,
- "createAt": 1747287044236
- }
- },
- "orLBU-C_XFowKM86b0lVB": {
- "id": "orLBU-C_XFowKM86b0lVB",
- "name": "serverinfos_ipinfos",
- "comment": "서버-IP 연결",
- "columnIds": [
- "mvErAzOO6dtDr2QBiSm6x",
- "Ffs30ak5FXss4y4DrOM-9",
- "mXoxwrkoKXV1WKzL_87_a",
- "Km9hAV_kAnYMfhhyuQjU8"
- ],
- "seqColumnIds": [
- "mvErAzOO6dtDr2QBiSm6x",
- "Ffs30ak5FXss4y4DrOM-9",
- "mXoxwrkoKXV1WKzL_87_a",
- "Km9hAV_kAnYMfhhyuQjU8"
- ],
- "ui": {
- "x": 3272.9263,
- "y": 1915.3903,
- "zIndex": 900,
- "widthName": 100,
- "widthComment": 68,
- "color": ""
- },
- "meta": {
- "updateAt": 1747287704410,
- "createAt": 1747287241280
- }
- },
"RTq5rHQupiXXJPXqpN8K5": {
"id": "RTq5rHQupiXXJPXqpN8K5",
"name": "defenceinfo",
@@ -1097,49 +887,114 @@
"pzEFysMFfI2J8uB8YHXxA"
],
"ui": {
- "x": 2449.8927,
- "y": 1742.4513,
+ "x": 2402.2093,
+ "y": 2002.2003,
"zIndex": 796,
"widthName": 64,
"widthComment": 60,
"color": ""
},
"meta": {
- "updateAt": 1747379835533,
+ "updateAt": 1747625578932,
"createAt": 1747374666215
}
},
- "q0nHqNHYRczLFnV35V_qc": {
- "id": "q0nHqNHYRczLFnV35V_qc",
+ "3RJ8qxNNqL7eCvBmmqzpd": {
+ "id": "3RJ8qxNNqL7eCvBmmqzpd",
+ "name": "serviceinfos_lineinfos",
+ "comment": "",
+ "columnIds": [
+ "_oIE_aDPjyuwPZo2h8QUJ",
+ "i_tL8EWzsKz8Q6TjEkdFG",
+ "0rvNoG9MrbN-6-6iDdw3K",
+ "fGzuo5ZiUU8JjFLpx83H_",
+ "s2DxySreFcYw4F8pTrtik",
+ "NwGV49CLzr1A-dxD3tBmJ"
+ ],
+ "seqColumnIds": [
+ "_oIE_aDPjyuwPZo2h8QUJ",
+ "i_tL8EWzsKz8Q6TjEkdFG",
+ "0rvNoG9MrbN-6-6iDdw3K",
+ "fGzuo5ZiUU8JjFLpx83H_",
+ "s2DxySreFcYw4F8pTrtik",
+ "NwGV49CLzr1A-dxD3tBmJ"
+ ],
+ "ui": {
+ "x": 1166.2223,
+ "y": 1698.7022,
+ "zIndex": 835,
+ "widthName": 113,
+ "widthComment": 60,
+ "color": ""
+ },
+ "meta": {
+ "updateAt": 1747631850407,
+ "createAt": 1747625827836
+ }
+ },
+ "Btzrm5KCDr_59gZoXRXol": {
+ "id": "Btzrm5KCDr_59gZoXRXol",
"name": "serviceinfos_serverinfos",
"comment": "서비스-서버 연결",
"columnIds": [
- "YHS-M0tbd3fsXWddxXjHh",
- "gb59smF6KMFsvojjxwvuJ",
- "ARlzuJPlNjSld6grPvPsA",
- "dEsFAYW9ehgWZ4EEPMAX_",
- "BAc1ONx63wWUDHDHNxk5v",
- "3xpC59e170haRrVKuaiol"
+ "3RTWS2E2a-gW6e6wW3sgo",
+ "aVHpSwITyNUlzw2eRHocV",
+ "stEdaFSZ8RZorO2WI_W2Z",
+ "JGzjeoxB88aSopAejjl0M",
+ "4Y3UNdKcuOhQ3lY9-zjEm",
+ "UvgOUjhbSsKnhm7ks-2T7"
],
"seqColumnIds": [
- "YHS-M0tbd3fsXWddxXjHh",
- "gb59smF6KMFsvojjxwvuJ",
- "ARlzuJPlNjSld6grPvPsA",
- "dEsFAYW9ehgWZ4EEPMAX_",
- "BAc1ONx63wWUDHDHNxk5v",
- "3xpC59e170haRrVKuaiol"
+ "3RTWS2E2a-gW6e6wW3sgo",
+ "aVHpSwITyNUlzw2eRHocV",
+ "stEdaFSZ8RZorO2WI_W2Z",
+ "JGzjeoxB88aSopAejjl0M",
+ "4Y3UNdKcuOhQ3lY9-zjEm",
+ "UvgOUjhbSsKnhm7ks-2T7"
],
"ui": {
- "x": 1182.1226,
- "y": 1685.7783,
- "zIndex": 921,
+ "x": 1179.9799,
+ "y": 2663.9415,
+ "zIndex": 951,
"widthName": 126,
"widthComment": 94,
"color": ""
},
"meta": {
- "updateAt": 1747379689011,
- "createAt": 1747379543415
+ "updateAt": 1747631676525,
+ "createAt": 1747631513876
+ }
+ },
+ "BoXnD7ITrjdXuJVzpiLoN": {
+ "id": "BoXnD7ITrjdXuJVzpiLoN",
+ "name": "serverinfos_partinfos",
+ "comment": "서버-부품 연결",
+ "columnIds": [
+ "hvzap8WHQwxODmGohOVcN",
+ "LHHK0n71w3kZmkJRraK-4",
+ "Ba036rLR2vRLjGURehMqM",
+ "0QgnkM04w2SJ7Nf3MTfxM",
+ "TS6YN3ndjqITM6LWdVimX"
+ ],
+ "seqColumnIds": [
+ "hvzap8WHQwxODmGohOVcN",
+ "xlUL3JSIoo2NQaae1bhJC",
+ "LHHK0n71w3kZmkJRraK-4",
+ "Ba036rLR2vRLjGURehMqM",
+ "0QgnkM04w2SJ7Nf3MTfxM",
+ "TS6YN3ndjqITM6LWdVimX"
+ ],
+ "ui": {
+ "x": 3036.1445,
+ "y": 2748.8727,
+ "zIndex": 995,
+ "widthName": 111,
+ "widthComment": 82,
+ "color": ""
+ },
+ "meta": {
+ "updateAt": 1747632416616,
+ "createAt": 1747632275744
}
}
},
@@ -1760,7 +1615,7 @@
"widthDefault": 60
},
"meta": {
- "updateAt": 1747378804079,
+ "updateAt": 1747632559724,
"createAt": 1745819764138
}
},
@@ -1924,106 +1779,6 @@
"createAt": 1745819764138
}
},
- "iylHjtnqU_oLEYolQkQIM": {
- "id": "iylHjtnqU_oLEYolQkQIM",
- "tableId": "IhXnqMFBU_GmCvISNyaKj",
- "name": "uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 3,
- "ui": {
- "keys": 1,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1745819764138,
- "createAt": 1745819764138
- }
- },
- "pDILaJt_-vUo0fH_c6t2O": {
- "id": "pDILaJt_-vUo0fH_c6t2O",
- "tableId": "IhXnqMFBU_GmCvISNyaKj",
- "name": "serverinfo_uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 76,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1745915831191,
- "createAt": 1745819764138
- }
- },
- "5kPFX9LYoh8iinAEpt3lm": {
- "id": "5kPFX9LYoh8iinAEpt3lm",
- "tableId": "IhXnqMFBU_GmCvISNyaKj",
- "name": "raminfo_uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 65,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1746783399667,
- "createAt": 1745819764138
- }
- },
- "wQnQfh-JJI9BSQGaahMFu": {
- "id": "wQnQfh-JJI9BSQGaahMFu",
- "tableId": "IhXnqMFBU_GmCvISNyaKj",
- "name": "softwareinfo_uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 0,
- "ui": {
- "keys": 0,
- "widthName": 89,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1745819764138,
- "createAt": 1745819764138
- }
- },
- "NNGQ-RewVIApA1EISBQRS": {
- "id": "NNGQ-RewVIApA1EISBQRS",
- "tableId": "IhXnqMFBU_GmCvISNyaKj",
- "name": "created_at",
- "comment": "",
- "dataType": "TIMESTAMP",
- "default": "CURRENT_TIMESTAMP",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 65,
- "widthDefault": 122
- },
- "meta": {
- "updateAt": 1745819764138,
- "createAt": 1745819764138
- }
- },
"2HB01q46-mugMjuOz85YG": {
"id": "2HB01q46-mugMjuOz85YG",
"tableId": "ZMGIWLFEswObjH2Sx0NlW",
@@ -3153,7 +2908,7 @@
"default": "",
"options": 8,
"ui": {
- "keys": 2,
+ "keys": 0,
"widthName": 80,
"widthComment": 60,
"widthDataType": 60,
@@ -3173,7 +2928,7 @@
"default": "",
"options": 8,
"ui": {
- "keys": 2,
+ "keys": 0,
"widthName": 63,
"widthComment": 60,
"widthDataType": 60,
@@ -3704,86 +3459,6 @@
"createAt": 1745820683602
}
},
- "0VUfC7ZS0NaIcqAhZYWHV": {
- "id": "0VUfC7ZS0NaIcqAhZYWHV",
- "tableId": "h2unshrMDFXEq0pYzkkj1",
- "name": "uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 10,
- "ui": {
- "keys": 1,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1745820775209,
- "createAt": 1745820772690
- }
- },
- "eh3Ubc6NIftsQEbE3kq-v": {
- "id": "eh3Ubc6NIftsQEbE3kq-v",
- "tableId": "h2unshrMDFXEq0pYzkkj1",
- "name": "serverinfo_uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 76,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1745915809012,
- "createAt": 1745820865007
- }
- },
- "QZeSgl1hDBgLHn8iG-S4s": {
- "id": "QZeSgl1hDBgLHn8iG-S4s",
- "tableId": "h2unshrMDFXEq0pYzkkj1",
- "name": "created_at",
- "comment": "",
- "dataType": "TIMESTAMP",
- "default": "CURRENT_TIMESTAMP",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 65,
- "widthDefault": 122
- },
- "meta": {
- "updateAt": 1745820895091,
- "createAt": 1745820895091
- }
- },
- "-VaB7wQ3cQKai3peK85u8": {
- "id": "-VaB7wQ3cQKai3peK85u8",
- "tableId": "h2unshrMDFXEq0pYzkkj1",
- "name": "ipinfo_uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1745820925711,
- "createAt": 1745820911647
- }
- },
"0ONL4QLQRyZ32MBJ7TN7u": {
"id": "0ONL4QLQRyZ32MBJ7TN7u",
"tableId": "ZLEpY5EjuZV21718zf-Y1",
@@ -4204,186 +3879,6 @@
"createAt": 1745915055367
}
},
- "r7fMKgeUcNq4FhYZPN3h8": {
- "id": "r7fMKgeUcNq4FhYZPN3h8",
- "tableId": "xrgAG9Zc_whfxTeGQ2fqx",
- "name": "uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 11,
- "ui": {
- "keys": 1,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1746764378743,
- "createAt": 1745916389386
- }
- },
- "GwdDytCn1l984Y6piavyi": {
- "id": "GwdDytCn1l984Y6piavyi",
- "tableId": "xrgAG9Zc_whfxTeGQ2fqx",
- "name": "type",
- "comment": "",
- "dataType": "VARCHAR(20)",
- "default": "'L2'",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 75,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1747013928831,
- "createAt": 1745916389386
- }
- },
- "kpG1Udq4ON9Ohj4ociOCo": {
- "id": "kpG1Udq4ON9Ohj4ociOCo",
- "tableId": "xrgAG9Zc_whfxTeGQ2fqx",
- "name": "brand",
- "comment": "",
- "dataType": "VARCHAR(50)",
- "default": "samsung",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 75,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1746576395586,
- "createAt": 1745916389386
- }
- },
- "xGjZPy89motgc7RMZWhnl": {
- "id": "xGjZPy89motgc7RMZWhnl",
- "tableId": "xrgAG9Zc_whfxTeGQ2fqx",
- "name": "capacity",
- "comment": "용량 (GB)",
- "dataType": "INT",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1745916389386,
- "createAt": 1745916389386
- }
- },
- "ZyOb1xK46x0-io64OuWOF": {
- "id": "ZyOb1xK46x0-io64OuWOF",
- "tableId": "xrgAG9Zc_whfxTeGQ2fqx",
- "name": "cost_price",
- "comment": "",
- "dataType": "INT",
- "default": "0",
- "options": 0,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1745916389386,
- "createAt": 1745916389386
- }
- },
- "B3NNhoIrKYGZrScx8XuuH": {
- "id": "B3NNhoIrKYGZrScx8XuuH",
- "tableId": "xrgAG9Zc_whfxTeGQ2fqx",
- "name": "price",
- "comment": "",
- "dataType": "INT",
- "default": "0",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1746576346474,
- "createAt": 1745916389386
- }
- },
- "06IXODaDZXY8cDIet15Im": {
- "id": "06IXODaDZXY8cDIet15Im",
- "tableId": "xrgAG9Zc_whfxTeGQ2fqx",
- "name": "description",
- "comment": "",
- "dataType": "TEXT",
- "default": "",
- "options": 0,
- "ui": {
- "keys": 0,
- "widthName": 61,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1745916389386,
- "createAt": 1745916389386
- }
- },
- "AtQmi9C4c5YlY8Brl9irr": {
- "id": "AtQmi9C4c5YlY8Brl9irr",
- "tableId": "xrgAG9Zc_whfxTeGQ2fqx",
- "name": "updated_at",
- "comment": "",
- "dataType": "TIMESTAMP",
- "default": "",
- "options": 0,
- "ui": {
- "keys": 0,
- "widthName": 62,
- "widthComment": 60,
- "widthDataType": 65,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1745916389386,
- "createAt": 1745916389386
- }
- },
- "a0bnNatieTB5pr9jElQbS": {
- "id": "a0bnNatieTB5pr9jElQbS",
- "tableId": "xrgAG9Zc_whfxTeGQ2fqx",
- "name": "created_at",
- "comment": "",
- "dataType": "TIMESTAMP",
- "default": "CURRENT_TIMESTAMP",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 65,
- "widthDefault": 122
- },
- "meta": {
- "updateAt": 1745916389386,
- "createAt": 1745916389386
- }
- },
"NVO-aO4GEW9DHdEV8XQq6": {
"id": "NVO-aO4GEW9DHdEV8XQq6",
"tableId": "6ajvOCaGuXU9pzV0Y9jEi",
@@ -4424,26 +3919,6 @@
"createAt": 1746409047865
}
},
- "0HPmN1faJk-KhZXILO2zx": {
- "id": "0HPmN1faJk-KhZXILO2zx",
- "tableId": "xrgAG9Zc_whfxTeGQ2fqx",
- "name": "status",
- "comment": "",
- "dataType": "VARCHAR(20)",
- "default": "'use'",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 75,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1746603914004,
- "createAt": 1746409116719
- }
- },
"VycsOgeM1SXkcq_5XYUMS": {
"id": "VycsOgeM1SXkcq_5XYUMS",
"tableId": "ZMGIWLFEswObjH2Sx0NlW",
@@ -4544,126 +4019,6 @@
"createAt": 1746409195694
}
},
- "JJri1o7mljYSCAk5wNIYS": {
- "id": "JJri1o7mljYSCAk5wNIYS",
- "tableId": "CYHveKA03TPJiz6X5wq2L",
- "name": "uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 11,
- "ui": {
- "keys": 1,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1746764375735,
- "createAt": 1746576242360
- }
- },
- "DvwDCnsNxrcfqx6nTsbP4": {
- "id": "DvwDCnsNxrcfqx6nTsbP4",
- "tableId": "xrgAG9Zc_whfxTeGQ2fqx",
- "name": "model",
- "comment": "",
- "dataType": "VARCHAR(50)",
- "default": "",
- "options": 12,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 75,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1746609601447,
- "createAt": 1746576689025
- }
- },
- "RtHk4GL4mwwGvwZ0UAoXQ": {
- "id": "RtHk4GL4mwwGvwZ0UAoXQ",
- "tableId": "CYHveKA03TPJiz6X5wq2L",
- "name": "serviceinfo_uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 80,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1746576814608,
- "createAt": 1746576801535
- }
- },
- "rU3ltf8eeXRUibpCkm9H-": {
- "id": "rU3ltf8eeXRUibpCkm9H-",
- "tableId": "CYHveKA03TPJiz6X5wq2L",
- "name": "billing_type",
- "comment": "",
- "dataType": "VARCHAR(20)",
- "default": "'month'",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 63,
- "widthComment": 60,
- "widthDataType": 75,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1747278302555,
- "createAt": 1746576948212
- }
- },
- "Pf3dXiCCFxq7Rp3X1El7K": {
- "id": "Pf3dXiCCFxq7Rp3X1El7K",
- "tableId": "CYHveKA03TPJiz6X5wq2L",
- "name": "amount",
- "comment": "",
- "dataType": "INT",
- "default": "0",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1747281867179,
- "createAt": 1746576948212
- }
- },
- "RZJESxJSfjv0xxD8DYnZy": {
- "id": "RZJESxJSfjv0xxD8DYnZy",
- "tableId": "CYHveKA03TPJiz6X5wq2L",
- "name": "created_at",
- "comment": "",
- "dataType": "TIMESTAMP",
- "default": "CURRENT_TIMESTAMP",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 65,
- "widthDefault": 122
- },
- "meta": {
- "updateAt": 1746576948212,
- "createAt": 1746576948212
- }
- },
"dkwDt8XZjnu1Hq3vX4Wta": {
"id": "dkwDt8XZjnu1Hq3vX4Wta",
"tableId": "doERb3lIVeBW_D0NtNYX8",
@@ -4764,66 +4119,6 @@
"createAt": 1746595486404
}
},
- "sfeekPFUxsfR1R3fpCkPO": {
- "id": "sfeekPFUxsfR1R3fpCkPO",
- "tableId": "xrgAG9Zc_whfxTeGQ2fqx",
- "name": "uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1746604351684,
- "createAt": 1746604351684
- }
- },
- "2rgItDTiBojLhyoJ4J-z-": {
- "id": "2rgItDTiBojLhyoJ4J-z-",
- "tableId": "xrgAG9Zc_whfxTeGQ2fqx",
- "name": "uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1746604389018,
- "createAt": 1746604389018
- }
- },
- "2DXZGT0BJwjeij0IKXFa1": {
- "id": "2DXZGT0BJwjeij0IKXFa1",
- "tableId": "CYHveKA03TPJiz6X5wq2L",
- "name": "networkinfo_uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 87,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1746604434513,
- "createAt": 1746604423390
- }
- },
"6QKQkCLEQNWLc1oF16LgN": {
"id": "6QKQkCLEQNWLc1oF16LgN",
"tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
@@ -4844,46 +4139,6 @@
"createAt": 1746604787601
}
},
- "cbdszvDa-AJcISTgkydfJ": {
- "id": "cbdszvDa-AJcISTgkydfJ",
- "tableId": "xrgAG9Zc_whfxTeGQ2fqx",
- "name": "code",
- "comment": "",
- "dataType": "VARCHAR(20)",
- "default": "",
- "options": 12,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 75,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1746609603639,
- "createAt": 1746604989616
- }
- },
- "dLOesaVz9GnwntiIyvxwW": {
- "id": "dLOesaVz9GnwntiIyvxwW",
- "tableId": "IhXnqMFBU_GmCvISNyaKj",
- "name": "softwareinfo_uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 89,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1746605134374,
- "createAt": 1746605122397
- }
- },
"o0KMVEBZAnWRSsxx10HmA": {
"id": "o0KMVEBZAnWRSsxx10HmA",
"tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
@@ -5224,66 +4479,6 @@
"createAt": 1746783511284
}
},
- "D0lTirj9_pycie0SwZlUG": {
- "id": "D0lTirj9_pycie0SwZlUG",
- "tableId": "IhXnqMFBU_GmCvISNyaKj",
- "name": "",
- "comment": "",
- "dataType": "",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1746783513869,
- "createAt": 1746783513869
- }
- },
- "7oTkP7etYsNgI6J6xQZVG": {
- "id": "7oTkP7etYsNgI6J6xQZVG",
- "tableId": "IhXnqMFBU_GmCvISNyaKj",
- "name": "partinfo_uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 66,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1747119238434,
- "createAt": 1746783631248
- }
- },
- "qHwMDFU4dV5frDXsuW445": {
- "id": "qHwMDFU4dV5frDXsuW445",
- "tableId": "IhXnqMFBU_GmCvISNyaKj",
- "name": "diskinfo_uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 65,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1746783672462,
- "createAt": 1746783665163
- }
- },
"TQwAGrd3jBQOImSKgfAZb": {
"id": "TQwAGrd3jBQOImSKgfAZb",
"tableId": "gYqhvNLZjWrQk8LNKH3il",
@@ -5404,26 +4599,6 @@
"createAt": 1746783814940
}
},
- "HlUwkGDQIzvSXKilnVmeR": {
- "id": "HlUwkGDQIzvSXKilnVmeR",
- "tableId": "xrgAG9Zc_whfxTeGQ2fqx",
- "name": "clientinfo_uid",
- "comment": "소유자",
- "dataType": "INT",
- "default": "",
- "options": 0,
- "ui": {
- "keys": 0,
- "widthName": 73,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1747118605268,
- "createAt": 1747033067366
- }
- },
"F6TXYV3uwRzb-aZYCmf5x": {
"id": "F6TXYV3uwRzb-aZYCmf5x",
"tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
@@ -5504,26 +4679,6 @@
"createAt": 1747118813753
}
},
- "vnQRLYgWHQ8AgJkfbs2a3": {
- "id": "vnQRLYgWHQ8AgJkfbs2a3",
- "tableId": "xrgAG9Zc_whfxTeGQ2fqx",
- "name": "manufactur_at",
- "comment": "제조일",
- "dataType": "TIMESTAMP",
- "default": "",
- "options": 0,
- "ui": {
- "keys": 0,
- "widthName": 78,
- "widthComment": 60,
- "widthDataType": 65,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1747118911046,
- "createAt": 1747118831111
- }
- },
"C-iSSJV5sjbkmpIKBx4Km": {
"id": "C-iSSJV5sjbkmpIKBx4Km",
"tableId": "5AUwJum9FKPCoYRMBhLnF",
@@ -5704,46 +4859,6 @@
"createAt": 1747277247161
}
},
- "xnnAe8XzDqeKCQuqBQW8J": {
- "id": "xnnAe8XzDqeKCQuqBQW8J",
- "tableId": "CYHveKA03TPJiz6X5wq2L",
- "name": "start_at",
- "comment": "",
- "dataType": "DATE",
- "default": "",
- "options": 0,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1747277262945,
- "createAt": 1747277262945
- }
- },
- "7axE7VR8JiDojluDdGLOw": {
- "id": "7axE7VR8JiDojluDdGLOw",
- "tableId": "CYHveKA03TPJiz6X5wq2L",
- "name": "end_at",
- "comment": "",
- "dataType": "DATE",
- "default": "",
- "options": 0,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1747277262945,
- "createAt": 1747277262945
- }
- },
"pGf_WVtjQtrxr-p19k5G3": {
"id": "pGf_WVtjQtrxr-p19k5G3",
"tableId": "sgFc3Tg9sWiMm4hsEwKm9",
@@ -5973,7 +5088,7 @@
"default": "",
"options": 8,
"ui": {
- "keys": 2,
+ "keys": 0,
"widthName": 73,
"widthComment": 60,
"widthDataType": 60,
@@ -5987,20 +5102,20 @@
"NzUNVP-O0U298m6bClqyd": {
"id": "NzUNVP-O0U298m6bClqyd",
"tableId": "R4reSshLxH3DQW6fUfSPa",
- "name": "invoiced_at",
+ "name": "issue_at",
"comment": "",
"dataType": "DATE",
"default": "",
"options": 8,
"ui": {
"keys": 0,
- "widthName": 61,
+ "widthName": 60,
"widthComment": 60,
"widthDataType": 60,
"widthDefault": 60
},
"meta": {
- "updateAt": 1747279371394,
+ "updateAt": 1747627020647,
"createAt": 1747279159758
}
},
@@ -6187,20 +5302,20 @@
"XqPP8eaTMK9vWD9QQJkYy": {
"id": "XqPP8eaTMK9vWD9QQJkYy",
"tableId": "M9XC2MNIJqyKe77s6znI7",
- "name": "invoiceinfo_uid",
+ "name": "billinginfo_uid",
"comment": "",
"dataType": "INT",
"default": "",
"options": 8,
"ui": {
- "keys": 2,
- "widthName": 81,
+ "keys": 0,
+ "widthName": 77,
"widthComment": 60,
"widthDataType": 60,
"widthDefault": 60
},
"meta": {
- "updateAt": 1747281924267,
+ "updateAt": 1747627122211,
"createAt": 1747281724119
}
},
@@ -6253,7 +5368,7 @@
"default": "",
"options": 8,
"ui": {
- "keys": 2,
+ "keys": 0,
"widthName": 80,
"widthComment": 60,
"widthDataType": 60,
@@ -6324,26 +5439,6 @@
"createAt": 1747282736023
}
},
- "QJ0gQxBMvgFftpj3p2koI": {
- "id": "QJ0gQxBMvgFftpj3p2koI",
- "tableId": "xrgAG9Zc_whfxTeGQ2fqx",
- "name": "code",
- "comment": "",
- "dataType": "VARCHAR(20)",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 75,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1747283583386,
- "createAt": 1747283505933
- }
- },
"pY1RZgzuWBgRILX2XsMTt": {
"id": "pY1RZgzuWBgRILX2XsMTt",
"tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
@@ -6384,26 +5479,6 @@
"createAt": 1747286811587
}
},
- "qZSh2gBdoEMUq6j7FdhHg": {
- "id": "qZSh2gBdoEMUq6j7FdhHg",
- "tableId": "xrgAG9Zc_whfxTeGQ2fqx",
- "name": "uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1747286857490,
- "createAt": 1747286857490
- }
- },
"yjaoHnd4nFaa-3REXvRfN": {
"id": "yjaoHnd4nFaa-3REXvRfN",
"tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
@@ -6464,206 +5539,6 @@
"createAt": 1747286929609
}
},
- "0-PXIFE_CwDwDXvY_qlMC": {
- "id": "0-PXIFE_CwDwDXvY_qlMC",
- "tableId": "Jbg57aw6IK3Z4Fx7SqZdh",
- "name": "",
- "comment": "",
- "dataType": "",
- "default": "",
- "options": 0,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1747287115873,
- "createAt": 1747287115873
- }
- },
- "cGeAaXm_heE_1MxoPQZ6x": {
- "id": "cGeAaXm_heE_1MxoPQZ6x",
- "tableId": "Jbg57aw6IK3Z4Fx7SqZdh",
- "name": "uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 15,
- "ui": {
- "keys": 1,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1747287129605,
- "createAt": 1747287126896
- }
- },
- "lcvHWshW-AKfY3CHnmbiC": {
- "id": "lcvHWshW-AKfY3CHnmbiC",
- "tableId": "Jbg57aw6IK3Z4Fx7SqZdh",
- "name": "created_at",
- "comment": "",
- "dataType": "TIMESTAMP",
- "default": "CURRENT_TIMESTAMP",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 65,
- "widthDefault": 122
- },
- "meta": {
- "updateAt": 1747287126897,
- "createAt": 1747287126897
- }
- },
- "rv1LHZrU_9V_9PTrhJglL": {
- "id": "rv1LHZrU_9V_9PTrhJglL",
- "tableId": "Jbg57aw6IK3Z4Fx7SqZdh",
- "name": "serverinfo_uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 76,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1747287149425,
- "createAt": 1747287137183
- }
- },
- "iH6WMT-edRu71AXKHha-O": {
- "id": "iH6WMT-edRu71AXKHha-O",
- "tableId": "Jbg57aw6IK3Z4Fx7SqZdh",
- "name": "partinfo_uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 66,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1747287166620,
- "createAt": 1747287159254
- }
- },
- "mvErAzOO6dtDr2QBiSm6x": {
- "id": "mvErAzOO6dtDr2QBiSm6x",
- "tableId": "orLBU-C_XFowKM86b0lVB",
- "name": "uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 15,
- "ui": {
- "keys": 1,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1747287274634,
- "createAt": 1747287272762
- }
- },
- "Km9hAV_kAnYMfhhyuQjU8": {
- "id": "Km9hAV_kAnYMfhhyuQjU8",
- "tableId": "orLBU-C_XFowKM86b0lVB",
- "name": "created_at",
- "comment": "",
- "dataType": "TIMESTAMP",
- "default": "CURRENT_TIMESTAMP",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 65,
- "widthDefault": 122
- },
- "meta": {
- "updateAt": 1747287272762,
- "createAt": 1747287272762
- }
- },
- "mXoxwrkoKXV1WKzL_87_a": {
- "id": "mXoxwrkoKXV1WKzL_87_a",
- "tableId": "orLBU-C_XFowKM86b0lVB",
- "name": "serverinfo_uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 76,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1747287290646,
- "createAt": 1747287284659
- }
- },
- "Ffs30ak5FXss4y4DrOM-9": {
- "id": "Ffs30ak5FXss4y4DrOM-9",
- "tableId": "orLBU-C_XFowKM86b0lVB",
- "name": "ipinfo_uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1747287314158,
- "createAt": 1747287309255
- }
- },
- "X0uYzbny1prISJa_gYnIt": {
- "id": "X0uYzbny1prISJa_gYnIt",
- "tableId": "Jbg57aw6IK3Z4Fx7SqZdh",
- "name": "type",
- "comment": "",
- "dataType": "VARCHAR(20)",
- "default": "'CPU'",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 75,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1747296244100,
- "createAt": 1747296244099
- }
- },
"SaTapKkBzVUluKTG_fsBy": {
"id": "SaTapKkBzVUluKTG_fsBy",
"tableId": "ZLEpY5EjuZV21718zf-Y1",
@@ -7044,126 +5919,6 @@
"createAt": 1747378814732
}
},
- "gb59smF6KMFsvojjxwvuJ": {
- "id": "gb59smF6KMFsvojjxwvuJ",
- "tableId": "q0nHqNHYRczLFnV35V_qc",
- "name": "serviceinfo_uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 2,
- "widthName": 80,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1747379640347,
- "createAt": 1747379584781
- }
- },
- "YHS-M0tbd3fsXWddxXjHh": {
- "id": "YHS-M0tbd3fsXWddxXjHh",
- "tableId": "q0nHqNHYRczLFnV35V_qc",
- "name": "uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 11,
- "ui": {
- "keys": 1,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1747379716004,
- "createAt": 1747379627412
- }
- },
- "dEsFAYW9ehgWZ4EEPMAX_": {
- "id": "dEsFAYW9ehgWZ4EEPMAX_",
- "tableId": "q0nHqNHYRczLFnV35V_qc",
- "name": "billing_type",
- "comment": "",
- "dataType": "VARCHAR(20)",
- "default": "'month'",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 63,
- "widthComment": 60,
- "widthDataType": 75,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1747379627412,
- "createAt": 1747379627412
- }
- },
- "BAc1ONx63wWUDHDHNxk5v": {
- "id": "BAc1ONx63wWUDHDHNxk5v",
- "tableId": "q0nHqNHYRczLFnV35V_qc",
- "name": "amount",
- "comment": "",
- "dataType": "INT",
- "default": "0",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1747379627412,
- "createAt": 1747379627412
- }
- },
- "3xpC59e170haRrVKuaiol": {
- "id": "3xpC59e170haRrVKuaiol",
- "tableId": "q0nHqNHYRczLFnV35V_qc",
- "name": "created_at",
- "comment": "",
- "dataType": "TIMESTAMP",
- "default": "CURRENT_TIMESTAMP",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 65,
- "widthDefault": 122
- },
- "meta": {
- "updateAt": 1747379627412,
- "createAt": 1747379627412
- }
- },
- "ARlzuJPlNjSld6grPvPsA": {
- "id": "ARlzuJPlNjSld6grPvPsA",
- "tableId": "q0nHqNHYRczLFnV35V_qc",
- "name": "serverinfo_uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 2,
- "widthName": 76,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1747379694076,
- "createAt": 1747379666902
- }
- },
"UKMpq-uPW9JhNhwRMtBmC": {
"id": "UKMpq-uPW9JhNhwRMtBmC",
"tableId": "kc1EFvFhlBSc0B0bDgX28",
@@ -7183,6 +5938,486 @@
"updateAt": 1747380826300,
"createAt": 1747380826300
}
+ },
+ "BaXSr0Zs4Yk5dCbD8X_lm": {
+ "id": "BaXSr0Zs4Yk5dCbD8X_lm",
+ "tableId": "doERb3lIVeBW_D0NtNYX8",
+ "name": "price",
+ "comment": "단가",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1747620603412,
+ "createAt": 1747620566701
+ }
+ },
+ "CY-ZAs3Ns1YhoxL9UiCee": {
+ "id": "CY-ZAs3Ns1YhoxL9UiCee",
+ "tableId": "kc1EFvFhlBSc0B0bDgX28",
+ "name": "serverinfo_uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 76,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1747621946921,
+ "createAt": 1747621930444
+ }
+ },
+ "_oIE_aDPjyuwPZo2h8QUJ": {
+ "id": "_oIE_aDPjyuwPZo2h8QUJ",
+ "tableId": "3RJ8qxNNqL7eCvBmmqzpd",
+ "name": "uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 11,
+ "ui": {
+ "keys": 1,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1747625897775,
+ "createAt": 1747625895255
+ }
+ },
+ "fGzuo5ZiUU8JjFLpx83H_": {
+ "id": "fGzuo5ZiUU8JjFLpx83H_",
+ "tableId": "3RJ8qxNNqL7eCvBmmqzpd",
+ "name": "billing_type",
+ "comment": "",
+ "dataType": "VARCHAR(20)",
+ "default": "'month'",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 63,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1747625895256,
+ "createAt": 1747625895256
+ }
+ },
+ "s2DxySreFcYw4F8pTrtik": {
+ "id": "s2DxySreFcYw4F8pTrtik",
+ "tableId": "3RJ8qxNNqL7eCvBmmqzpd",
+ "name": "amount",
+ "comment": "",
+ "dataType": "INT",
+ "default": "0",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1747625895256,
+ "createAt": 1747625895256
+ }
+ },
+ "NwGV49CLzr1A-dxD3tBmJ": {
+ "id": "NwGV49CLzr1A-dxD3tBmJ",
+ "tableId": "3RJ8qxNNqL7eCvBmmqzpd",
+ "name": "created_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "CURRENT_TIMESTAMP",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 122
+ },
+ "meta": {
+ "updateAt": 1747625895256,
+ "createAt": 1747625895256
+ }
+ },
+ "i_tL8EWzsKz8Q6TjEkdFG": {
+ "id": "i_tL8EWzsKz8Q6TjEkdFG",
+ "tableId": "3RJ8qxNNqL7eCvBmmqzpd",
+ "name": "serviceinfo_uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 2,
+ "widthName": 80,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1747625924136,
+ "createAt": 1747625914064
+ }
+ },
+ "0rvNoG9MrbN-6-6iDdw3K": {
+ "id": "0rvNoG9MrbN-6-6iDdw3K",
+ "tableId": "3RJ8qxNNqL7eCvBmmqzpd",
+ "name": "lineinfo_uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 2,
+ "widthName": 63,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1747625938005,
+ "createAt": 1747625932404
+ }
+ },
+ "uodvC_rgsnCqB65A3uZYW": {
+ "id": "uodvC_rgsnCqB65A3uZYW",
+ "tableId": "R4reSshLxH3DQW6fUfSPa",
+ "name": "serviceinfo_uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 2,
+ "widthName": 80,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1747626616365,
+ "createAt": 1747626605945
+ }
+ },
+ "g41qCdbclynuoNo7zTUoC": {
+ "id": "g41qCdbclynuoNo7zTUoC",
+ "tableId": "M9XC2MNIJqyKe77s6znI7",
+ "name": "serviceinofs_lineinfos_uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 135,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1747627136540,
+ "createAt": 1747627057149
+ }
+ },
+ "4sOzBtwc60uLCkHDsc97O": {
+ "id": "4sOzBtwc60uLCkHDsc97O",
+ "tableId": "M9XC2MNIJqyKe77s6znI7",
+ "name": "serviceinfos_ipinfos_uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 126,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1747627183882,
+ "createAt": 1747627168942
+ }
+ },
+ "3RTWS2E2a-gW6e6wW3sgo": {
+ "id": "3RTWS2E2a-gW6e6wW3sgo",
+ "tableId": "Btzrm5KCDr_59gZoXRXol",
+ "name": "uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 11,
+ "ui": {
+ "keys": 1,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1747631561974,
+ "createAt": 1747631559174
+ }
+ },
+ "JGzjeoxB88aSopAejjl0M": {
+ "id": "JGzjeoxB88aSopAejjl0M",
+ "tableId": "Btzrm5KCDr_59gZoXRXol",
+ "name": "billing_type",
+ "comment": "",
+ "dataType": "VARCHAR(20)",
+ "default": "'month'",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 63,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1747631559174,
+ "createAt": 1747631559174
+ }
+ },
+ "4Y3UNdKcuOhQ3lY9-zjEm": {
+ "id": "4Y3UNdKcuOhQ3lY9-zjEm",
+ "tableId": "Btzrm5KCDr_59gZoXRXol",
+ "name": "amount",
+ "comment": "",
+ "dataType": "INT",
+ "default": "0",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1747631559174,
+ "createAt": 1747631559174
+ }
+ },
+ "UvgOUjhbSsKnhm7ks-2T7": {
+ "id": "UvgOUjhbSsKnhm7ks-2T7",
+ "tableId": "Btzrm5KCDr_59gZoXRXol",
+ "name": "created_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "CURRENT_TIMESTAMP",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 122
+ },
+ "meta": {
+ "updateAt": 1747631559174,
+ "createAt": 1747631559174
+ }
+ },
+ "aVHpSwITyNUlzw2eRHocV": {
+ "id": "aVHpSwITyNUlzw2eRHocV",
+ "tableId": "Btzrm5KCDr_59gZoXRXol",
+ "name": "serviceinfo_uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 2,
+ "widthName": 80,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1747631645924,
+ "createAt": 1747631603772
+ }
+ },
+ "stEdaFSZ8RZorO2WI_W2Z": {
+ "id": "stEdaFSZ8RZorO2WI_W2Z",
+ "tableId": "Btzrm5KCDr_59gZoXRXol",
+ "name": "serverinfo_uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 2,
+ "widthName": 76,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1747631652735,
+ "createAt": 1747631627547
+ }
+ },
+ "hvzap8WHQwxODmGohOVcN": {
+ "id": "hvzap8WHQwxODmGohOVcN",
+ "tableId": "BoXnD7ITrjdXuJVzpiLoN",
+ "name": "uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 11,
+ "ui": {
+ "keys": 1,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1747632315593,
+ "createAt": 1747632312971
+ }
+ },
+ "xlUL3JSIoo2NQaae1bhJC": {
+ "id": "xlUL3JSIoo2NQaae1bhJC",
+ "tableId": "BoXnD7ITrjdXuJVzpiLoN",
+ "name": "model",
+ "comment": "",
+ "dataType": "VARCHAR(50)",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1747632312972,
+ "createAt": 1747632312972
+ }
+ },
+ "TS6YN3ndjqITM6LWdVimX": {
+ "id": "TS6YN3ndjqITM6LWdVimX",
+ "tableId": "BoXnD7ITrjdXuJVzpiLoN",
+ "name": "created_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "CURRENT_TIMESTAMP",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 122
+ },
+ "meta": {
+ "updateAt": 1747632312972,
+ "createAt": 1747632312972
+ }
+ },
+ "LHHK0n71w3kZmkJRraK-4": {
+ "id": "LHHK0n71w3kZmkJRraK-4",
+ "tableId": "BoXnD7ITrjdXuJVzpiLoN",
+ "name": "serverinfo_uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 2,
+ "widthName": 76,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1747632339290,
+ "createAt": 1747632330202
+ }
+ },
+ "Ba036rLR2vRLjGURehMqM": {
+ "id": "Ba036rLR2vRLjGURehMqM",
+ "tableId": "BoXnD7ITrjdXuJVzpiLoN",
+ "name": "partinfo_uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 2,
+ "widthName": 66,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1747632360101,
+ "createAt": 1747632352018
+ }
+ },
+ "0QgnkM04w2SJ7Nf3MTfxM": {
+ "id": "0QgnkM04w2SJ7Nf3MTfxM",
+ "tableId": "BoXnD7ITrjdXuJVzpiLoN",
+ "name": "type",
+ "comment": "",
+ "dataType": "VARCHAR(20)",
+ "default": "'CPU'",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1747632410788,
+ "createAt": 1747632410788
+ }
+ },
+ "GUAjQ-qFNvMHOaqY-rBXq": {
+ "id": "GUAjQ-qFNvMHOaqY-rBXq",
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "name": "code",
+ "comment": "",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 12,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1747638862777,
+ "createAt": 1747632565731
+ }
}
},
"relationshipEntities": {
@@ -7197,7 +6432,7 @@
"_AcWUYKzNJd-V0fRHq8Cx"
],
"x": 1170.0947,
- "y": 897.4689333333332,
+ "y": 922.1356,
"direction": 1
},
"end": {
@@ -7225,7 +6460,7 @@
"_AcWUYKzNJd-V0fRHq8Cx"
],
"x": 1170.0947,
- "y": 1094.8022666666666,
+ "y": 1070.1356,
"direction": 1
},
"end": {
@@ -7233,8 +6468,8 @@
"columnIds": [
"sscrxOdwLlx94tx1j_MrH"
],
- "x": 692.1378,
- "y": 1680.2032428571429,
+ "x": 686.1378,
+ "y": 1674.3461,
"direction": 2
},
"meta": {
@@ -7252,8 +6487,8 @@
"columnIds": [
"nb5CGzskl3_LIRA0yyede"
],
- "x": 692.1378,
- "y": 1863.060385714286,
+ "x": 686.1378,
+ "y": 1810.3461,
"direction": 2
},
"end": {
@@ -7261,8 +6496,8 @@
"columnIds": [
"zG8_7CN0n4heTPXcS1V8e"
],
- "x": 1185.2953,
- "y": 2076.666,
+ "x": 1167.4791,
+ "y": 2250.4061,
"direction": 1
},
"meta": {
@@ -7280,8 +6515,8 @@
"columnIds": [
"nb5CGzskl3_LIRA0yyede"
],
- "x": 692.1378,
- "y": 1954.4889571428575,
+ "x": 686.1378,
+ "y": 1844.3461,
"direction": 2
},
"end": {
@@ -7289,8 +6524,8 @@
"columnIds": [
"CgGKx59wNvLpWcoBrEuvK"
],
- "x": 1178.7675,
- "y": 2663.8046,
+ "x": 1170.8023,
+ "y": 2482.9427,
"direction": 1
},
"meta": {
@@ -7308,8 +6543,8 @@
"columnIds": [
"2HB01q46-mugMjuOz85YG"
],
- "x": 2457.4319,
- "y": 2627.0816,
+ "x": 2400.1595,
+ "y": 2390.1189,
"direction": 1
},
"end": {
@@ -7317,8 +6552,8 @@
"columnIds": [
"AKpf8UbHiwRJll36PQR6f"
],
- "x": 1702.7675,
- "y": 2663.8046,
+ "x": 1694.8023,
+ "y": 2482.9427,
"direction": 2
},
"meta": {
@@ -7336,8 +6571,8 @@
"columnIds": [
"nb5CGzskl3_LIRA0yyede"
],
- "x": 692.1378,
- "y": 1771.6318142857144,
+ "x": 686.1378,
+ "y": 1776.3461,
"direction": 2
},
"end": {
@@ -7345,8 +6580,8 @@
"columnIds": [
"jw-RY9uJDPlANghUUPnJ4"
],
- "x": 1180.4415,
- "y": 1536.5532,
+ "x": 1169.2751,
+ "y": 2024.3199,
"direction": 1
},
"meta": {
@@ -7362,8 +6597,8 @@
"start": {
"tableId": "ZLEpY5EjuZV21718zf-Y1",
"columnIds": [],
- "x": 2439.4932,
- "y": 1232.3495,
+ "x": 2404.3581,
+ "y": 1880.9982,
"direction": 1
},
"end": {
@@ -7371,8 +6606,8 @@
"columnIds": [
"fdfaSp8HaDoxD96LL1tX4"
],
- "x": 1695.4415,
- "y": 1536.5532,
+ "x": 1684.2751,
+ "y": 2024.3199,
"direction": 2
},
"meta": {
@@ -7380,62 +6615,6 @@
"createAt": 1745819764143
}
},
- "AckV69XB9r2m1VHP64gtd": {
- "id": "AckV69XB9r2m1VHP64gtd",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "kc1EFvFhlBSc0B0bDgX28",
- "columnIds": [
- "nb5CGzskl3_LIRA0yyede"
- ],
- "x": 692.1378,
- "y": 1725.9175285714286,
- "direction": 2
- },
- "end": {
- "tableId": "F82-EcEv3fB4uzGzPrPla",
- "columnIds": [
- "fDS7QeP4XnANQE_qEtGsY"
- ],
- "x": 1180.7967,
- "y": 1296.9182,
- "direction": 1
- },
- "meta": {
- "updateAt": 1746604508898,
- "createAt": 1745819764143
- }
- },
- "6blFGW77QEOBG_yDwtFQq": {
- "id": "6blFGW77QEOBG_yDwtFQq",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "doERb3lIVeBW_D0NtNYX8",
- "columnIds": [
- "7B0zaLoZnOoMNW8OHZlrQ"
- ],
- "x": 2417.4558,
- "y": 978.7781,
- "direction": 1
- },
- "end": {
- "tableId": "F82-EcEv3fB4uzGzPrPla",
- "columnIds": [
- "dDoAacc03mr5Qr0bIwlN6"
- ],
- "x": 1695.7967,
- "y": 1296.9182,
- "direction": 2
- },
- "meta": {
- "updateAt": 1746604489464,
- "createAt": 1745819764143
- }
- },
"95uRv2fz3rssNbkyuzkLh": {
"id": "95uRv2fz3rssNbkyuzkLh",
"identification": false,
@@ -7456,7 +6635,7 @@
"DGl10GI58QwOHwpTu4Z1Y"
],
"x": 1181.8279,
- "y": 2969.3078,
+ "y": 3274.7872,
"direction": 1
},
"meta": {
@@ -7530,8 +6709,8 @@
"columnIds": [
"7B0zaLoZnOoMNW8OHZlrQ"
],
- "x": 2675.4558,
- "y": 1046.7781,
+ "x": 2607.9171,
+ "y": 1685.5552,
"direction": 8
},
"end": {
@@ -7539,8 +6718,8 @@
"columnIds": [
"f7_MGvRjkwL1xkCWrAgDR"
],
- "x": 2688.4932,
- "y": 1132.3495,
+ "x": 2653.3581,
+ "y": 1780.9982,
"direction": 4
},
"meta": {
@@ -7558,8 +6737,8 @@
"columnIds": [
"nb5CGzskl3_LIRA0yyede"
],
- "x": 692.1378,
- "y": 1908.7746714285718,
+ "x": 686.1378,
+ "y": 1912.3461,
"direction": 2
},
"end": {
@@ -7567,8 +6746,8 @@
"columnIds": [
"YKXKsIEJE-vmIMQd5ZUMC"
],
- "x": 1180.3332,
- "y": 2374.5767,
+ "x": 1182.4615,
+ "y": 3016.1046,
"direction": 1
},
"meta": {
@@ -7586,8 +6765,8 @@
"columnIds": [
"Jh6e_-9QYe1Tqve0PE3kT"
],
- "x": 2445.6254,
- "y": 2279.381,
+ "x": 2410.026,
+ "y": 2947.3911,
"direction": 1
},
"end": {
@@ -7595,8 +6774,8 @@
"columnIds": [
"ox7xu7XaYBZyB2alu2HcK"
],
- "x": 1695.3332,
- "y": 2374.5767,
+ "x": 1697.4615,
+ "y": 3016.1046,
"direction": 2
},
"meta": {
@@ -7604,202 +6783,6 @@
"createAt": 1746783814940
}
},
- "STHM-pzaTO72SEkIGYTCA": {
- "id": "STHM-pzaTO72SEkIGYTCA",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "6ajvOCaGuXU9pzV0Y9jEi",
- "columnIds": [
- "_AcWUYKzNJd-V0fRHq8Cx"
- ],
- "x": 1435.5947,
- "y": 1168.1356,
- "direction": 8
- },
- "end": {
- "tableId": "RMhrLs7bOaopKmKt9YKHQ",
- "columnIds": [
- "ha72QbBWfvyRymsyFBov8"
- ],
- "x": 2223.1253,
- "y": 2636.5239,
- "direction": 1
- },
- "meta": {
- "updateAt": 1747118545120,
- "createAt": 1747118545120
- }
- },
- "nqdOCB_VJIeTtmlv33rcm": {
- "id": "nqdOCB_VJIeTtmlv33rcm",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 1,
- "start": {
- "tableId": "6ajvOCaGuXU9pzV0Y9jEi",
- "columnIds": [
- "_AcWUYKzNJd-V0fRHq8Cx"
- ],
- "x": 1701.0947,
- "y": 1088.1356,
- "direction": 2
- },
- "end": {
- "tableId": "doERb3lIVeBW_D0NtNYX8",
- "columnIds": [
- "Ue1gt0C4DyjOQswV8LxkE"
- ],
- "x": 2205.6162,
- "y": 1140.5589,
- "direction": 1
- },
- "meta": {
- "updateAt": 1747198681287,
- "createAt": 1747198681287
- }
- },
- "zH9SNavkYXAVRNXk4KF3w": {
- "id": "zH9SNavkYXAVRNXk4KF3w",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "6ajvOCaGuXU9pzV0Y9jEi",
- "columnIds": [
- "_AcWUYKzNJd-V0fRHq8Cx"
- ],
- "x": 1170.0947,
- "y": 996.1355999999998,
- "direction": 1
- },
- "end": {
- "tableId": "R4reSshLxH3DQW6fUfSPa",
- "columnIds": [
- "Mlq3l8ZyEkSzXldwOmRed"
- ],
- "x": 709.3262,
- "y": 945.1988,
- "direction": 2
- },
- "meta": {
- "updateAt": 1747279114628,
- "createAt": 1747279114628
- }
- },
- "8v6Wmy4UTd5daxh1_kCH4": {
- "id": "8v6Wmy4UTd5daxh1_kCH4",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "R4reSshLxH3DQW6fUfSPa",
- "columnIds": [
- "fsAJySlXPbGQahV59hQgo"
- ],
- "x": 455.3262,
- "y": 1057.1988000000001,
- "direction": 8
- },
- "end": {
- "tableId": "M9XC2MNIJqyKe77s6znI7",
- "columnIds": [
- "XqPP8eaTMK9vWD9QQJkYy"
- ],
- "x": 460.46479999999997,
- "y": 1212.971,
- "direction": 4
- },
- "meta": {
- "updateAt": 1747281724119,
- "createAt": 1747281724119
- }
- },
- "YDIkLS7KeNom6uC_nProR": {
- "id": "YDIkLS7KeNom6uC_nProR",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "kc1EFvFhlBSc0B0bDgX28",
- "columnIds": [
- "nb5CGzskl3_LIRA0yyede"
- ],
- "x": 435.13779999999997,
- "y": 1657.3461,
- "direction": 4
- },
- "end": {
- "tableId": "M9XC2MNIJqyKe77s6znI7",
- "columnIds": [
- "ZeTOeaI1N5mWuBiB0tO1F"
- ],
- "x": 460.46479999999997,
- "y": 1436.971,
- "direction": 8
- },
- "meta": {
- "updateAt": 1747282258543,
- "createAt": 1747282258543
- }
- },
- "8Ulr6TphgoytgicjXwDqj": {
- "id": "8Ulr6TphgoytgicjXwDqj",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "gYqhvNLZjWrQk8LNKH3il",
- "columnIds": [
- "TQwAGrd3jBQOImSKgfAZb"
- ],
- "x": 1436.9646,
- "y": 2311.9581,
- "direction": 4
- },
- "end": {
- "tableId": "M9XC2MNIJqyKe77s6znI7",
- "columnIds": [
- "cuyA-A5FkTXz_x0BD1Uld"
- ],
- "x": 802.0584,
- "y": 1305.1939,
- "direction": 2
- },
- "meta": {
- "updateAt": 1747282593370,
- "createAt": 1747282593370
- }
- },
- "OFCgrZzGLTIHAQEbHT_dj": {
- "id": "OFCgrZzGLTIHAQEbHT_dj",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "RMhrLs7bOaopKmKt9YKHQ",
- "columnIds": [
- "Jh6e_-9QYe1Tqve0PE3kT"
- ],
- "x": 2223.1253,
- "y": 2630.5239,
- "direction": 1
- },
- "end": {
- "tableId": "M9XC2MNIJqyKe77s6znI7",
- "columnIds": [
- "GfFdPBERgldIUWf5bA_nZ"
- ],
- "x": 802.0584,
- "y": 1305.1939,
- "direction": 2
- },
- "meta": {
- "updateAt": 1747282736023,
- "createAt": 1747282736023
- }
- },
"rDaiOqjpenuTOWAB9GhA6": {
"id": "rDaiOqjpenuTOWAB9GhA6",
"identification": false,
@@ -7819,8 +6802,8 @@
"columnIds": [
"5KRw8TtT2nLqpYfKFOBwe"
],
- "x": 2417.4558,
- "y": 842.7781,
+ "x": 2349.9171,
+ "y": 1481.5552,
"direction": 1
},
"meta": {
@@ -7828,314 +6811,6 @@
"createAt": 1747286811587
}
},
- "qLQPXlDyy1hmEhoRUdANl": {
- "id": "qLQPXlDyy1hmEhoRUdANl",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "6ajvOCaGuXU9pzV0Y9jEi",
- "columnIds": [
- "_AcWUYKzNJd-V0fRHq8Cx"
- ],
- "x": 1699.0947,
- "y": 1020.8022666666668,
- "direction": 2
- },
- "end": {
- "tableId": "xrgAG9Zc_whfxTeGQ2fqx",
- "columnIds": [
- "qZSh2gBdoEMUq6j7FdhHg"
- ],
- "x": 2429.8024,
- "y": 1874.7664,
- "direction": 1
- },
- "meta": {
- "updateAt": 1747286857490,
- "createAt": 1747286857490
- }
- },
- "cxg33av4banc6Ewrry-po": {
- "id": "cxg33av4banc6Ewrry-po",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "6ajvOCaGuXU9pzV0Y9jEi",
- "columnIds": [
- "_AcWUYKzNJd-V0fRHq8Cx"
- ],
- "x": 1701.0947,
- "y": 1128.1356,
- "direction": 2
- },
- "end": {
- "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
- "columnIds": [
- "yjaoHnd4nFaa-3REXvRfN"
- ],
- "x": 2470.9788,
- "y": 2190.0849,
- "direction": 4
- },
- "meta": {
- "updateAt": 1747286871487,
- "createAt": 1747286871487
- }
- },
- "oXc2VcEdry8DcoU1I86K4": {
- "id": "oXc2VcEdry8DcoU1I86K4",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 1,
- "start": {
- "tableId": "6ajvOCaGuXU9pzV0Y9jEi",
- "columnIds": [
- "_AcWUYKzNJd-V0fRHq8Cx"
- ],
- "x": 1699.0947,
- "y": 1119.4689333333333,
- "direction": 2
- },
- "end": {
- "tableId": "RMhrLs7bOaopKmKt9YKHQ",
- "columnIds": [
- "VxbbWBYPZdH63koVtdRuv"
- ],
- "x": 2679.6254,
- "y": 2605.381,
- "direction": 4
- },
- "meta": {
- "updateAt": 1747286910519,
- "createAt": 1747286910519
- }
- },
- "GCXPkwOf_AhaOHOeh1_df": {
- "id": "GCXPkwOf_AhaOHOeh1_df",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 1,
- "start": {
- "tableId": "6ajvOCaGuXU9pzV0Y9jEi",
- "columnIds": [
- "_AcWUYKzNJd-V0fRHq8Cx"
- ],
- "x": 1699.0947,
- "y": 1107.1356,
- "direction": 2
- },
- "end": {
- "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
- "columnIds": [
- "kyD7tU9kevxCDow7j2uHI"
- ],
- "x": 2430.9915,
- "y": 2313.7822,
- "direction": 1
- },
- "meta": {
- "updateAt": 1747286929609,
- "createAt": 1747286929609
- }
- },
- "r8ucpCIm1MkBDOr0kvEl9": {
- "id": "r8ucpCIm1MkBDOr0kvEl9",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
- "columnIds": [
- "F9EPb6nsDx6Tf3GG8rvP1"
- ],
- "x": 2943.9915,
- "y": 2473.7822,
- "direction": 2
- },
- "end": {
- "tableId": "Jbg57aw6IK3Z4Fx7SqZdh",
- "columnIds": [
- "rv1LHZrU_9V_9PTrhJglL"
- ],
- "x": 3256.2456,
- "y": 2585.8608,
- "direction": 1
- },
- "meta": {
- "updateAt": 1747287137183,
- "createAt": 1747287137183
- }
- },
- "P_gL6Gh5661VM4MM9ucql": {
- "id": "P_gL6Gh5661VM4MM9ucql",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "RMhrLs7bOaopKmKt9YKHQ",
- "columnIds": [
- "Jh6e_-9QYe1Tqve0PE3kT"
- ],
- "x": 2936.1254,
- "y": 2741.381,
- "direction": 2
- },
- "end": {
- "tableId": "Jbg57aw6IK3Z4Fx7SqZdh",
- "columnIds": [
- "iH6WMT-edRu71AXKHha-O"
- ],
- "x": 3256.2456,
- "y": 2673.8608,
- "direction": 1
- },
- "meta": {
- "updateAt": 1747287159254,
- "createAt": 1747287159254
- }
- },
- "lNJIUzLhDa6jVxnfEZLV0": {
- "id": "lNJIUzLhDa6jVxnfEZLV0",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
- "columnIds": [
- "F9EPb6nsDx6Tf3GG8rvP1"
- ],
- "x": 2943.9915,
- "y": 2313.7822,
- "direction": 2
- },
- "end": {
- "tableId": "orLBU-C_XFowKM86b0lVB",
- "columnIds": [
- "mXoxwrkoKXV1WKzL_87_a"
- ],
- "x": 3272.9263,
- "y": 2029.3903,
- "direction": 1
- },
- "meta": {
- "updateAt": 1747287284659,
- "createAt": 1747287284659
- }
- },
- "aRPqn8R_3I5F-dlxu1DbS": {
- "id": "aRPqn8R_3I5F-dlxu1DbS",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "ZLEpY5EjuZV21718zf-Y1",
- "columnIds": [
- "Id0h8QbOdlhPj9P1zTm5o"
- ],
- "x": 2950.1231,
- "y": 1558.0484,
- "direction": 2
- },
- "end": {
- "tableId": "orLBU-C_XFowKM86b0lVB",
- "columnIds": [
- "Ffs30ak5FXss4y4DrOM-9"
- ],
- "x": 3272.9263,
- "y": 1953.3903,
- "direction": 1
- },
- "meta": {
- "updateAt": 1747287309255,
- "createAt": 1747287309255
- }
- },
- "LrJDhKK4xoCFS3lROJdmK": {
- "id": "LrJDhKK4xoCFS3lROJdmK",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 1,
- "start": {
- "tableId": "6ajvOCaGuXU9pzV0Y9jEi",
- "columnIds": [
- "_AcWUYKzNJd-V0fRHq8Cx"
- ],
- "x": 1699.0947,
- "y": 1094.8022666666666,
- "direction": 2
- },
- "end": {
- "tableId": "ZLEpY5EjuZV21718zf-Y1",
- "columnIds": [
- "SaTapKkBzVUluKTG_fsBy"
- ],
- "x": 2438.1231,
- "y": 1502.0484,
- "direction": 1
- },
- "meta": {
- "updateAt": 1747297811324,
- "createAt": 1747297811324
- }
- },
- "o_2EhfpnhKfXejwWc2PZM": {
- "id": "o_2EhfpnhKfXejwWc2PZM",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "6ajvOCaGuXU9pzV0Y9jEi",
- "columnIds": [
- "_AcWUYKzNJd-V0fRHq8Cx"
- ],
- "x": 1699.0947,
- "y": 953.8498857142858,
- "direction": 2
- },
- "end": {
- "tableId": "doERb3lIVeBW_D0NtNYX8",
- "columnIds": [
- "B5P-XTPII39W_C1xsZEM-"
- ],
- "x": 2427.0448,
- "y": 1226.5589,
- "direction": 1
- },
- "meta": {
- "updateAt": 1747297931757,
- "createAt": 1747297931757
- }
- },
- "Ze2IarmACVoT2vZUHxTJu": {
- "id": "Ze2IarmACVoT2vZUHxTJu",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 1,
- "start": {
- "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
- "columnIds": [
- "F9EPb6nsDx6Tf3GG8rvP1"
- ],
- "x": 2446.3712,
- "y": 1518.4445,
- "direction": 1
- },
- "end": {
- "tableId": "kc1EFvFhlBSc0B0bDgX28",
- "columnIds": [
- "74hYN_2bj1ubH9fDJVRVz"
- ],
- "x": 695.1378,
- "y": 1757.3461,
- "direction": 2
- },
- "meta": {
- "updateAt": 1747373947530,
- "createAt": 1747373947530
- }
- },
"rvhOgmNcWHmmWI1PYPjzk": {
"id": "rvhOgmNcWHmmWI1PYPjzk",
"identification": false,
@@ -8146,8 +6821,8 @@
"columnIds": [
"zBz4vBOZSIA8vKmfqXckO"
],
- "x": 2449.8927,
- "y": 1866.4513,
+ "x": 2402.2093,
+ "y": 2126.2003,
"direction": 1
},
"end": {
@@ -8155,8 +6830,8 @@
"columnIds": [
"Ve6X-7qKKUxId0tll1Caz"
],
- "x": 1706.2953,
- "y": 2076.666,
+ "x": 1688.4791,
+ "y": 2250.4061,
"direction": 2
},
"meta": {
@@ -8164,36 +6839,8 @@
"createAt": 1747375452269
}
},
- "gy8AYT4ifY9wU-1_ttgwO": {
- "id": "gy8AYT4ifY9wU-1_ttgwO",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "kc1EFvFhlBSc0B0bDgX28",
- "columnIds": [
- "nb5CGzskl3_LIRA0yyede"
- ],
- "x": 692.1378,
- "y": 1817.3461000000002,
- "direction": 2
- },
- "end": {
- "tableId": "q0nHqNHYRczLFnV35V_qc",
- "columnIds": [
- "gb59smF6KMFsvojjxwvuJ"
- ],
- "x": 1182.1226,
- "y": 1785.7783,
- "direction": 1
- },
- "meta": {
- "updateAt": 1747379584781,
- "createAt": 1747379584781
- }
- },
- "OfL_b7drVbtK_qtISBxwG": {
- "id": "OfL_b7drVbtK_qtISBxwG",
+ "1aURvXuUxIJSq835rWUHk": {
+ "id": "1aURvXuUxIJSq835rWUHk",
"identification": false,
"relationshipType": 16,
"startRelationshipType": 2,
@@ -8202,22 +6849,274 @@
"columnIds": [
"F9EPb6nsDx6Tf3GG8rvP1"
],
- "x": 2446.3712,
- "y": 1518.4445,
+ "x": 424.9137,
+ "y": 1388.9145,
+ "direction": 8
+ },
+ "end": {
+ "tableId": "kc1EFvFhlBSc0B0bDgX28",
+ "columnIds": [
+ "CY-ZAs3Ns1YhoxL9UiCee"
+ ],
+ "x": 436.63779999999997,
+ "y": 1657.3461,
+ "direction": 4
+ },
+ "meta": {
+ "updateAt": 1747621930445,
+ "createAt": 1747621930445
+ }
+ },
+ "6OXR3AW1sSxDJA2ITIz9i": {
+ "id": "6OXR3AW1sSxDJA2ITIz9i",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "kc1EFvFhlBSc0B0bDgX28",
+ "columnIds": [
+ "nb5CGzskl3_LIRA0yyede"
+ ],
+ "x": 686.1378,
+ "y": 1742.3461,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "3RJ8qxNNqL7eCvBmmqzpd",
+ "columnIds": [
+ "i_tL8EWzsKz8Q6TjEkdFG"
+ ],
+ "x": 1166.2223,
+ "y": 1798.7022,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1747625914065,
+ "createAt": 1747625914065
+ }
+ },
+ "QJHejLurUndA2vJMYRawK": {
+ "id": "QJHejLurUndA2vJMYRawK",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "doERb3lIVeBW_D0NtNYX8",
+ "columnIds": [
+ "7B0zaLoZnOoMNW8OHZlrQ"
+ ],
+ "x": 2349.9171,
+ "y": 1617.5552,
"direction": 1
},
"end": {
- "tableId": "q0nHqNHYRczLFnV35V_qc",
+ "tableId": "3RJ8qxNNqL7eCvBmmqzpd",
"columnIds": [
- "ARlzuJPlNjSld6grPvPsA"
+ "0rvNoG9MrbN-6-6iDdw3K"
],
- "x": 1697.1226,
- "y": 1785.7783,
+ "x": 1681.2223,
+ "y": 1798.7022,
"direction": 2
},
"meta": {
- "updateAt": 1747379666902,
- "createAt": 1747379666902
+ "updateAt": 1747625932404,
+ "createAt": 1747625932404
+ }
+ },
+ "avEpCJt-x4kXYN5bcKxiG": {
+ "id": "avEpCJt-x4kXYN5bcKxiG",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "kc1EFvFhlBSc0B0bDgX28",
+ "columnIds": [
+ "nb5CGzskl3_LIRA0yyede"
+ ],
+ "x": 686.1378,
+ "y": 1708.3461,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "R4reSshLxH3DQW6fUfSPa",
+ "columnIds": [
+ "uodvC_rgsnCqB65A3uZYW"
+ ],
+ "x": 1158.0459,
+ "y": 1442.7878,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1747626605945,
+ "createAt": 1747626605945
+ }
+ },
+ "MxsfrRz6sLqMRG7oWr1iC": {
+ "id": "MxsfrRz6sLqMRG7oWr1iC",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "3RJ8qxNNqL7eCvBmmqzpd",
+ "columnIds": [
+ "_oIE_aDPjyuwPZo2h8QUJ"
+ ],
+ "x": 1678.4824,
+ "y": 1662.4008,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "M9XC2MNIJqyKe77s6znI7",
+ "columnIds": [
+ "g41qCdbclynuoNo7zTUoC"
+ ],
+ "x": 2324.3826,
+ "y": 1083.8752,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1747627057149,
+ "createAt": 1747627057149
+ }
+ },
+ "JJfgXbuwe3g8PggszRv6T": {
+ "id": "JJfgXbuwe3g8PggszRv6T",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "3tdV9J9ns8BWCGQeCXITI",
+ "columnIds": [
+ "N9whwkJk3imEwSl_tqk7W"
+ ],
+ "x": 1684.2751,
+ "y": 1974.3199,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "M9XC2MNIJqyKe77s6znI7",
+ "columnIds": [
+ "4sOzBtwc60uLCkHDsc97O"
+ ],
+ "x": 2324.3826,
+ "y": 1158.5418666666667,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1747627168942,
+ "createAt": 1747627168942
+ }
+ },
+ "xnvl_tBcFrTl87jBGDW08": {
+ "id": "xnvl_tBcFrTl87jBGDW08",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "kc1EFvFhlBSc0B0bDgX28",
+ "columnIds": [
+ "nb5CGzskl3_LIRA0yyede"
+ ],
+ "x": 686.1378,
+ "y": 1878.3461,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "Btzrm5KCDr_59gZoXRXol",
+ "columnIds": [
+ "aVHpSwITyNUlzw2eRHocV"
+ ],
+ "x": 1179.9799,
+ "y": 2763.9415,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1747631603773,
+ "createAt": 1747631603773
+ }
+ },
+ "xYyFwSIzfn3RPzA8eaJoV": {
+ "id": "xYyFwSIzfn3RPzA8eaJoV",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "columnIds": [
+ "F9EPb6nsDx6Tf3GG8rvP1"
+ ],
+ "x": 2410.6602,
+ "y": 2683.435,
+ "direction": 1
+ },
+ "end": {
+ "tableId": "Btzrm5KCDr_59gZoXRXol",
+ "columnIds": [
+ "stEdaFSZ8RZorO2WI_W2Z"
+ ],
+ "x": 1694.9799,
+ "y": 2763.9415,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1747631627547,
+ "createAt": 1747631627547
+ }
+ },
+ "KMa7J50RT1ImakceLy9iZ": {
+ "id": "KMa7J50RT1ImakceLy9iZ",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "columnIds": [
+ "F9EPb6nsDx6Tf3GG8rvP1"
+ ],
+ "x": 2907.6602,
+ "y": 2683.435,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "BoXnD7ITrjdXuJVzpiLoN",
+ "columnIds": [
+ "LHHK0n71w3kZmkJRraK-4"
+ ],
+ "x": 3036.1445,
+ "y": 2792.8727,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1747632330203,
+ "createAt": 1747632330203
+ }
+ },
+ "bVmMQk7Qb5kh6yURDiOLx": {
+ "id": "bVmMQk7Qb5kh6yURDiOLx",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "RMhrLs7bOaopKmKt9YKHQ",
+ "columnIds": [
+ "Jh6e_-9QYe1Tqve0PE3kT"
+ ],
+ "x": 2907.026,
+ "y": 2947.3911,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "BoXnD7ITrjdXuJVzpiLoN",
+ "columnIds": [
+ "Ba036rLR2vRLjGURehMqM"
+ ],
+ "x": 3036.1445,
+ "y": 2880.8727,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1747632352018,
+ "createAt": 1747632352018
}
}
},
diff --git a/app/Entities/CommonEntity.php b/app/Entities/CommonEntity.php
index ae45b2e..ee5a656 100644
--- a/app/Entities/CommonEntity.php
+++ b/app/Entities/CommonEntity.php
@@ -22,7 +22,7 @@ abstract class CommonEntity extends Entity
$field = constant("static::PK");
return $this->attributes[$field];
}
- final public function getTitle(): string
+ public function getTitle(): string
{
$field = constant("static::TITLE");
return $this->attributes[$field];
diff --git a/app/Entities/Customer/ServicePartEntity.php b/app/Entities/Customer/ServicePartEntity.php
index 80b0e18..9c31136 100644
--- a/app/Entities/Customer/ServicePartEntity.php
+++ b/app/Entities/Customer/ServicePartEntity.php
@@ -8,4 +8,14 @@ class ServicePartEntity extends CustomerEntity
{
const PK = ServicePartModel::PK;
const TITLE = ServicePartModel::TITLE;
+
+ public function getServiceInfo()
+ {
+ return $this->attributes['erviceinfo_uid'];
+ }
+
+ public function getPartInfo()
+ {
+ return $this->attributes['partinfo_uid'];
+ }
}
diff --git a/app/Entities/Equipment/DefenceEntity.php b/app/Entities/Equipment/DefenceEntity.php
new file mode 100644
index 0000000..22b0bdb
--- /dev/null
+++ b/app/Entities/Equipment/DefenceEntity.php
@@ -0,0 +1,11 @@
+attributes['type'];
+ }
}
diff --git a/app/Entities/Equipment/ServerEntity.php b/app/Entities/Equipment/ServerEntity.php
index f67abd2..0aeafb2 100644
--- a/app/Entities/Equipment/ServerEntity.php
+++ b/app/Entities/Equipment/ServerEntity.php
@@ -6,6 +6,23 @@ use App\Models\Equipment\ServerModel;
class ServerEntity extends EquipmentEntity
{
- const PK = ServerModel::PK;
+ const PK = ServerModel::PK;
const TITLE = ServerModel::TITLE;
+ public function getTitle(): string
+ {
+ return parent::getTitle() . " [{$this->attributes['model']}]";
+ }
+ public function getPartEntities(string $type): array
+ {
+ return $this->attributes[$type] ?? [];
+ }
+
+ public function addPartEntity(string $type, PartEntity $partEntity): void
+ {
+ if (!isset($this->attributes[$type])) {
+ $this->attributes[$type] = [];
+ }
+ $this->attributes[$type][] = $partEntity;
+ // $this->attributes[$type] = array_unique($this->attributes[$type], SORT_REGULAR);
+ }
}
diff --git a/app/Entities/Equipment/ServerPartEntity.php b/app/Entities/Equipment/ServerPartEntity.php
new file mode 100644
index 0000000..416eeda
--- /dev/null
+++ b/app/Entities/Equipment/ServerPartEntity.php
@@ -0,0 +1,21 @@
+attributes['serverinfo_uid'];
+ }
+
+ public function getPartInfo()
+ {
+ return $this->attributes['partinfo_uid'];
+ }
+}
diff --git a/app/Helpers/Customer/ServiceHelper.php b/app/Helpers/Customer/ServiceHelper.php
index 414b00c..3843342 100644
--- a/app/Helpers/Customer/ServiceHelper.php
+++ b/app/Helpers/Customer/ServiceHelper.php
@@ -38,11 +38,12 @@ class ServiceHelper extends CustomerHelper
$form .= "";
$form .= "
";
} else {
+ $extra_class = isset($extras['class']) ? $extras['class'] . ' select-field' : 'select-field';
$formOptions = ["" => lang($viewDatas['class_path'] . '.label.' . $field) . ' 선택'];
foreach ($viewDatas['field_options'][$field] as $key => $label) {
$formOptions[$key] = $label;
}
- $form = form_dropdown($field, $formOptions, $value, $extras);
+ $form = form_dropdown($field, $formOptions, $value, ['class' => $extra_class, ...array_diff_key($extras, ['class' => ''])]);
}
break;
default:
diff --git a/app/Helpers/Equipment/DefenceHelper.php b/app/Helpers/Equipment/DefenceHelper.php
new file mode 100644
index 0000000..56baadc
--- /dev/null
+++ b/app/Helpers/Equipment/DefenceHelper.php
@@ -0,0 +1,16 @@
+setTitleField(field: DefenceModel::TITLE);
+ }
+}
diff --git a/app/Helpers/Equipment/EquipmentHelper.php b/app/Helpers/Equipment/EquipmentHelper.php
index 0b6a54d..4289382 100644
--- a/app/Helpers/Equipment/EquipmentHelper.php
+++ b/app/Helpers/Equipment/EquipmentHelper.php
@@ -11,43 +11,4 @@ class EquipmentHelper extends CommonHelper
{
parent::__construct($request);
}
- public function getFieldForm(string $field, mixed $value, array $viewDatas, array $extras = []): string
- {
- if (in_array($viewDatas['action'], ['create', 'modify'])) {
- $extras = (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? ["class" => "form-control", "required" => "", ...$extras] : ["class" => "form-control", ...$extras];
- }
- switch ($field) {
- case "serverinfo_uid":
- if (!is_array($viewDatas['field_options'][$field])) {
- throw new \Exception(__METHOD__ . "에서 {$field}의 field_options가 array형태가 아닙니다.");
- }
- $formOptions = array_merge(
- ["" => lang($viewDatas['class_path'] . '.label.' . $field) . ' 선택'],
- $viewDatas['field_options'][$field]
- );
- $form = form_dropdown($field, $formOptions, $value, $extras);
- break;
- case 'manufactur_at':
- $extra_class = isset($extras['class']) ? $extras['class'] . ' calender' : 'calender';
- $form = form_input($field, $value ?? "", ['class' => $extra_class, ...array_diff_key($extras, ['class' => ''])]);
- break;
- default:
- $form = parent::getFieldForm($field, $value, $viewDatas, $extras);
- break;
- }
- return $form;
- } //
- public function getFieldView(string $field, array $viewDatas, array $extras = []): string
- {
- $value = $viewDatas['entity']->$field ?? "";
- switch ($field) {
- case 'manufactur_at':
- $value = $value ? date("Y-m-d", strtotime($value)) : "";
- break;
- default:
- $value = parent::getFieldView($field, $viewDatas, $extras);
- break;
- }
- return $value;
- }
}
diff --git a/app/Helpers/Equipment/ServerHelper.php b/app/Helpers/Equipment/ServerHelper.php
index c05e7b0..bfbc275 100644
--- a/app/Helpers/Equipment/ServerHelper.php
+++ b/app/Helpers/Equipment/ServerHelper.php
@@ -13,4 +13,35 @@ class ServerHelper extends EquipmentHelper
parent::__construct($request);
$this->setTitleField(field: ServerModel::TITLE);
}
+
+ public function getFieldView(string $field, array $viewDatas, array $extras = []): string
+ {
+ $value = $viewDatas['entity']->$field ?? "";
+ switch ($field) {
+ case "CPU":
+ case "RAM":
+ case "DISK":
+ $temps = [];
+ foreach ($viewDatas['entity']->getPartEntities($field) as $partEntity) {
+ $temps[] = "" . $partEntity->getTitle() . "
";
+ }
+ $extras = ["class" => "btn btn-outline btn-primary btn-circle", "target" => "_self", ...$extras];
+ $temps[] = form_label(
+ '변경',
+ $field,
+ [
+ "data-src" => "/admin/equipment/serverpart?type={$field}&serverinfo_uid={$viewDatas['entity']->getPK()}",
+ "data-bs-toggle" => "modal",
+ "data-bs-target" => "#index_action_form",
+ ...$extras
+ ]
+ );
+ $value = implode("", $temps);
+ break;
+ default:
+ $value = parent::getFieldView($field, $viewDatas, $extras);
+ break;
+ }
+ return $value;
+ }
}
diff --git a/app/Helpers/Equipment/ServerPartHelper.php b/app/Helpers/Equipment/ServerPartHelper.php
new file mode 100644
index 0000000..69ac4c3
--- /dev/null
+++ b/app/Helpers/Equipment/ServerPartHelper.php
@@ -0,0 +1,22 @@
+setTitleField(field: ServerPartModel::TITLE);
+ }
+
+ public function getListRowColor(mixed $entity, string $field = 'status', string $value = 'use'): string
+ {
+ return "";
+ // return $entity->isMatched($field, $value) ? "" : 'class="table-danger"';
+ }
+}
diff --git a/app/Language/en/Equipment/Defence.php b/app/Language/en/Equipment/Defence.php
new file mode 100644
index 0000000..326f739
--- /dev/null
+++ b/app/Language/en/Equipment/Defence.php
@@ -0,0 +1,28 @@
+ "방어장비정보",
+ 'label' => [
+ 'type' => "종류",
+ 'ip' => "IP",
+ 'accountid' => "계정ID",
+ 'domain' => "도메인",
+ 'price' => "금액",
+ 'description' => "설명",
+ 'status' => "상태",
+ 'updated_at' => "수정일",
+ 'created_at' => "작성일",
+ ],
+ 'DEFAULTS' => [
+ 'type' => 'VPC-CS',
+ 'status' => "use"
+ ],
+ "TYPE" => [
+ "VPC-CS" => "VPC-CS",
+ "KT-CS" => "KT-CS",
+ ],
+ "STATUS" => [
+ "use" => "사용가능",
+ "pause" => "일시정지",
+ "occupied" => "사용중",
+ ],
+];
diff --git a/app/Language/en/Equipment/Ip.php b/app/Language/en/Equipment/Ip.php
index 31fd0a7..11c817c 100644
--- a/app/Language/en/Equipment/Ip.php
+++ b/app/Language/en/Equipment/Ip.php
@@ -4,6 +4,7 @@ return [
'label' => [
'lineinfo_uid' => '회선정보',
'ip' => "IP",
+ 'price' => "금액",
'status' => "상태",
'updated_at' => "수정일",
'created_at' => "작성일",
diff --git a/app/Language/en/Equipment/Line.php b/app/Language/en/Equipment/Line.php
index 06e52e8..28f52df 100644
--- a/app/Language/en/Equipment/Line.php
+++ b/app/Language/en/Equipment/Line.php
@@ -6,6 +6,7 @@ return [
'title' => "제목",
'type' => "종류",
'bandwith' => "CIDR대역",
+ 'price' => "금액",
'status' => "상태",
'start_at' => "개통일",
'updated_at' => "수정일",
diff --git a/app/Language/en/Equipment/Part.php b/app/Language/en/Equipment/Part.php
index e0c07e8..1295769 100644
--- a/app/Language/en/Equipment/Part.php
+++ b/app/Language/en/Equipment/Part.php
@@ -4,9 +4,9 @@ return [
'label' => [
'type' => "종류",
'model' => "모델",
+ 'price' => "금액",
'description' => "설명",
'status' => "상태",
- 'manufactur_at' => "입고일",
'updated_at' => "수정일",
'created_at' => "작성일",
],
diff --git a/app/Language/en/Equipment/Server.php b/app/Language/en/Equipment/Server.php
index 7f3d41a..add977e 100644
--- a/app/Language/en/Equipment/Server.php
+++ b/app/Language/en/Equipment/Server.php
@@ -1,29 +1,43 @@
"서버장비정보",
- 'label' => [
- 'code' => "장비코드",
- 'type' => "종류",
- 'model' => "모델",
- 'description' => "설명",
- 'status' => "상태",
- 'manufactur_at' => "입고일",
- 'updated_at' => "수정일",
- 'created_at' => "작성일",
+ 'title' => "서버장비정보",
+ 'label' => [
+ 'code' => "장비코드",
+ 'type' => "종류",
+ 'model' => "모델",
+ 'price' => "금액",
+ 'description' => "설명",
+ 'status' => "상태",
+ 'updated_at' => "수정일",
+ 'created_at' => "작성일",
+ 'CPU' => "CPU",
+ 'RAM' => "RAM",
+ 'DISK' => "DISK",
],
- 'DEFAULTS' => [
- 'type' => 'RacKMount',
- 'status' => "use"
+ 'DEFAULTS' => [
+ 'type' => 'RacKMount',
+ 'status' => "use",
],
- "TYPE" => [
- "Rack" => "RacKMount",
- "PC" => "조립PC",
- "MiniPC" => "MiniPC",
+ "TYPE" => [
+ "Rack" => "RacKMount",
+ "PC" => "조립PC",
+ "MiniPC" => "MiniPC",
"colocation" => "코로케이션",
],
- "STATUS" => [
- "use" => "사용가능",
- "pause" => "일시정지",
+ "MODEL" => [
+ "HP DL360 Gen 6" => "HP DL360 Gen 6",
+ "HP DL360 Gen 7" => "HP DL360 Gen 7",
+ "HP DL360 Gen 8" => "HP DL360 Gen 8",
+ "HP DL360 Gen 9" => "HP DL360 Gen 9",
+ "3,4,5세대 PC" => "3,4,5세대 PC",
+ "6,7,8세대 PC" => "6,7,8세대 PC",
+ "9,10,11세대 PC" => "9,10,11세대 PC",
+ "12,13,14세대 PC" => "12,13,14세대 PC",
+ "12,13,14세대 MiniPC" => "12,13,14세대 MiniPC",
+ ],
+ "STATUS" => [
+ "use" => "사용가능",
+ "pause" => "일시정지",
"occupied" => "사용중",
],
];
diff --git a/app/Language/en/Equipment/ServerPart.php b/app/Language/en/Equipment/ServerPart.php
new file mode 100644
index 0000000..17468de
--- /dev/null
+++ b/app/Language/en/Equipment/ServerPart.php
@@ -0,0 +1,18 @@
+ "장비부품연결",
+ 'label' => [
+ 'type' => "종류",
+ 'serverinfo_uid' => "서버",
+ 'partinfo_uid' => "부품",
+ 'created_at' => "작성일",
+ ],
+ 'DEFAULTS' => [
+ 'type' => 'CPU',
+ ],
+ "TYPE" => [
+ "CPU" => "CPU",
+ "RAM" => "RAM",
+ "DISK" => "DISK",
+ ],
+];
diff --git a/app/Language/en/Equipment/Software.php b/app/Language/en/Equipment/Software.php
index 8edf00e..5613571 100644
--- a/app/Language/en/Equipment/Software.php
+++ b/app/Language/en/Equipment/Software.php
@@ -4,6 +4,7 @@ return [
'label' => [
'type' => "종류",
'model' => "모델",
+ 'price' => "금액",
'description' => "설명",
'status' => "상태",
'updated_at' => "수정일",
diff --git a/app/Models/Equipment/DefenceModel.php b/app/Models/Equipment/DefenceModel.php
new file mode 100644
index 0000000..c395048
--- /dev/null
+++ b/app/Models/Equipment/DefenceModel.php
@@ -0,0 +1,47 @@
+ field가 array 입니다.\n" . var_export($field, true));
+ }
+ switch ($field) {
+ case "model":
+ case "type":
+ $rule = "required|trim|string";
+ break;
+ case "ip":
+ $rule = "required|trim|valid_ip[both]"; //ipv4 , ipv6 , both(ipv4,ipv6)
+ break;
+ default:
+ $rule = parent::getFieldRule($action, $field);
+ break;
+ }
+ return $rule;
+ }
+}
diff --git a/app/Models/Equipment/IpModel.php b/app/Models/Equipment/IpModel.php
index 8d20607..23dbb3c 100644
--- a/app/Models/Equipment/IpModel.php
+++ b/app/Models/Equipment/IpModel.php
@@ -34,9 +34,6 @@ class IpModel extends EquipmentModel
case "ip":
$rule = "required|trim|valid_ip[both]"; //ipv4 , ipv6 , both(ipv4,ipv6)
break;
- case "status":
- $rule = "required|trim|string";
- break;
default:
$rule = parent::getFieldRule($action, $field);
break;
diff --git a/app/Models/Equipment/LineModel.php b/app/Models/Equipment/LineModel.php
index 784be9f..fa7a190 100644
--- a/app/Models/Equipment/LineModel.php
+++ b/app/Models/Equipment/LineModel.php
@@ -37,7 +37,6 @@ class LineModel extends EquipmentModel
case "title":
case "bandwith":
case "type":
- case "status":
$rule = "required|trim|string";
break;
default:
diff --git a/app/Models/Equipment/PartModel.php b/app/Models/Equipment/PartModel.php
index ec32b2e..3380a4a 100644
--- a/app/Models/Equipment/PartModel.php
+++ b/app/Models/Equipment/PartModel.php
@@ -16,7 +16,6 @@ class PartModel extends EquipmentModel
"type",
"model",
"description",
- "manufactur_at",
"status",
"updated_at"
];
@@ -32,15 +31,8 @@ class PartModel extends EquipmentModel
switch ($field) {
case "model":
case "type":
- case "status":
$rule = "required|trim|string";
break;
- case "manufactur_at":
- $rule = "required|valid_date";
- break;
- case "description":
- $rule = "if_exist|trim|string";
- break;
default:
$rule = parent::getFieldRule($action, $field);
break;
diff --git a/app/Models/Equipment/ServerModel.php b/app/Models/Equipment/ServerModel.php
index 1ec40ff..fca9a2e 100644
--- a/app/Models/Equipment/ServerModel.php
+++ b/app/Models/Equipment/ServerModel.php
@@ -8,7 +8,7 @@ class ServerModel extends EquipmentModel
{
const TABLE = "serverinfo";
const PK = "uid";
- const TITLE = "model";
+ const TITLE = "code";
protected $table = self::TABLE;
protected $primaryKey = self::PK;
protected $returnType = ServerEntity::class;
@@ -17,7 +17,6 @@ class ServerModel extends EquipmentModel
"type",
"model",
"description",
- "manufactur_at",
"status",
"updated_at"
];
@@ -32,17 +31,10 @@ class ServerModel extends EquipmentModel
}
switch ($field) {
case "code":
- $rule = "required|trim|min_length[4]|max_length[20]";
- $rule .= in_array($action, ["create", "create_form"]) ? "|is_unique[{$this->table}.{$field}]" : "";
- break;
case "model":
case "type":
- case "manufactur_at":
$rule = "required|trim|string";
break;
- case "description":
- $rule = "if_exist|trim|string";
- break;
default:
$rule = parent::getFieldRule($action, $field);
break;
diff --git a/app/Models/Equipment/ServerPartModel.php b/app/Models/Equipment/ServerPartModel.php
new file mode 100644
index 0000000..cd8152f
--- /dev/null
+++ b/app/Models/Equipment/ServerPartModel.php
@@ -0,0 +1,43 @@
+ field가 array 입니다.\n" . var_export($field, true));
+ }
+ switch ($field) {
+ case "serverinfo_uid":
+ case "partinfo_uid":
+ $rule = "required|numeric";
+ break;
+ case "type":
+ $rule = "required|trim|string";
+ break;
+ default:
+ $rule = parent::getFieldRule($action, $field);
+ break;
+ }
+ return $rule;
+ }
+}
diff --git a/app/Models/Equipment/SoftwareModel.php b/app/Models/Equipment/SoftwareModel.php
index 690618c..fbad757 100644
--- a/app/Models/Equipment/SoftwareModel.php
+++ b/app/Models/Equipment/SoftwareModel.php
@@ -31,12 +31,8 @@ class SoftwareModel extends EquipmentModel
switch ($field) {
case "model":
case "type":
- case "status":
$rule = "required|trim|string";
break;
- case "description":
- $rule = "if_exist|trim|string";
- break;
default:
$rule = parent::getFieldRule($action, $field);
break;
diff --git a/app/Services/Customer/ClientService.php b/app/Services/Customer/ClientService.php
index 402e463..18662ee 100644
--- a/app/Services/Customer/ClientService.php
+++ b/app/Services/Customer/ClientService.php
@@ -27,6 +27,34 @@ class ClientService extends CustomerService
{
return new ClientEntity();
}
+ public function getFields(): array
+ {
+ return ['name', 'email', 'phone', 'role'];
+ }
+ public function getFilterFields(): array
+ {
+ return ['role', 'status'];
+ }
+ public function getBatchJobFields(): array
+ {
+ return ['status'];
+ }
+ public function getFormFieldOption(string $field, array $options = []): array
+ {
+ switch ($field) {
+ case 'clientinfo_uid':
+ foreach ($this->getEntities() as $entity) {
+ $options[$entity->getPK()] = $entity->getTitle();
+ }
+ break;
+ default:
+ $options = parent::getFormFieldOption($field, $options);
+ break;
+ }
+ // dd($options);
+ return $options;
+ }
+
public function create(array $formDatas, mixed $entity = new ClientEntity()): ClientEntity
{
$formDatas['role'] = implode(DEFAULTS["DELIMITER_ROLE"], $formDatas['role']);
@@ -42,16 +70,4 @@ class ClientService extends CustomerService
// die(var_export($formDatas, true));
return parent::modify($entity, $formDatas);
}
- public function getFields(): array
- {
- return ['name', 'email', 'phone', 'role'];
- }
- public function getFilterFields(): array
- {
- return ['role', 'status'];
- }
- public function getBatchJobFields(): array
- {
- return ['status'];
- }
}
diff --git a/app/Services/Customer/ServicePartService.php b/app/Services/Customer/ServicePartService.php
new file mode 100644
index 0000000..5f79caf
--- /dev/null
+++ b/app/Services/Customer/ServicePartService.php
@@ -0,0 +1,46 @@
+getEntities() as $entity) {
$options[$entity->getPK()] = $entity->getTitle();
}
diff --git a/app/Views/admin/customer/service/create_form.php b/app/Views/admin/customer/service/create_form.php
deleted file mode 100644
index 2125294..0000000
--- a/app/Views/admin/customer/service/create_form.php
+++ /dev/null
@@ -1,31 +0,0 @@
-= $this->extend(LAYOUTS[$viewDatas['layout']]['path']) ?>
-= $this->section('content') ?>
-
-
-
-
-
-
-
-
-
-
- = form_open(current_url(), $viewDatas['forms']['attributes'], $viewDatas['forms']['hiddens']) ?>
-
- = $viewDatas['helper']->alert($error) ?>
-
-= $this->endSection() ?>
\ No newline at end of file
diff --git a/app/Views/admin/customer/service/index.php b/app/Views/admin/customer/service/index.php
deleted file mode 100644
index bb84911..0000000
--- a/app/Views/admin/customer/service/index.php
+++ /dev/null
@@ -1,63 +0,0 @@
-= $this->extend(LAYOUTS[$viewDatas['layout']]['path']) ?>
-= $this->section('content') ?>
-= $this->include(LAYOUTS[$viewDatas['layout']]['path'] . '/top'); ?>
-
-
-
- |
-
- = $this->include(LAYOUTS[$viewDatas['layout']]['path'] . '/left_menu'); ?>
-
- |
-
-
- = $this->include("templates/{$viewDatas['layout']}/index_header"); ?>
-
-
-
- = $this->include("templates/{$viewDatas['layout']}/index_content_top"); ?>
- = form_open(current_url(), ['id' => 'batchjob_form', 'method' => "post"]) ?>
-
-
-
- | 번호 |
-
- = $viewDatas['helper']->getListLabel($field, $viewDatas) ?> |
-
- 작업 |
-
-
-
-
-
- getListRowColor($entity) ?>>
-
-
- | = $viewDatas['helper']->getListButton('modify', $viewDatas) ?> |
-
- = $viewDatas['helper']->getFieldView($field, $viewDatas) ?> |
-
- = $viewDatas['helper']->getListButton('delete', $viewDatas) ?> |
-
-
-
-
-
- = $this->include("templates/{$viewDatas['layout']}/index_content_batchjob"); ?>
- = form_close() ?>
-
-
- = $this->include("templates/common/" . (isset($viewDatas['modal_type']) ? $viewDatas['modal_type'] : 'modal_fetch')); ?>
-
-
-
-
- |
-
-
-= $viewDatas['helper']->alert($error) ?>
-
-
- = $this->include(LAYOUTS[$viewDatas['layout']]['path'] . '/bottom'); ?>
-
-= $this->endSection() ?>
\ No newline at end of file
diff --git a/app/Views/admin/customer/service/modify_form.php b/app/Views/admin/customer/service/modify_form.php
deleted file mode 100644
index 6cd45be..0000000
--- a/app/Views/admin/customer/service/modify_form.php
+++ /dev/null
@@ -1,31 +0,0 @@
-= $this->extend(LAYOUTS[$viewDatas['layout']]['path']) ?>
-= $this->section('content') ?>
-
-
-
-
-
-
-
-
-
-
- = form_open(current_url(), ['id' => 'action_form', ...$viewDatas['forms']['attributes']], $viewDatas['forms']['hiddens']) ?>
-
- = $viewDatas['helper']->alert($error) ?>
-
-= $this->endSection() ?>
\ No newline at end of file
diff --git a/app/Views/admin/customer/service/view.php b/app/Views/admin/customer/service/view.php
deleted file mode 100644
index f709d5b..0000000
--- a/app/Views/admin/customer/service/view.php
+++ /dev/null
@@ -1,16 +0,0 @@
-= $this->extend(LAYOUTS[$viewDatas['layout']]['path']) ?>
-= $this->section('content') ?>
-
-= $this->endSection() ?>
\ No newline at end of file
diff --git a/app/Views/admin/customer/service/welcome_message.php b/app/Views/admin/customer/service/welcome_message.php
deleted file mode 100644
index 4b6614f..0000000
--- a/app/Views/admin/customer/service/welcome_message.php
+++ /dev/null
@@ -1,103 +0,0 @@
-= $this->extend(LAYOUTS[$viewDatas['layout']]['path']) ?>
-= $this->section('content') ?>
-= $this->include(LAYOUTS[$viewDatas['layout']]['path'] . '/top'); ?>
-
-
-
- |
-
- = $this->include(LAYOUTS[$viewDatas['layout']]['path'] . '/left_menu'); ?>
-
- |
-
-
- = $this->include("templates/{$viewDatas['layout']}/index_header"); ?>
-
-
-
- |
-
-
-
-= $this->include(LAYOUTS[$viewDatas['layout']]['path'] . '/bottom'); ?>
-= $this->endSection() ?>
\ No newline at end of file
diff --git a/app/Views/admin/popup/index.php b/app/Views/admin/popup/index.php
new file mode 100644
index 0000000..796ad53
--- /dev/null
+++ b/app/Views/admin/popup/index.php
@@ -0,0 +1,43 @@
+= $this->extend(LAYOUTS[$viewDatas['layout']]['path']) ?>
+= $this->section('content') ?>
+
+
+
+
+ = $this->include("templates/{$viewDatas['layout']}/index_content_top"); ?>
+ = form_open(current_url(), ['id' => 'batchjob_form', 'method' => "post"]) ?>
+
+
+
+ | 번호 |
+
+ = $viewDatas['helper']->getListLabel($field, $viewDatas) ?> |
+
+ 작업 |
+
+
+
+
+
+ getListRowColor($entity) ?>>
+
+
+ | = $viewDatas['helper']->getListButton('modify', $viewDatas) ?> |
+
+ = $viewDatas['helper']->getFieldView($field, $viewDatas) ?> |
+
+ = $viewDatas['helper']->getListButton('delete', $viewDatas) ?> |
+
+
+
+
+
+ = form_close() ?>
+
+
+
= $this->include("templates/common/" . (isset($viewDatas['modal_type']) ? $viewDatas['modal_type'] : 'modal_fetch')); ?>
+
+
+= $viewDatas['helper']->alert($error) ?>
+
+= $this->endSection() ?>
\ No newline at end of file
diff --git a/app/Views/layouts/admin/left_menu/equipment.php b/app/Views/layouts/admin/left_menu/equipment.php
index 045707e..d824809 100644
--- a/app/Views/layouts/admin/left_menu/equipment.php
+++ b/app/Views/layouts/admin/left_menu/equipment.php
@@ -17,6 +17,9 @@
+
diff --git a/public/js/admin/server_partinfo.js b/public/js/admin/server_partinfo.js
index 16b4068..5e2d8d2 100644
--- a/public/js/admin/server_partinfo.js
+++ b/public/js/admin/server_partinfo.js
@@ -37,3 +37,7 @@ function addComponentFromLabel(field, value, text) {
listDiv.appendChild(wrapper);
}
+
+function openPartPopup(field) {
+ window.open('/admin/equipment/part/popup?type=' + encodeURIComponent(field), 'PartPopup', 'width=800,height=500,scrollbars=yes');
+}
\ No newline at end of file