diff --git a/app/Config/Routes.php b/app/Config/Routes.php
index d17de7f..ba3ce62 100644
--- a/app/Config/Routes.php
+++ b/app/Config/Routes.php
@@ -67,19 +67,6 @@ $routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'au
$routes->post('batchjob_delete', 'ClientController::batchjob_delete');
$routes->get('download/(:alpha)', 'ClientController::download/$1');
});
- $routes->group('clienthistory', ['namespace' => 'App\Controllers\Admin\Customer'], function ($routes) {
- $routes->get('/', 'ClientHistoryController::index');
- $routes->get('create', 'ClientHistoryController::create_form');
- $routes->post('create', 'ClientHistoryController::create');
- $routes->get('modify/(:num)', 'ClientHistoryController::modify_form/$1');
- $routes->post('modify/(:num)', 'ClientHistoryController::modify/$1');
- $routes->get('view/(:num)', 'ClientHistoryController::view/$1');
- $routes->get('delete/(:num)', 'ClientHistoryController::delete/$1');
- $routes->get('toggle/(:num)/(:any)', 'ClientHistoryController::toggle/$1/$2');
- $routes->post('batchjob', 'ClientHistoryController::batchjob');
- $routes->post('batchjob_delete', 'ClientHistoryController::batchjob_delete');
- $routes->get('download/(:alpha)', 'ClientHistoryController::download/$1');
- });
$routes->group('account', ['namespace' => 'App\Controllers\Admin\Customer'], function ($routes) {
$routes->get('/', 'AccountController::index');
$routes->get('create', 'AccountController::create_form');
@@ -145,19 +132,6 @@ $routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'au
$routes->post('batchjob_delete', 'ServiceItemController::batchjob_delete');
$routes->get('download/(:alpha)', 'ServiceItemController::download/$1');
});
- $routes->group('servicehistory', ['namespace' => 'App\Controllers\Admin\Customer'], function ($routes) {
- $routes->get('/', 'ServiceHistoryController::index');
- $routes->get('create', 'ServiceHistoryController::create_form');
- $routes->post('create', 'ServiceHistoryController::create');
- $routes->get('modify/(:num)', 'ServiceHistoryController::modify_form/$1');
- $routes->post('modify/(:num)', 'ServiceHistoryController::modify/$1');
- $routes->get('view/(:num)', 'ServiceHistoryController::view/$1');
- $routes->get('delete/(:num)', 'ServiceHistoryController::delete/$1');
- $routes->get('toggle/(:num)/(:any)', 'ServiceHistoryController::toggle/$1/$2');
- $routes->post('batchjob', 'ServiceHistoryController::batchjob');
- $routes->post('batchjob_delete', 'ServiceHistoryController::batchjob_delete');
- $routes->get('download/(:alpha)', 'ServiceHistoryController::download/$1');
- });
$routes->group('payment', ['namespace' => 'App\Controllers\Admin\Customer'], function ($routes) {
$routes->get('/', 'ServicePaymentController::index');
$routes->get('create', 'ServicePaymentController::create_form');
@@ -187,19 +161,6 @@ $routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'au
$routes->post('batchjob_delete', 'SwitchController::batchjob_delete');
$routes->get('download/(:alpha)', 'SwitchController::download/$1');
});
- $routes->group('code', ['namespace' => 'App\Controllers\Admin\Equipment'], function ($routes) {
- $routes->get('/', 'CodeController::index');
- $routes->get('create', 'CodeController::create_form');
- $routes->post('create', 'CodeController::create');
- $routes->get('modify/(:alphanum)', 'CodeController::modify_form/$1');
- $routes->post('modify/(:alphanum)', 'CodeController::modify/$1');
- $routes->get('view/(:alphanum)', 'CodeController::view/$1');
- $routes->get('delete/(:alphanum)', 'CodeController::delete/$1');
- $routes->get('toggle/(:alphanum)/(:any)', 'CodeController::toggle/$1/$2');
- $routes->post('batchjob', 'CodeController::batchjob');
- $routes->post('batchjob_delete', 'CodeController::batchjob_delete');
- $routes->get('download/(:alpha)', 'CodeController::download/$1');
- });
$routes->group('server', ['namespace' => 'App\Controllers\Admin\Equipment'], function ($routes) {
$routes->get('/', 'ServerController::index');
$routes->get('create', 'ServerController::create_form');
diff --git a/app/Config/Services.php b/app/Config/Services.php
index df7c8ad..0f26514 100644
--- a/app/Config/Services.php
+++ b/app/Config/Services.php
@@ -2,6 +2,8 @@
namespace Config;
+use App\Models\UserModel;
+use App\Services\Auth\LocalService;
use CodeIgniter\Config\BaseService;
/**
@@ -29,4 +31,13 @@ class Services extends BaseService
* return new \CodeIgniter\Example();
* }
*/
+
+ public static function myauth($getShared = true): LocalService
+ {
+ if ($getShared) {
+ return static::getSharedInstance('myauth');
+ } else {
+ return new LocalService(new UserModel());
+ }
+ }
}
diff --git a/app/Controllers/Admin/Customer/ClientHistoryController.php b/app/Controllers/Admin/Customer/ClientHistoryController.php
deleted file mode 100644
index 0c9c9a7..0000000
--- a/app/Controllers/Admin/Customer/ClientHistoryController.php
+++ /dev/null
@@ -1,53 +0,0 @@
-content_title = lang("{$this->getService()->getClassName()}.title");
- $this->class_path .= $this->getService()->getClassName();
- $this->uri_path .= strtolower($this->getService()->getClassName('/')) . '/';
- // $this->view_path .= strtolower($this->getService()->getClassName()) . DIRECTORY_SEPARATOR;
-
- }
-
- public function getService(): ClientHistoryService
- {
- if (!$this->_service) {
- $this->_service = new ClientHistoryService();
- }
- return $this->_service;
- }
- public function getHelper(): ClientHistoryHelper
- {
- if (!$this->_helper) {
- $this->_helper = new ClientHistoryHelper();
- }
- return $this->_helper;
- }
-
- protected function getResultSuccess(string $message = MESSAGES["SUCCESS"], ?string $actionTemplate = null): RedirectResponse|string
- {
- switch ($this->getAction()) {
- case 'index':
- $result = parent::getResultSuccess($message, $this->request->getVar('ActionTemplate') ?? $actionTemplate ?? 'popup');
- break;
- default:
- $result = parent::getResultSuccess($message, $actionTemplate);
- break;
- }
- return $result;
- }
- //Index,FieldForm관련
-}
diff --git a/app/Controllers/Admin/Customer/ServiceHistoryController.php b/app/Controllers/Admin/Customer/ServiceHistoryController.php
deleted file mode 100644
index e4f68aa..0000000
--- a/app/Controllers/Admin/Customer/ServiceHistoryController.php
+++ /dev/null
@@ -1,53 +0,0 @@
-content_title = lang("{$this->getService()->getClassName()}.title");
- $this->class_path .= $this->getService()->getClassName();
- $this->uri_path .= strtolower($this->getService()->getClassName('/')) . '/';
- // $this->view_path .= strtolower($this->getService()->getClassName()) . DIRECTORY_SEPARATOR;
-
- }
-
- public function getService(): ServiceHistoryService
- {
- if (!$this->_service) {
- $this->_service = new ServiceHistoryService();
- }
- return $this->_service;
- }
- public function getHelper(): ServiceHistoryHelper
- {
- if (!$this->_helper) {
- $this->_helper = new ServiceHistoryHelper();
- }
- return $this->_helper;
- }
-
- protected function getResultSuccess(string $message = MESSAGES["SUCCESS"], ?string $actionTemplate = null): RedirectResponse|string
- {
- switch ($this->getAction()) {
- case 'index':
- $result = parent::getResultSuccess($message, $this->request->getVar('ActionTemplate') ?? $actionTemplate ?? 'popup');
- break;
- default:
- $result = parent::getResultSuccess($message, $actionTemplate);
- break;
- }
- return $result;
- }
- //Index,FieldForm관련
-}
diff --git a/app/Controllers/Admin/Equipment/CodeController.php b/app/Controllers/Admin/Equipment/CodeController.php
deleted file mode 100644
index e01df73..0000000
--- a/app/Controllers/Admin/Equipment/CodeController.php
+++ /dev/null
@@ -1,38 +0,0 @@
-content_title = lang("{$this->getService()->getClassName()}.title");
- $this->class_path .= $this->getService()->getClassName();
- $this->uri_path .= strtolower($this->getService()->getClassName('/')) . '/';
- // $this->view_path .= strtolower($this->getService()->getClassName()) . DIRECTORY_SEPARATOR;
-
- }
- public function getService(): CodeService
- {
- if (!$this->_service) {
- $this->_service = new CodeService();
- }
- return $this->_service;
- }
- public function getHelper(): CodeHelper
- {
- if (!$this->_helper) {
- $this->_helper = new CodeHelper();
- }
- return $this->_helper;
- }
- //Index,FieldForm관련
-}
diff --git a/app/Controllers/Admin/Customer/ServicePaymentController.php b/app/Controllers/Admin/Payment/MonthController.php
similarity index 100%
rename from app/Controllers/Admin/Customer/ServicePaymentController.php
rename to app/Controllers/Admin/Payment/MonthController.php
diff --git a/app/Controllers/Admin/Payment/OnetimeController.php b/app/Controllers/Admin/Payment/OnetimeController.php
new file mode 100644
index 0000000..b85fbb5
--- /dev/null
+++ b/app/Controllers/Admin/Payment/OnetimeController.php
@@ -0,0 +1,190 @@
+content_title = lang("{$this->getService()->getClassName()}.title");
+ $this->class_path .= $this->getService()->getClassName();
+ $this->uri_path .= strtolower($this->getService()->getClassName('/')) . '/';
+ // $this->view_path .= strtolower($this->getService()->getClassName()) . DIRECTORY_SEPARATOR;
+ }
+ public function getService(): ServicePaymentService
+ {
+ if (!$this->_service) {
+ $this->_service = new ServicePaymentService();
+ }
+ return $this->_service;
+ }
+ public function getHelper(): ServicePaymentHelper
+ {
+ if (!$this->_helper) {
+ $this->_helper = new ServicePaymentHelper();
+ }
+ return $this->_helper;
+ }
+ public function getClientService(): ClientService
+ {
+ if (!$this->_clientService) {
+ $this->_clientService = new ClientService();
+ }
+ return $this->_clientService;
+ }
+ protected function getResultSuccess(string $message = MESSAGES["SUCCESS"], ?string $actionTemplate = null): RedirectResponse|string
+ {
+ switch ($this->getAction()) {
+ case 'invoice':
+ $this->control = $this->getControlDatas();
+ $this->getHelper()->setViewDatas($this->getViewDatas());
+ $actionTemplate = $this->request->getVar('ActionTemplate') ?? $actionTemplate ?? 'payment';
+ if ($actionTemplate) {
+ $view_file = $this->view_path . $actionTemplate . DIRECTORY_SEPARATOR . $this->getAction();
+ } else {
+ $view_file = $this->view_path . $this->getAction();
+ }
+ $result = view($view_file, ['viewDatas' => $this->getViewDatas()]);
+ break;
+ default:
+ $result = parent::getResultSuccess($message, $actionTemplate);
+ break;
+ }
+ return $result;
+ }
+ //Index,FieldForm관련
+ //생성관련
+ protected function create_process(array $formDatas): void
+ {
+ // 관리자 UID는 현재 인증된 사용자로 설정
+ $formDatas['user_uid'] = $this->getMyAuth()->getUIDByAuthInfo();
+ parent::create_process($formDatas);
+ }
+ //수정관련
+ protected function modify_process(mixed $entity, array $formDatas): void
+ {
+ // 관리자 UID는 현재 인증된 사용자로 설정
+ $formDatas['user_uid'] = $this->getMyAuth()->getUIDByAuthInfo();
+ parent::modify_process($entity, $formDatas);
+ }
+ //View 관련
+ protected function view_process(mixed $entity): void
+ {
+ //LINE,IP,SERVER등 추가 FilterOption 셋팅용
+ $this->setFilterOptionsByItemType();
+ //부모처리
+ parent::view_process($entity);
+ }
+ //List 관련
+ protected function index_process(): void
+ {
+ //LINE,IP,SERVER등 추가 FilterOption 셋팅용
+ $this->setFilterOptionsByItemType();
+ //부모처리
+ parent::index_process();
+ }
+ //Invoice 관련
+ private function getOwnersForInvoice(ClientEntity $ownerEntity): array
+ {
+ $temps = [
+ 'name' => $ownerEntity->getName(),
+ 'total_amount' => 0,
+ 'services' => []
+ ];
+ return $temps;
+ }
+ private function getServicesForInvoice(ServiceEntity $serviceEntity): array
+ {
+ $temps = [
+ 'code' => $serviceEntity->getTitle(),
+ 'billing_at' => $serviceEntity->getBillingAt(),
+ 'items' => []
+ ];
+ return $temps;
+ }
+ private function getItemsForInvoice(ServicePaymentEntity $entity): array
+ {
+ $partEntites = $this->getFilterFieldOption($entity->getItemType());
+ // dd($partEntites);
+ $temps = [
+ 'item_type' => SERVICE_ITEM_TYPES[$entity->getItemType()],
+ 'item_uid' => $partEntites[$entity->getItemUid()]->getTitle(),
+ 'amount' => $entity->getAmount()
+ ];
+ return $temps;
+ }
+ private function invoice_process(): void
+ {
+ //변경할 UIDS
+ $uids = $this->request->getPost('batchjob_uids[]');
+ if (!is_array($uids) || !count($uids)) {
+ throw new \Exception("청구서에 적용될 리스트를 선택하셔야합니다.");
+ }
+ $owner_pk = false;
+ $entities = [];
+ foreach ($uids as $uid) {
+ //기존 Entity 가져오기
+ $entity = $this->getService()->getEntity($uid);
+ if (!$entity) {
+ LogCollector::debug(__METHOD__ . "에서 {$uid}에 대한 결제정보를 찾을수 없습니다.");
+ }
+ //entities에 관리자 설정
+ $ownerEntity = $this->getClientService()->getEntity($entity->getOwnerUID());
+ if (!$ownerEntity) {
+ LogCollector::debug(__METHOD__ . "에서 {$entity->getOwnerUID()}에 대한 관라자정보를 찾을수 없습니다.");
+ }
+ if ($ownerEntity->getPK() !== $owner_pk) {
+ if (!array_key_exists($ownerEntity->getPK(), $entities)) {
+ $entities[$ownerEntity->getPK()] = $this->getOwnersForInvoice($ownerEntity);
+ }
+ $owner_pk = $ownerEntity->getPK();
+ }
+ //entities에 서비스 설정
+ $serviceEntity = $this->getServiceService()->getEntity($entity->getServiceUid());
+ if (!$serviceEntity) {
+ LogCollector::debug(__METHOD__ . "에서 {$entity->getServiceUid()}에 대한 서비스정보를 찾을수 없습니다.");
+ }
+ if (!array_key_exists($serviceEntity->getPK(), $entities[$owner_pk]['services'])) {
+ $entities[$owner_pk]['services'][$serviceEntity->getPK()] = $this->getServicesForInvoice($serviceEntity);
+ }
+ //entities에 서비스 Item Type,Item 설정
+ if (!array_key_exists($entity->getPK(), $entities[$owner_pk]['services'][$serviceEntity->getPK()])) {
+ $entities[$owner_pk]['services'][$serviceEntity->getPK()]['items'][] = $this->getItemsForInvoice($entity);
+ }
+ //entities에 총 결제금액 설정
+ $entities[$ownerEntity->getPK()]['total_amount'] += $entity->getAmount();
+ }
+ // dd($entities);
+ $this->entities = $entities;
+ }
+ public function invoice(): RedirectResponse|string
+ {
+ try {
+ $this->initAction(__FUNCTION__);
+ //LINE,IP,SERVER등 추가 FilterOption 셋팅용
+ foreach (SERVICE_ITEM_TYPES as $item_type => $label) {
+ $this->setFilterFieldOption($item_type, $this->getServiceService()->getFilterOptionsByItemType($item_type));
+ }
+ $this->invoice_process();
+ return $this->getResultSuccess();
+ } catch (\Exception $e) {
+ return $this->getResultFail($e->getMessage());
+ }
+ }
+}
diff --git a/app/Database/dbmsv2.vuerd.json b/app/Database/dbmsv2.vuerd.json
index a7c68f7..0548982 100644
--- a/app/Database/dbmsv2.vuerd.json
+++ b/app/Database/dbmsv2.vuerd.json
@@ -4,13 +4,13 @@
"settings": {
"width": 3000,
"height": 3000,
- "scrollTop": -1300.3994,
- "scrollLeft": -768.1905,
- "zoomLevel": 0.91,
+ "scrollTop": -417.4401,
+ "scrollLeft": -1101,
+ "zoomLevel": 0.73,
"show": 511,
"database": 4,
"databaseName": "",
- "canvasType": "@dineug/erd-editor/builtin-schema-sql",
+ "canvasType": "ERD",
"language": 1,
"tableNameCase": 4,
"columnNameCase": 2,
@@ -40,40 +40,38 @@
"ZLEpY5EjuZV21718zf-Y1",
"jO40Ej5EXImXnadoJo9bn",
"gsa0XtQZQgrJ8ZXy8VQVg",
- "RTq5rHQupiXXJPXqpN8K5",
"QCNA57Pi6A9dJDgybxS5v",
"B8haiEbPc1lRBWTv1g25G",
"IsMoJXzvtuoOFFt93qS0w",
- "1IgC97w7iAToPDVjmA6cP",
- "MgyqOOvja_MGR3f4xNT8T"
+ "MgyqOOvja_MGR3f4xNT8T",
+ "SEgsi7mbM-56Rsx5-qj8K",
+ "8GYAVBvZGaMFeq3QuXk_B",
+ "PdXX5ghGi8ZK89G9OjtnQ"
],
"relationshipIds": [
- "gAVYXWnBSnCw-0ieO4Mil",
- "4BDt10BeeryoN0ZdEHIui",
"AH1dyESfueUlhcoiU6KsQ",
- "anhMCXytE7rcE_drKBPWz",
- "Hj5AZkoYGvM_syvnqMeOi",
"cRqZmxohkCGd_FTkg1rhI",
"e74Cc4zZztxyoazM_ssbu",
- "R1Q9ObPbavZ376JxKDHml",
"6eVY12bW8ePKGX43ni21y",
- "y5sp_z99F97sAiCCdnTTW",
- "nmEnsmK_piSwiEtnCHtt0",
- "5r-OCo3EmmyaYBSoa3krf",
- "rx_sTCXajEGKsrvHFkCOd",
"wmEgQA24OTZKcWDKf8tSK",
"Pq5Jn2IXFEMjYVBvdAwWg",
"fp3dQLQSGF28FCgdXZVk1",
- "T0xgwi6PW29Li2aIEF6Sz",
- "6gutySOOqGWkINveSAXkF",
- "a7L1HKwTJKRJDSfPZsgUw",
- "NLUQsRNE-NSQqHbMHXhPR",
- "aVVc2BUhfFz1n8P4q9Ddy",
- "jJ3o4rL5L7hoxF1an89Rv",
- "YG90_d6_uD4ie3S1Lct0e",
"k2INu4Ko-5SzpTwqOAnY7",
- "R9Ge21GXokM9ZgvAyGJ4W",
- "Gn7pH20-lzXXtz5jMqRib"
+ "igy5Ns2bjd79UocDnODgu",
+ "-6P0QeZZJQRJ5_ZQjzb1M",
+ "5p6IeLChVoXSw9jrqw-QW",
+ "e57qOlaGNqgfNVFBAoaDa",
+ "yNXavIEUyRz9ijpnoapzg",
+ "-innuV4-s0XLM5nzcY6qH",
+ "29R_28dluuNshr0cYiWmK",
+ "NMZvzyFkfEHAC1ky3ra_L",
+ "K6ujfXDMBCmHruD8sWvXo",
+ "VroEhP44BVBCHx9WyFjhm",
+ "2UJ97eZArC3FeTkEjPTUl",
+ "uTwhO_6djzNzMFo8rwOSQ",
+ "FjAORncWifI_a1aI6e0LJ",
+ "qVSQf-uiaof7exFrBC68_",
+ "TkraffhuWi06www9bNecX"
],
"indexIds": [],
"memoIds": []
@@ -110,15 +108,15 @@
"w_EuwbTwtLEPAgYjS1aYq"
],
"ui": {
- "x": 1221.6512,
- "y": 447.2874,
+ "x": 1128.6512,
+ "y": 85.2874,
"zIndex": 2,
"widthName": 60,
"widthComment": 62,
"color": ""
},
"meta": {
- "updateAt": 1755217978373,
+ "updateAt": 1755480211458,
"createAt": 1745819764136
}
},
@@ -127,9 +125,8 @@
"name": "clientinfo",
"comment": "고객정보",
"columnIds": [
- "_AcWUYKzNJd-V0fRHq8Cx",
- "hrPg0uHAdEjamOj--BVzO",
"n7IyDCZLDqfEo49XRYtYR",
+ "hrPg0uHAdEjamOj--BVzO",
"z-q_Ah0sghd0nR7VcCTLX",
"n61V7aSxLmcIeQqsYgAEE",
"5hP5ZiQGWDGf4HJrOiFb6",
@@ -144,9 +141,9 @@
"JEk5AASiK6MpT9QBRWjMX"
],
"seqColumnIds": [
+ "n7IyDCZLDqfEo49XRYtYR",
"_AcWUYKzNJd-V0fRHq8Cx",
"hrPg0uHAdEjamOj--BVzO",
- "n7IyDCZLDqfEo49XRYtYR",
"z-q_Ah0sghd0nR7VcCTLX",
"FFviMCKUUVRlcZdx-Uqiq",
"n61V7aSxLmcIeQqsYgAEE",
@@ -168,15 +165,15 @@
"JEk5AASiK6MpT9QBRWjMX"
],
"ui": {
- "x": 885.6138,
- "y": 1017.1133,
+ "x": 1285.73,
+ "y": 468.8448,
"zIndex": 2,
"widthName": 60,
"widthComment": 60,
"color": ""
},
"meta": {
- "updateAt": 1755231517018,
+ "updateAt": 1755483290342,
"createAt": 1745819764137
}
},
@@ -186,8 +183,8 @@
"comment": "예치금계좌",
"columnIds": [
"ia3c6jjHvbTOX0cX4gbJl",
- "nPYun5WHoy8uroXUBiqh8",
"10Ii30CtjhJA-dPVnX2Z-",
+ "7e7kPIVKM4VrUWTZADe-5",
"jOM-6WvS4B5lGVJuNRQ9L",
"tmkHXMc6fdNicHeig7nss",
"foBGnViYEjNlWIAhXeuLw",
@@ -202,6 +199,7 @@
"ia3c6jjHvbTOX0cX4gbJl",
"nPYun5WHoy8uroXUBiqh8",
"10Ii30CtjhJA-dPVnX2Z-",
+ "7e7kPIVKM4VrUWTZADe-5",
"jOM-6WvS4B5lGVJuNRQ9L",
"tmkHXMc6fdNicHeig7nss",
"foBGnViYEjNlWIAhXeuLw",
@@ -217,15 +215,15 @@
"_nE1H-douje4Wo8mZ4XUG"
],
"ui": {
- "x": 138.2029,
- "y": 489.901,
+ "x": 75.5444,
+ "y": 462.2669,
"zIndex": 2,
"widthName": 64,
"widthComment": 62,
"color": ""
},
"meta": {
- "updateAt": 1755220454437,
+ "updateAt": 1755483450469,
"createAt": 1745819764137
}
},
@@ -234,16 +232,11 @@
"name": "serverinfo",
"comment": "서버정보",
"columnIds": [
- "F9EPb6nsDx6Tf3GG8rvP1",
- "imjqFzOrKxNF9-aH171pe",
- "EKrwHre6e66jqAMnAW_KR",
"34psXzS7RLX0sWXZyDGGf",
- "-AKzQ_bVWf3IcwlXB5pxu",
- "RHpWknapRWyOzjFyHP8dB",
+ "3fZMQ9qB1DO8y44eJRKdt",
"9F6QpQqxeEggZ0FHM81O1",
- "54iuIW4knok06vP4JH-oN",
"tsDqk1dzwzUtvBzpjmarJ",
- "5LbBaqufhFMN2X15ksCbZ",
+ "gf3QFUo-9exbygXX3-0H0",
"bh-W1plz0vCW2rURDnfDR",
"hmZlcR-Pw2C_ife1zzo5o",
"tNaVOzr3vywCXiQdfUJWq",
@@ -263,12 +256,16 @@
"qqj-irJP2zNacGj8PMN6E",
"BAzGsBrmLOwZGYLchLmyP",
"imjqFzOrKxNF9-aH171pe",
+ "PPYMa0hTpupMnPEWZEVp6",
+ "SlbGqJXf-rNePjMEvRIsr",
+ "34psXzS7RLX0sWXZyDGGf",
+ "1R3FQnBR2tpSdfkj3jipU",
+ "3fZMQ9qB1DO8y44eJRKdt",
+ "9F6QpQqxeEggZ0FHM81O1",
"EKrwHre6e66jqAMnAW_KR",
"Z2CriPHsk4OV0AD1jAhM4",
- "34psXzS7RLX0sWXZyDGGf",
"-AKzQ_bVWf3IcwlXB5pxu",
"RHpWknapRWyOzjFyHP8dB",
- "9F6QpQqxeEggZ0FHM81O1",
"T1h0jM57gCedXd5wWL30b",
"6e3HgOnQwPQRS7r37pAK6",
"Wks-dXdsHSF-EATUWnxzY",
@@ -277,11 +274,14 @@
"tUEipJ29hmJw6PGIvTRe4",
"70VrVnWpv5vcn3MTsTHC4",
"pk0lHPEZYM6rlwgzTailz",
- "54iuIW4knok06vP4JH-oN",
+ "HQ-iU3MdyC2D_YL9zwlge",
+ "_tEXcK3IBB9LKURnEmMsL",
"tsDqk1dzwzUtvBzpjmarJ",
+ "54iuIW4knok06vP4JH-oN",
"o0KMVEBZAnWRSsxx10HmA",
"Djbw3B6xZWKAvwJDto9xl",
"5LbBaqufhFMN2X15ksCbZ",
+ "gf3QFUo-9exbygXX3-0H0",
"bh-W1plz0vCW2rURDnfDR",
"hmZlcR-Pw2C_ife1zzo5o",
"tNaVOzr3vywCXiQdfUJWq",
@@ -289,31 +289,32 @@
"yjaoHnd4nFaa-3REXvRfN",
"AlvBDBVGfLoVcNjd__kFZ",
"X-NZLAAPpv21iBJTwymIG",
+ "DBfXQ1o8_Uwy01-FyjWz0",
"jS1NhvKaeU387UBp3bimh",
"qXFG69sPGJzxsDIvsjbzq",
"2BpJlB3v7ot1sPaYqGJXb",
"aY2pn1J3VHF_qV5XFM_zf"
],
"ui": {
- "x": 1489.4231,
- "y": 1918.0162,
+ "x": 71.5172,
+ "y": 1835.6074,
"zIndex": 2,
"widthName": 60,
"widthComment": 60,
"color": ""
},
"meta": {
- "updateAt": 1755233688801,
+ "updateAt": 1755481695626,
"createAt": 1745819764137
}
},
"ZMGIWLFEswObjH2Sx0NlW": {
"id": "ZMGIWLFEswObjH2Sx0NlW",
"name": "partinfo",
- "comment": "부품 정보",
+ "comment": "PART정보",
"columnIds": [
"2HB01q46-mugMjuOz85YG",
- "vYX0n1Zr9y259z_DMJm7s",
+ "TsfQy78jcI0ref_kE7OV9",
"1q8jG5dQKdD35_XYimkSk",
"HYB03rpc8hol5HFnZGtAi",
"VycsOgeM1SXkcq_5XYUMS",
@@ -326,6 +327,7 @@
"4acJag7ORjUzX7FP-gnhZ",
"vYX0n1Zr9y259z_DMJm7s",
"62_dxuBdQszhGOVZkzL9f",
+ "TsfQy78jcI0ref_kE7OV9",
"1q8jG5dQKdD35_XYimkSk",
"D7Q_X02LvMZbBtg71_hCK",
"lwe5PLEmpyTipKEVSCHRJ",
@@ -340,15 +342,15 @@
"xvHi50lODgZs-Ke-lH95g"
],
"ui": {
- "x": 132.1659,
- "y": 2093.601,
+ "x": 2167.0921,
+ "y": 2186.3344,
"zIndex": 2,
"widthName": 60,
"widthComment": 60,
"color": ""
},
"meta": {
- "updateAt": 1755235169941,
+ "updateAt": 1755488508009,
"createAt": 1745819764138
}
},
@@ -389,15 +391,15 @@
"7fxNxBlgc3vf2pjCjoOHE"
],
"ui": {
- "x": 144.4147,
- "y": 1521.6983,
+ "x": 2163.1753,
+ "y": 1554.2063,
"zIndex": 2,
"widthName": 60,
"widthComment": 60,
"color": ""
},
"meta": {
- "updateAt": 1755219311277,
+ "updateAt": 1755486890683,
"createAt": 1745819764138
}
},
@@ -408,9 +410,7 @@
"columnIds": [
"Id0h8QbOdlhPj9P1zTm5o",
"f7_MGvRjkwL1xkCWrAgDR",
- "nIeV_YUzCUo3ZwJEtefBV",
- "ZPFSJbnNsml6U3UKwtSVX",
- "7j-v8422Rzf3ZoLGCDJGo",
+ "6i-Ag5fvYugIDFg9tH3HA",
"6qd6rcTkraI_AbHcVbp6T",
"dIY_dF7qvUpTGyBwlnHjG",
"no6h0YVHA0VJbeQ_StpfM",
@@ -431,6 +431,10 @@
"SaTapKkBzVUluKTG_fsBy",
"lhQ3PpSdLxVcH5LvI4DNx",
"OGLPunD1CL5Yx1Onabetn",
+ "k89CgIzT1rfGpbRQYrMMV",
+ "RUTBvn2-51hfNG7Adcbh-",
+ "sWwdum3AkxFncLEFPN1CM",
+ "6i-Ag5fvYugIDFg9tH3HA",
"6qd6rcTkraI_AbHcVbp6T",
"0ONL4QLQRyZ32MBJ7TN7u",
"e6eWKMFnpXI-rPJZ_9tBt",
@@ -443,15 +447,15 @@
"CX9ODlVw-gFnxgfMJ1JyV"
],
"ui": {
- "x": 827.863,
- "y": 1768.4333,
+ "x": 1039.1227,
+ "y": 1691.0937,
"zIndex": 2,
"widthName": 60,
"widthComment": 60,
"color": ""
},
"meta": {
- "updateAt": 1755233311438,
+ "updateAt": 1755486895129,
"createAt": 1745819764138
}
},
@@ -461,8 +465,8 @@
"comment": "쿠폰정보",
"columnIds": [
"9gNKhuq9UnDKyb9KuZ7cY",
- "35XbdvgOzpNdasPnMcbkx",
"J1dtvqmAyJxT6QtuZq7IA",
+ "YdLa5geill88c3UM5a_YR",
"ALRvTZjYrv4K1ltFn30Mn",
"TFkQ1ID6ShcMqf9wLGEP1",
"DSAUgD7rG7Lzm2-jVWKA3",
@@ -476,6 +480,7 @@
"G3KLXJzl6S28Y8pN8hfy2",
"35XbdvgOzpNdasPnMcbkx",
"J1dtvqmAyJxT6QtuZq7IA",
+ "YdLa5geill88c3UM5a_YR",
"ALRvTZjYrv4K1ltFn30Mn",
"3EFy0j6PlKaha31ajJSsZ",
"3jtklRjnxzZANo69T6vWW",
@@ -493,15 +498,15 @@
"j6eibwPFvw27a38mAO3K_"
],
"ui": {
- "x": 145.1292,
- "y": 864.2412,
+ "x": 78.7146,
+ "y": 831.2656,
"zIndex": 2,
"widthName": 63,
"widthComment": 60,
"color": ""
},
"meta": {
- "updateAt": 1755231501778,
+ "updateAt": 1755483523017,
"createAt": 1745819764140
}
},
@@ -536,15 +541,15 @@
"p5PD3ipzu_rCvv50t4nub"
],
"ui": {
- "x": 144.3505,
- "y": 219.9762,
+ "x": 82.3749,
+ "y": 189.025,
"zIndex": 2,
"widthName": 65,
"widthComment": 81,
"color": ""
},
"meta": {
- "updateAt": 1755218022661,
+ "updateAt": 1755478242945,
"createAt": 1745819764142
}
},
@@ -647,15 +652,14 @@
},
"RTq5rHQupiXXJPXqpN8K5": {
"id": "RTq5rHQupiXXJPXqpN8K5",
- "name": "csinfo",
- "comment": "CS정보(한서버 여러개 앞단 등록)",
+ "name": "kcsinfo",
+ "comment": "KCS정보(한서버 여러개 앞단 등록가능)",
"columnIds": [
"zBz4vBOZSIA8vKmfqXckO",
- "W0dMiAswDCER2eGLQpP7d",
- "jGUbjneRTg2hPnWwlTUAn",
+ "9CjuC803WcessEwff6HMj",
"YqInlreLnga0pOXtaP8GF",
- "ixoWg1kPLrUYL069d75Kq",
"BvHyGw9Xf_gz7bEkZhLbk",
+ "ixoWg1kPLrUYL069d75Kq",
"0STHSEXiceoCa6a7jGXV5",
"4AO9IuaGsrm-wSePrQAYY",
"zIIJ6e2MIX8C_LSGLb2EH",
@@ -671,12 +675,13 @@
"4SpGL1ZpvgIwey1PY4_3e",
"W0dMiAswDCER2eGLQpP7d",
"jGUbjneRTg2hPnWwlTUAn",
+ "9CjuC803WcessEwff6HMj",
"YqInlreLnga0pOXtaP8GF",
+ "BvHyGw9Xf_gz7bEkZhLbk",
"VYbvSvXIEQPQtx6GL-tdv",
"ixoWg1kPLrUYL069d75Kq",
"3JKv9gwi5ig1yLoBJsLC9",
"tTTzHZFvoMJ0RzAexXY2L",
- "BvHyGw9Xf_gz7bEkZhLbk",
"0STHSEXiceoCa6a7jGXV5",
"4AO9IuaGsrm-wSePrQAYY",
"j2hkudsfMKexNL6P7SM8R",
@@ -688,15 +693,15 @@
"HnuAnnvexWFN1rg6JM5GF"
],
"ui": {
- "x": 2421.5258,
- "y": 1993.372,
+ "x": 91.7905,
+ "y": 2275.8575,
"zIndex": 796,
"widthName": 60,
- "widthComment": 177,
+ "widthComment": 207,
"color": ""
},
"meta": {
- "updateAt": 1755233530351,
+ "updateAt": 1755475299941,
"createAt": 1747374666215
}
},
@@ -832,8 +837,8 @@
"columnIds": [
"GMPyqxaroK2OjQZnoCRwn",
"s1Az-lXWK0NlVQqFEEK8o",
- "ho6JZ9VdUHm5R5xx2hf8Z",
- "ZWV8iXrgQovfYTm32QGbZ",
+ "QwfRq6xU7Vy-QoenynjXR",
+ "LRN5qjIRZ18UOhqFbBLuo",
"FhnUrn_dOrdhaBe_P3ty-",
"T8UART66GUy4LWDk0yUxl",
"HBa89vDezYXUOSEXJ5nl7",
@@ -855,6 +860,8 @@
"4O3Qit9vqva-izvWHJLTD",
"wMsY1BXM9mKftyYax3Psx",
"N-ESuxOk84rEdS2SzpVcx",
+ "QwfRq6xU7Vy-QoenynjXR",
+ "LRN5qjIRZ18UOhqFbBLuo",
"FhnUrn_dOrdhaBe_P3ty-",
"T8UART66GUy4LWDk0yUxl",
"HBa89vDezYXUOSEXJ5nl7",
@@ -865,15 +872,15 @@
"n9ZWAQ9754sZ3MM4IxCAA"
],
"ui": {
- "x": 2259.4614,
- "y": 690.2114,
+ "x": 2122.464,
+ "y": 225.9575,
"zIndex": 2278,
"widthName": 88,
"widthComment": 74,
"color": ""
},
"meta": {
- "updateAt": 1755231681289,
+ "updateAt": 1755483363450,
"createAt": 1748484896313
}
},
@@ -882,14 +889,15 @@
"name": "serviceinfo",
"comment": "서비스정보",
"columnIds": [
- "N_yJVoCN4oUEDhYqdzApb",
- "Vf3bNvvEPfu1zCs4rcHTU",
- "NzxkmndrTbH7xb6fbnGV7",
- "6ffdAfFg_xnuxULuBa6fP",
"1ZM86qoxmCcoKnqOpE2oj",
+ "Vf3bNvvEPfu1zCs4rcHTU",
+ "0LanT5cVJX_uBb0Foh2NM",
+ "50a08OnwVq9SXAXX5pq6s",
+ "ptLUIGfIqm89XGRz_V2ww",
"hQ5EOPiUpDbVpWQwawtw4",
"9o7wfPp7WK2nZoxkDZ9Y1",
"ualEjhI_OuUVdgH7dSzma",
+ "hK2hK1Xs1GrDW5nUTroIR",
"dl-BGTI0AsAceG9ke4f5I",
"zI5HOW0pqDcmw_02bP4xI",
"INFtEt_QkptcKDjuJ3lHd",
@@ -899,6 +907,7 @@
"seqColumnIds": [
"N_yJVoCN4oUEDhYqdzApb",
"gJFdxac0XhNJmCQaua2XT",
+ "1ZM86qoxmCcoKnqOpE2oj",
"Vf3bNvvEPfu1zCs4rcHTU",
"NzxkmndrTbH7xb6fbnGV7",
"x3mRYyi3hsNg-7bPbddVH",
@@ -914,8 +923,19 @@
"O7aGU_LJxCO1NeNVWbB-J",
"PLQrLZGFiiPQDZSYpU-Rc",
"9DIj0WNLrGT8VCHZuRkCz",
+ "tjd351KGFBrDiA6-HqtdD",
+ "SwRy3H1j9iLeKZBaLNyuR",
+ "lN38gtO243yA3RiRYyPh3",
+ "GLfaIN6fDx3gqmEichxBM",
+ "uwo4oDDnBN4kfBPECG8KI",
+ "oUDsRmvN4I4k7BNNJR0y4",
+ "xlQ24QCitYSSl-z8f2vqG",
+ "uTP3S6LnZ80gfxyTqBFS4",
"6ffdAfFg_xnuxULuBa6fP",
- "1ZM86qoxmCcoKnqOpE2oj",
+ "hGJn_WXZRUZizXnV1q1mp",
+ "0LanT5cVJX_uBb0Foh2NM",
+ "50a08OnwVq9SXAXX5pq6s",
+ "ptLUIGfIqm89XGRz_V2ww",
"SGWWOOHjCF81V4O5tUiJu",
"uuDbJDSDQLey7Km1W9hlJ",
"Gb6fmS40Q3wvnvD1HMTqR",
@@ -925,6 +945,7 @@
"hQ5EOPiUpDbVpWQwawtw4",
"9o7wfPp7WK2nZoxkDZ9Y1",
"ualEjhI_OuUVdgH7dSzma",
+ "hK2hK1Xs1GrDW5nUTroIR",
"dl-BGTI0AsAceG9ke4f5I",
"zI5HOW0pqDcmw_02bP4xI",
"INFtEt_QkptcKDjuJ3lHd",
@@ -934,64 +955,18 @@
"2fzVlWt1Skh-391N_z9Ci"
],
"ui": {
- "x": 1560.9612,
- "y": 1419.2679,
+ "x": 883.3029,
+ "y": 1018.5867,
"zIndex": 2395,
"widthName": 60,
"widthComment": 62,
"color": ""
},
"meta": {
- "updateAt": 1755233579060,
+ "updateAt": 1755488809590,
"createAt": 1748485662214
}
},
- "0WXrjcyXXGeoAVM2VB8s2": {
- "id": "0WXrjcyXXGeoAVM2VB8s2",
- "name": "serviceinfo_ipinfo",
- "comment": "서비스-IP정보",
- "columnIds": [
- "goZoW_pUw3n5ZLMQzWgFd",
- "TerqekzImISduE6ewW1b5",
- "5OcpSdnrgDxZ9eZ7_pQr9",
- "lxUgXPeRzv3HQPUFzEcVJ",
- "Ol6qG-agay9yBKxGBtmsr",
- "jBf8G_J3BpioZN7TJnRMa",
- "pxuIGPFD7CNh-bnlYRsy6",
- "s1P-DaXO-MWos67f0R__G",
- "XydKmlBJZHPj4xqkxUH24",
- "ZNqrByaObXV1K12bzagzY"
- ],
- "seqColumnIds": [
- "goZoW_pUw3n5ZLMQzWgFd",
- "TerqekzImISduE6ewW1b5",
- "RdC0qfV8xczStXW9cLOe8",
- "NfZNTuHX_ZzyIuhI7DTJE",
- "Yoi_Exlpp4kDz8xumGHgZ",
- "5OcpSdnrgDxZ9eZ7_pQr9",
- "lxUgXPeRzv3HQPUFzEcVJ",
- "Ol6qG-agay9yBKxGBtmsr",
- "jBf8G_J3BpioZN7TJnRMa",
- "2-eG3lx3U3LRKw_qRA9qI",
- "pxuIGPFD7CNh-bnlYRsy6",
- "s1P-DaXO-MWos67f0R__G",
- "XydKmlBJZHPj4xqkxUH24",
- "mzjynvHZERYSmrLQ3_gX7",
- "ZNqrByaObXV1K12bzagzY"
- ],
- "ui": {
- "x": 672.3957,
- "y": 450.7126,
- "zIndex": 2502,
- "widthName": 94,
- "widthComment": 77,
- "color": ""
- },
- "meta": {
- "updateAt": 1755066031347,
- "createAt": 1748507247933
- }
- },
"eLGlqJ4z_woGP6CLZEuUr": {
"id": "eLGlqJ4z_woGP6CLZEuUr",
"name": "serviceinfo_history",
@@ -1030,49 +1005,13 @@
"createAt": 1749520593335
}
},
- "JoMB-mb6p6NoHpiAvjD2y": {
- "id": "JoMB-mb6p6NoHpiAvjD2y",
- "name": "codeinfo",
- "comment": "코드표",
- "columnIds": [
- "tARrLvK20dCKOxfLKu-T_",
- "FMB1Pw8d7ED0xlrEAdVok",
- "G1UKbUmdA5cmhcVHaqrTj",
- "UIl3k8fn-kPZvaWKIMtKY",
- "4TGBpdAErYnDel4snI9A5",
- "Zdn5DgG2lzu4VQtI-iaxa"
- ],
- "seqColumnIds": [
- "WsOgvUtYTLLdAhcZUJZFQ",
- "tARrLvK20dCKOxfLKu-T_",
- "FMB1Pw8d7ED0xlrEAdVok",
- "G1UKbUmdA5cmhcVHaqrTj",
- "UIl3k8fn-kPZvaWKIMtKY",
- "4TGBpdAErYnDel4snI9A5",
- "Zdn5DgG2lzu4VQtI-iaxa"
- ],
- "ui": {
- "x": 1642.5576,
- "y": 1260.4865,
- "zIndex": 2508,
- "widthName": 60,
- "widthComment": 60,
- "color": ""
- },
- "meta": {
- "updateAt": 1754981779190,
- "createAt": 1749526993705
- }
- },
"IsMoJXzvtuoOFFt93qS0w": {
"id": "IsMoJXzvtuoOFFt93qS0w",
"name": "switchinfo",
- "comment": "스위치코드표",
+ "comment": "스위치정보",
"columnIds": [
- "dsz0no4QmTBs-HMbe_HtT",
- "Tf4tatgNo1vCFMiLXWWzk",
- "UqCsY6KiCJOOFtjCHoMVL",
"sVypeCGZk-JXvsbwc93Rw",
+ "Li6TetD-ZbH9MNKGAK0im",
"QEXGVSZ3sjvmtUCdgXl6_",
"4Koam7FHw2_rCXSUBEQJB",
"d7HNONWncNoqDRCl4-Y0N",
@@ -1085,21 +1024,23 @@
"Tf4tatgNo1vCFMiLXWWzk",
"UqCsY6KiCJOOFtjCHoMVL",
"sVypeCGZk-JXvsbwc93Rw",
+ "Li6TetD-ZbH9MNKGAK0im",
+ "_KISusuMe8-oGta7xOaz0",
"QEXGVSZ3sjvmtUCdgXl6_",
"4Koam7FHw2_rCXSUBEQJB",
"d7HNONWncNoqDRCl4-Y0N",
"qOLH2re1rmaG-63c08R8x"
],
"ui": {
- "x": 2419.0055,
- "y": 1652.9773,
+ "x": 1038.208,
+ "y": 1464.4414,
"zIndex": 2509,
"widthName": 60,
- "widthComment": 74,
+ "widthComment": 62,
"color": ""
},
"meta": {
- "updateAt": 1755233494699,
+ "updateAt": 1755488563416,
"createAt": 1750898626895
}
},
@@ -1259,72 +1200,18 @@
"TWXZSnHkEFHzf2bBfpTBw"
],
"ui": {
- "x": 792.9496,
- "y": 2266.194,
+ "x": 1213.7455,
+ "y": 2134.9039,
"zIndex": 3162,
"widthName": 101,
"widthComment": 103,
"color": ""
},
"meta": {
- "updateAt": 1755235214937,
+ "updateAt": 1755246491241,
"createAt": 1755070422732
}
},
- "ld67cErj1fQafxxvx9u-d": {
- "id": "ld67cErj1fQafxxvx9u-d",
- "name": "serviceinfo_defenceinfo",
- "comment": "서비스정보-방어정보",
- "columnIds": [
- "S7mnF8XOxNseoDOfJPmnV",
- "ZLRkW2IglxHYxi64pzqI6",
- "_1psmOpMPnQkuDErcYGoN"
- ],
- "seqColumnIds": [
- "S7mnF8XOxNseoDOfJPmnV",
- "ZLRkW2IglxHYxi64pzqI6",
- "_1psmOpMPnQkuDErcYGoN"
- ],
- "ui": {
- "x": 673.8107,
- "y": 1853.5262,
- "zIndex": 3211,
- "widthName": 126,
- "widthComment": 115,
- "color": ""
- },
- "meta": {
- "updateAt": 1755072077481,
- "createAt": 1755070669901
- }
- },
- "MKzOIGduxigGV9tdWRJS9": {
- "id": "MKzOIGduxigGV9tdWRJS9",
- "name": "serviceinfo_domaininfo",
- "comment": "서비스정보-도메인정보",
- "columnIds": [
- "Jv7vMU4WjkAYYMUBkLyBy",
- "BZ6k54lNYbwArAe3Lej8Z",
- "YwXJqImj25hxIQbi8-ZPr"
- ],
- "seqColumnIds": [
- "Jv7vMU4WjkAYYMUBkLyBy",
- "BZ6k54lNYbwArAe3Lej8Z",
- "YwXJqImj25hxIQbi8-ZPr"
- ],
- "ui": {
- "x": 678.6888,
- "y": 2167.0469,
- "zIndex": 3233,
- "widthName": 124,
- "widthComment": 127,
- "color": ""
- },
- "meta": {
- "updateAt": 1755072074600,
- "createAt": 1755070787935
- }
- },
"O6cOy4b2iTMwpTjZJ3HXh": {
"id": "O6cOy4b2iTMwpTjZJ3HXh",
"name": "",
@@ -1389,8 +1276,8 @@
"columnIds": [
"parhf1EFFezaBMX1G1byP",
"ShxQXt7QhnuRrZToBBUCA",
- "QLwujC3DidC4GxXjEZ97x",
- "97RhPf67fDR-y6rT7cxfj",
+ "VBy1PXlflYSQGeLRXkD3l",
+ "VUPZdWS7fM1J2QstRq4KR",
"Usl5cwf8eWLZ5xvOPGIYK",
"ztk8SgBeyUa4ePIkwBb0K",
"43NZ-Lcb3JPPlzkptYido",
@@ -1407,6 +1294,8 @@
"ShxQXt7QhnuRrZToBBUCA",
"QLwujC3DidC4GxXjEZ97x",
"97RhPf67fDR-y6rT7cxfj",
+ "VBy1PXlflYSQGeLRXkD3l",
+ "VUPZdWS7fM1J2QstRq4KR",
"Usl5cwf8eWLZ5xvOPGIYK",
"ztk8SgBeyUa4ePIkwBb0K",
"lKkqk05cigho4HNtFoVkA",
@@ -1418,17 +1307,419 @@
"4WVshk8-9asWSnI26Uvp7"
],
"ui": {
- "x": 2268.0278,
- "y": 1169,
+ "x": 2134.0658,
+ "y": 642.3421,
"zIndex": 3908,
"widthName": 97,
"widthComment": 86,
"color": ""
},
"meta": {
- "updateAt": 1755231676891,
+ "updateAt": 1755483389664,
"createAt": 1755230026191
}
+ },
+ "SEgsi7mbM-56Rsx5-qj8K": {
+ "id": "SEgsi7mbM-56Rsx5-qj8K",
+ "name": "csinfo",
+ "comment": "CS정보(한서버 여러개 앞단 등록가능)",
+ "columnIds": [
+ "PuLZie9O9warTXzmBPj3F",
+ "pcpeNmSmqH_DtbRLyaYv9",
+ "JtbW3CtPKBxnw4Fohhpci",
+ "2KpyBHvmw6fmuTZhPAWYf",
+ "qd1nPOkfMmY9uJDQBaaWq",
+ "40EIkWvxwjrABx7ipC0Hp",
+ "j21ZiY0qBmRcuzMA7ZvJ0",
+ "7o3L_-cg6l5TxZjdPwP7j",
+ "yJ7WRUZyPtVG_Sh9ytED6",
+ "J6Q1DK6nYtjbR0gheWzY6",
+ "cvcacwm-6mn2YlVM7rpSx",
+ "bhWMMkiKCtXDKt4cP-_sB"
+ ],
+ "seqColumnIds": [
+ "PuLZie9O9warTXzmBPj3F",
+ "SlovGoAbswPj9pLEDGAO_",
+ "pcpeNmSmqH_DtbRLyaYv9",
+ "JtbW3CtPKBxnw4Fohhpci",
+ "2KpyBHvmw6fmuTZhPAWYf",
+ "qd1nPOkfMmY9uJDQBaaWq",
+ "40EIkWvxwjrABx7ipC0Hp",
+ "j21ZiY0qBmRcuzMA7ZvJ0",
+ "7o3L_-cg6l5TxZjdPwP7j",
+ "yJ7WRUZyPtVG_Sh9ytED6",
+ "J6Q1DK6nYtjbR0gheWzY6",
+ "cvcacwm-6mn2YlVM7rpSx",
+ "bhWMMkiKCtXDKt4cP-_sB",
+ "QntZma68vv35q1xARB2R4"
+ ],
+ "ui": {
+ "x": 1038.6154,
+ "y": 1991.4485,
+ "zIndex": 4045,
+ "widthName": 60,
+ "widthComment": 201,
+ "color": ""
+ },
+ "meta": {
+ "updateAt": 1755488482892,
+ "createAt": 1755244574868
+ }
+ },
+ "vE9CQplxcHu3VwgfvH6Ip": {
+ "id": "vE9CQplxcHu3VwgfvH6Ip",
+ "name": "serviceinfo_ipinfo",
+ "comment": "서비스정보_IP정보",
+ "columnIds": [
+ "99TKDwoGooNPfZP_xPUa3",
+ "ETT9KRDf_r30ZaIHw_W4Z"
+ ],
+ "seqColumnIds": [
+ "WNIyu-KSNDXI_nan8SkVW",
+ "99TKDwoGooNPfZP_xPUa3",
+ "ETT9KRDf_r30ZaIHw_W4Z"
+ ],
+ "ui": {
+ "x": 730.7528,
+ "y": 1622.3665,
+ "zIndex": 4107,
+ "widthName": 94,
+ "widthComment": 101,
+ "color": ""
+ },
+ "meta": {
+ "updateAt": 1755245232308,
+ "createAt": 1755244994254
+ }
+ },
+ "W_lPWGav23vY_3307ANtm": {
+ "id": "W_lPWGav23vY_3307ANtm",
+ "name": "raminfo",
+ "comment": "ram 정보",
+ "columnIds": [
+ "0foA-8vQXe0ELhwLwMbSV",
+ "WZJvwg-pBjAUM8sorIi-Y",
+ "IBqYEEMfK4IbNQxZ4N418",
+ "IJawIZAZmMkSTVuhBrkR3",
+ "WDQfoy2S3X9-xs64-XenV",
+ "vJQz5jv-3kfULzv1HXzOK",
+ "LzAZLQ61z6BJHTRtDgxnI"
+ ],
+ "seqColumnIds": [
+ "0foA-8vQXe0ELhwLwMbSV",
+ "WZJvwg-pBjAUM8sorIi-Y",
+ "IBqYEEMfK4IbNQxZ4N418",
+ "IJawIZAZmMkSTVuhBrkR3",
+ "WDQfoy2S3X9-xs64-XenV",
+ "vJQz5jv-3kfULzv1HXzOK",
+ "LzAZLQ61z6BJHTRtDgxnI"
+ ],
+ "ui": {
+ "x": 2233.0456,
+ "y": 2041.3067,
+ "zIndex": 4286,
+ "widthName": 60,
+ "widthComment": 60,
+ "color": ""
+ },
+ "meta": {
+ "updateAt": 1755486235014,
+ "createAt": 1755246770303
+ }
+ },
+ "Dc6xDx_iwsVF1Z9ks1gPh": {
+ "id": "Dc6xDx_iwsVF1Z9ks1gPh",
+ "name": "diskinfo",
+ "comment": "disk 정보",
+ "columnIds": [
+ "CxChVMNZ0-lR_Qis-x2vD",
+ "GlQZ0wuM69sz8cilRgsuj",
+ "7skl2jaDZAiBe7SGxMUVD",
+ "ikUqvOVsRoMc9udsOgfIN",
+ "x0zlz9RN7BVxFqK3Mlcx_",
+ "Al_CUnB2n6yl_1SHZr2Rs",
+ "huTW9wvZBmVx3fLL-gjIH"
+ ],
+ "seqColumnIds": [
+ "CxChVMNZ0-lR_Qis-x2vD",
+ "WIa81CxRFY76H8y3AD0z-",
+ "GlQZ0wuM69sz8cilRgsuj",
+ "7skl2jaDZAiBe7SGxMUVD",
+ "ikUqvOVsRoMc9udsOgfIN",
+ "x0zlz9RN7BVxFqK3Mlcx_",
+ "Al_CUnB2n6yl_1SHZr2Rs",
+ "huTW9wvZBmVx3fLL-gjIH"
+ ],
+ "ui": {
+ "x": 2195.6054,
+ "y": 2266.7945,
+ "zIndex": 4310,
+ "widthName": 60,
+ "widthComment": 60,
+ "color": ""
+ },
+ "meta": {
+ "updateAt": 1755486232016,
+ "createAt": 1755246899739
+ }
+ },
+ "y6LxJSy1rKRbGC1ANZKOG": {
+ "id": "y6LxJSy1rKRbGC1ANZKOG",
+ "name": "serverinfo_diskinfo",
+ "comment": "서버정보_disk정보(CASECADE)",
+ "columnIds": [
+ "IGt5YZ4mwg87rD0wY0B0d",
+ "YqJDZb-w4dCpGDbMaNC0j",
+ "zd1xXBB6j-idV0F9EHSJ5",
+ "ku0-QG-D0LO42mwHraaN9",
+ "iQmUVpuyYRNdhSNgw_ga7",
+ "1QueOAWrAo33UT1SO9OVX",
+ "D1A4zT-QFQwN2nAJgTQZc",
+ "Zix606z6-IS6vYzB1EMD-"
+ ],
+ "seqColumnIds": [
+ "IGt5YZ4mwg87rD0wY0B0d",
+ "obuByh1ZWHr1IIkvgrbWr",
+ "WfUhhigWFoqSS1vz3dWPx",
+ "YqJDZb-w4dCpGDbMaNC0j",
+ "zd1xXBB6j-idV0F9EHSJ5",
+ "ku0-QG-D0LO42mwHraaN9",
+ "iQmUVpuyYRNdhSNgw_ga7",
+ "1QueOAWrAo33UT1SO9OVX",
+ "D1A4zT-QFQwN2nAJgTQZc",
+ "Zix606z6-IS6vYzB1EMD-"
+ ],
+ "ui": {
+ "x": 1031.8693,
+ "y": 2367.2512,
+ "zIndex": 4339,
+ "widthName": 101,
+ "widthComment": 165,
+ "color": ""
+ },
+ "meta": {
+ "updateAt": 1755486208257,
+ "createAt": 1755247070416
+ }
+ },
+ "oNuTAELQcUrUMGz3PRJIW": {
+ "id": "oNuTAELQcUrUMGz3PRJIW",
+ "name": "softwareinfo",
+ "comment": "소프트웨어정보",
+ "columnIds": [
+ "bBO5EQFcFAnvhtm8mQaiG",
+ "IBdcZq2460JlTXRhiwYGq",
+ "TnZrb5ac1avyD50Sq6aGg",
+ "sDAhB498BjHfUoXGNQ-KR",
+ "suGf8mc6frTSSfc37Qybp",
+ "quTWRq3qTgyrorl8isUZ7",
+ "jR8nyg0gzSoUtAnBzogY2"
+ ],
+ "seqColumnIds": [
+ "bBO5EQFcFAnvhtm8mQaiG",
+ "GyUE9E-9dNJyvlHKOedDq",
+ "IBdcZq2460JlTXRhiwYGq",
+ "TnZrb5ac1avyD50Sq6aGg",
+ "FEUPPJse8IyTjwampIJ1E",
+ "sDAhB498BjHfUoXGNQ-KR",
+ "suGf8mc6frTSSfc37Qybp",
+ "quTWRq3qTgyrorl8isUZ7",
+ "jR8nyg0gzSoUtAnBzogY2"
+ ],
+ "ui": {
+ "x": 2140.1897,
+ "y": 2564.5029,
+ "zIndex": 4403,
+ "widthName": 68,
+ "widthComment": 86,
+ "color": ""
+ },
+ "meta": {
+ "updateAt": 1755486229200,
+ "createAt": 1755249603717
+ }
+ },
+ "8GYAVBvZGaMFeq3QuXk_B": {
+ "id": "8GYAVBvZGaMFeq3QuXk_B",
+ "name": "serverinfo_partinfo",
+ "comment": "서버정보_part정보(CASECADE)",
+ "columnIds": [
+ "XXQzeCrEymboccXMZCzMo",
+ "mOdd3p43Qb4VStgr1nWHB",
+ "l2g7xess8DY86_ZOm7Ca1",
+ "SioEINPlR0iyL87vqa4N-",
+ "fqqyFASOLVXWIKq61Jce7",
+ "NdvFKvSSsZJ3s1sEMgXzt",
+ "JP9PTSr956CAPbXosCtEq",
+ "kDyVwSigBBYnp_F9MyRAw"
+ ],
+ "seqColumnIds": [
+ "XXQzeCrEymboccXMZCzMo",
+ "mOdd3p43Qb4VStgr1nWHB",
+ "CvilrbKyyz1NnLPndNkb8",
+ "x23F_sFvFpqLOXzldHBFn",
+ "HZIdc4faH9k91g-JN-NhW",
+ "l2g7xess8DY86_ZOm7Ca1",
+ "SioEINPlR0iyL87vqa4N-",
+ "fqqyFASOLVXWIKq61Jce7",
+ "NdvFKvSSsZJ3s1sEMgXzt",
+ "e65_vbZsM9k8Cn5lwGjt5",
+ "JP9PTSr956CAPbXosCtEq",
+ "kDyVwSigBBYnp_F9MyRAw"
+ ],
+ "ui": {
+ "x": 1041.4963,
+ "y": 2358.8691,
+ "zIndex": 4514,
+ "widthName": 101,
+ "widthComment": 165,
+ "color": ""
+ },
+ "meta": {
+ "updateAt": 1755488502651,
+ "createAt": 1755476453282
+ }
+ },
+ "XWDManpabF2tsIxhMejP6": {
+ "id": "XWDManpabF2tsIxhMejP6",
+ "name": "serverinfo_raminfo",
+ "comment": "서버정보_ram정보(CASECADE)",
+ "columnIds": [
+ "axr_LZ3QKQBrj03ZO3tiU",
+ "cp6LM5PcjxQXXXksE7tCl",
+ "M4sylK12L-sbwc460lHp7",
+ "FPreHGLwBwewNsjMgrDwX",
+ "qjJVv2K53hwjdd2I4Q_Rn",
+ "4V3D7Dj65Us30_gYyP27z",
+ "YL4Bsc3X1OCr1HESCOy2n"
+ ],
+ "seqColumnIds": [
+ "axr_LZ3QKQBrj03ZO3tiU",
+ "lkmohF33yJzxDKZgvYZi7",
+ "cp6LM5PcjxQXXXksE7tCl",
+ "M4sylK12L-sbwc460lHp7",
+ "FPreHGLwBwewNsjMgrDwX",
+ "qjJVv2K53hwjdd2I4Q_Rn",
+ "4V3D7Dj65Us30_gYyP27z",
+ "YL4Bsc3X1OCr1HESCOy2n"
+ ],
+ "ui": {
+ "x": 1024.2728,
+ "y": 2198.3182,
+ "zIndex": 4557,
+ "widthName": 100,
+ "widthComment": 164,
+ "color": ""
+ },
+ "meta": {
+ "updateAt": 1755486446728,
+ "createAt": 1755476629271
+ }
+ },
+ "N9Zu0JeQXBcwLiuCqLotP": {
+ "id": "N9Zu0JeQXBcwLiuCqLotP",
+ "name": "serverinfo_softwareinfo",
+ "comment": "서버정보_소프트웨어정보(CASECADE)",
+ "columnIds": [
+ "Eo358NWcEUQY3DN9QGnGQ",
+ "qDieUIrgCa3bzZX6OWKcC",
+ "nUQNtDBUrs6SFI5OPk5gp",
+ "9jyfXIZZ25iWYB6VB41F9",
+ "lw5LN_hwXHVgctjrJJC2M",
+ "CquZe6cpOPCDJmQC5vWe9"
+ ],
+ "seqColumnIds": [
+ "Eo358NWcEUQY3DN9QGnGQ",
+ "qDieUIrgCa3bzZX6OWKcC",
+ "nUQNtDBUrs6SFI5OPk5gp",
+ "9jyfXIZZ25iWYB6VB41F9",
+ "lw5LN_hwXHVgctjrJJC2M",
+ "CquZe6cpOPCDJmQC5vWe9"
+ ],
+ "ui": {
+ "x": 1036.2266,
+ "y": 2605.3851,
+ "zIndex": 4953,
+ "widthName": 125,
+ "widthComment": 203,
+ "color": ""
+ },
+ "meta": {
+ "updateAt": 1755486205148,
+ "createAt": 1755481416699
+ }
+ },
+ "Pa1u61sIGvzDtItserV5k": {
+ "id": "Pa1u61sIGvzDtItserV5k",
+ "name": "serverinfo_csinfo",
+ "comment": "서버정보_CS정보(CASECADE)",
+ "columnIds": [
+ "5brFiZlY8m5rOEr0hCYfY",
+ "_bHdGsO8d_89L_gSiQRmG",
+ "wI0MMNv14UOrTsaYp1Iwo",
+ "3Qdm5giGdFOueOxIGpNFl",
+ "WiLPZ9QHd0-j2QxdylQVW",
+ "jkHlXxe8haR1gpCpCUKw8"
+ ],
+ "seqColumnIds": [
+ "5brFiZlY8m5rOEr0hCYfY",
+ "_bHdGsO8d_89L_gSiQRmG",
+ "wI0MMNv14UOrTsaYp1Iwo",
+ "3Qdm5giGdFOueOxIGpNFl",
+ "WiLPZ9QHd0-j2QxdylQVW",
+ "jkHlXxe8haR1gpCpCUKw8"
+ ],
+ "ui": {
+ "x": 1014.3771,
+ "y": 1783.1031,
+ "zIndex": 4984,
+ "widthName": 90,
+ "widthComment": 157,
+ "color": ""
+ },
+ "meta": {
+ "updateAt": 1755486497195,
+ "createAt": 1755481576880
+ }
+ },
+ "PdXX5ghGi8ZK89G9OjtnQ": {
+ "id": "PdXX5ghGi8ZK89G9OjtnQ",
+ "name": "pointinfo",
+ "comment": "포인트정보",
+ "columnIds": [
+ "JnsH90ebD8YNwM8q_Ajat",
+ "z86v6qGtWsrVhzZfUo_7d",
+ "QD0EVLU6BeTsEsNO3MAgd",
+ "gbR9hOeDvjnrJAxI4vLf9",
+ "PV9lD8qRmTrg8bMT4t3WG",
+ "VP7GvkqWejNbQZc-tmlr_",
+ "UzQFCo9RFEeqMUnp4xCp_",
+ "rXvRKMW6wEsJR5E6IwWZI",
+ "dNTE1M813GnbddEqp4esS"
+ ],
+ "seqColumnIds": [
+ "JnsH90ebD8YNwM8q_Ajat",
+ "z86v6qGtWsrVhzZfUo_7d",
+ "QD0EVLU6BeTsEsNO3MAgd",
+ "gbR9hOeDvjnrJAxI4vLf9",
+ "PV9lD8qRmTrg8bMT4t3WG",
+ "VP7GvkqWejNbQZc-tmlr_",
+ "UzQFCo9RFEeqMUnp4xCp_",
+ "rXvRKMW6wEsJR5E6IwWZI",
+ "dNTE1M813GnbddEqp4esS"
+ ],
+ "ui": {
+ "x": 83.4191,
+ "y": 1125.6232,
+ "zIndex": 5357,
+ "widthName": 60,
+ "widthComment": 62,
+ "color": ""
+ },
+ "meta": {
+ "updateAt": 1755488702331,
+ "createAt": 1755488593741
+ }
}
},
"tableColumnEntities": {
@@ -1439,7 +1730,7 @@
"comment": "",
"dataType": "INT",
"default": "",
- "options": 7,
+ "options": 3,
"ui": {
"keys": 1,
"widthName": 60,
@@ -1448,7 +1739,7 @@
"widthDefault": 60
},
"meta": {
- "updateAt": 1755217078286,
+ "updateAt": 1755483197547,
"createAt": 1745819764136
}
},
@@ -1477,7 +1768,7 @@
"tableId": "Jq5Qkun2FzQhCGKANIVOZ",
"name": "passwd",
"comment": "",
- "dataType": "VARCHAR(255)",
+ "dataType": "VARCHAR(100)",
"default": "",
"options": 8,
"ui": {
@@ -1488,7 +1779,7 @@
"widthDefault": 60
},
"meta": {
- "updateAt": 1745819764136,
+ "updateAt": 1755483562099,
"createAt": 1745819764136
}
},
@@ -1519,7 +1810,7 @@
"comment": "",
"dataType": "VARCHAR(50)",
"default": "",
- "options": 12,
+ "options": 8,
"ui": {
"keys": 0,
"widthName": 60,
@@ -1528,7 +1819,7 @@
"widthDefault": 60
},
"meta": {
- "updateAt": 1745819764137,
+ "updateAt": 1755483204227,
"createAt": 1745819764137
}
},
@@ -1668,7 +1959,7 @@
"widthDefault": 60
},
"meta": {
- "updateAt": 1751945770191,
+ "updateAt": 1755483585742,
"createAt": 1745819764137
}
},
@@ -1839,7 +2130,7 @@
"comment": "",
"dataType": "INT",
"default": "",
- "options": 15,
+ "options": 11,
"ui": {
"keys": 1,
"widthName": 60,
@@ -1848,7 +2139,7 @@
"widthDefault": 60
},
"meta": {
- "updateAt": 1755217081679,
+ "updateAt": 1755483216963,
"createAt": 1745819764137
}
},
@@ -1861,7 +2152,7 @@
"default": "",
"options": 8,
"ui": {
- "keys": 2,
+ "keys": 0,
"widthName": 73,
"widthComment": 60,
"widthDataType": 60,
@@ -2219,7 +2510,7 @@
"comment": "",
"dataType": "INT",
"default": "",
- "options": 15,
+ "options": 11,
"ui": {
"keys": 1,
"widthName": 60,
@@ -2228,7 +2519,7 @@
"widthDefault": 60
},
"meta": {
- "updateAt": 1755217099328,
+ "updateAt": 1755483185843,
"createAt": 1745819764138
}
},
@@ -2259,7 +2550,7 @@
"comment": "",
"dataType": "VARCHAR(50)",
"default": "",
- "options": 4,
+ "options": 12,
"ui": {
"keys": 0,
"widthName": 60,
@@ -2268,7 +2559,7 @@
"widthDefault": 60
},
"meta": {
- "updateAt": 1755233017887,
+ "updateAt": 1755488429279,
"createAt": 1745819764138
}
},
@@ -2379,7 +2670,7 @@
"comment": "",
"dataType": "INT",
"default": "",
- "options": 15,
+ "options": 11,
"ui": {
"keys": 1,
"widthName": 60,
@@ -2388,7 +2679,7 @@
"widthDefault": 60
},
"meta": {
- "updateAt": 1755217101552,
+ "updateAt": 1755483187930,
"createAt": 1745819764138
}
},
@@ -2539,7 +2830,7 @@
"comment": "",
"dataType": "INT",
"default": "",
- "options": 15,
+ "options": 11,
"ui": {
"keys": 1,
"widthName": 60,
@@ -2548,7 +2839,7 @@
"widthDefault": 60
},
"meta": {
- "updateAt": 1755217085182,
+ "updateAt": 1755483218203,
"createAt": 1745819764140
}
},
@@ -2597,7 +2888,7 @@
"tableId": "jO40Ej5EXImXnadoJo9bn",
"name": "title",
"comment": "",
- "dataType": "VARCHAR(100)",
+ "dataType": "VARCHAR(255)",
"default": "",
"options": 8,
"ui": {
@@ -2608,7 +2899,7 @@
"widthDefault": 60
},
"meta": {
- "updateAt": 1745819764142,
+ "updateAt": 1755483541914,
"createAt": 1745819764142
}
},
@@ -2719,7 +3010,7 @@
"comment": "",
"dataType": "INT",
"default": "",
- "options": 7,
+ "options": 3,
"ui": {
"keys": 1,
"widthName": 60,
@@ -2728,7 +3019,7 @@
"widthDefault": 60
},
"meta": {
- "updateAt": 1755217075719,
+ "updateAt": 1755483207923,
"createAt": 1745819764142
}
},
@@ -2899,7 +3190,7 @@
"comment": "",
"dataType": "TIMESTAMP",
"default": "CURRENT_TIMESTAMP",
- "options": 13,
+ "options": 8,
"ui": {
"keys": 0,
"widthName": 60,
@@ -2908,7 +3199,7 @@
"widthDefault": 122
},
"meta": {
- "updateAt": 1750828588219,
+ "updateAt": 1755483211315,
"createAt": 1745819764142
}
},
@@ -2939,7 +3230,7 @@
"comment": "",
"dataType": "INT",
"default": "",
- "options": 15,
+ "options": 11,
"ui": {
"keys": 1,
"widthName": 60,
@@ -2948,7 +3239,7 @@
"widthDefault": 60
},
"meta": {
- "updateAt": 1755217094880,
+ "updateAt": 1755483249621,
"createAt": 1745820637059
}
},
@@ -3121,7 +3412,7 @@
"default": "",
"options": 8,
"ui": {
- "keys": 2,
+ "keys": 0,
"widthName": 73,
"widthComment": 60,
"widthDataType": 60,
@@ -4135,7 +4426,7 @@
"TFkQ1ID6ShcMqf9wLGEP1": {
"id": "TFkQ1ID6ShcMqf9wLGEP1",
"tableId": "jO40Ej5EXImXnadoJo9bn",
- "name": "amount",
+ "name": "cnt",
"comment": "갯수",
"dataType": "INT",
"default": "0",
@@ -4148,7 +4439,7 @@
"widthDefault": 60
},
"meta": {
- "updateAt": 1747124875293,
+ "updateAt": 1755488638962,
"createAt": 1747124839902
}
},
@@ -4356,7 +4647,7 @@
"id": "YqInlreLnga0pOXtaP8GF",
"tableId": "RTq5rHQupiXXJPXqpN8K5",
"name": "type",
- "comment": "",
+ "comment": "구분",
"dataType": "VARCHAR(20)",
"default": "",
"options": 8,
@@ -4368,7 +4659,7 @@
"widthDefault": 60
},
"meta": {
- "updateAt": 1748831188337,
+ "updateAt": 1755244220400,
"createAt": 1747374853724
}
},
@@ -4379,7 +4670,7 @@
"comment": "",
"dataType": "VARCHAR(50)",
"default": "",
- "options": 0,
+ "options": 8,
"ui": {
"keys": 0,
"widthName": 60,
@@ -4388,7 +4679,7 @@
"widthDefault": 60
},
"meta": {
- "updateAt": 1747817155134,
+ "updateAt": 1755244564107,
"createAt": 1747374853724
}
},
@@ -4859,7 +5150,7 @@
"comment": "",
"dataType": "VARCHAR(50)",
"default": "",
- "options": 0,
+ "options": 8,
"ui": {
"keys": 0,
"widthName": 60,
@@ -4868,7 +5159,7 @@
"widthDefault": 60
},
"meta": {
- "updateAt": 1747817197659,
+ "updateAt": 1755244560051,
"createAt": 1747817172798
}
},
@@ -5659,7 +5950,7 @@
"comment": "",
"dataType": "INT",
"default": "",
- "options": 15,
+ "options": 11,
"ui": {
"keys": 1,
"widthName": 60,
@@ -5668,7 +5959,7 @@
"widthDefault": 60
},
"meta": {
- "updateAt": 1755217104624,
+ "updateAt": 1755483192322,
"createAt": 1748485346073
}
},
@@ -6141,7 +6432,7 @@
"default": "",
"options": 8,
"ui": {
- "keys": 2,
+ "keys": 0,
"widthName": 73,
"widthComment": 60,
"widthDataType": 60,
@@ -6152,246 +6443,6 @@
"createAt": 1748506571484
}
},
- "goZoW_pUw3n5ZLMQzWgFd": {
- "id": "goZoW_pUw3n5ZLMQzWgFd",
- "tableId": "0WXrjcyXXGeoAVM2VB8s2",
- "name": "uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 11,
- "ui": {
- "keys": 1,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1748507310278,
- "createAt": 1748507306328
- }
- },
- "NfZNTuHX_ZzyIuhI7DTJE": {
- "id": "NfZNTuHX_ZzyIuhI7DTJE",
- "tableId": "0WXrjcyXXGeoAVM2VB8s2",
- "name": "item_type",
- "comment": "",
- "dataType": "VARCHAR(20)",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 75,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1748831170284,
- "createAt": 1748507306328
- }
- },
- "Yoi_Exlpp4kDz8xumGHgZ": {
- "id": "Yoi_Exlpp4kDz8xumGHgZ",
- "tableId": "0WXrjcyXXGeoAVM2VB8s2",
- "name": "item_uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1748507306328,
- "createAt": 1748507306328
- }
- },
- "5OcpSdnrgDxZ9eZ7_pQr9": {
- "id": "5OcpSdnrgDxZ9eZ7_pQr9",
- "tableId": "0WXrjcyXXGeoAVM2VB8s2",
- "name": "billing_cycle",
- "comment": "청구방식",
- "dataType": "VARCHAR(20)",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 66,
- "widthComment": 60,
- "widthDataType": 75,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1749614882559,
- "createAt": 1748507306328
- }
- },
- "Ol6qG-agay9yBKxGBtmsr": {
- "id": "Ol6qG-agay9yBKxGBtmsr",
- "tableId": "0WXrjcyXXGeoAVM2VB8s2",
- "name": "amount",
- "comment": "청구금액",
- "dataType": "INT",
- "default": "0",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1748507306328,
- "createAt": 1748507306328
- }
- },
- "s1P-DaXO-MWos67f0R__G": {
- "id": "s1P-DaXO-MWos67f0R__G",
- "tableId": "0WXrjcyXXGeoAVM2VB8s2",
- "name": "updated_at",
- "comment": "",
- "dataType": "TIMESTAMP",
- "default": "",
- "options": 0,
- "ui": {
- "keys": 0,
- "widthName": 62,
- "widthComment": 60,
- "widthDataType": 65,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1748507306328,
- "createAt": 1748507306328
- }
- },
- "XydKmlBJZHPj4xqkxUH24": {
- "id": "XydKmlBJZHPj4xqkxUH24",
- "tableId": "0WXrjcyXXGeoAVM2VB8s2",
- "name": "created_at",
- "comment": "",
- "dataType": "TIMESTAMP",
- "default": "CURRENT_TIMESTAMP",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 65,
- "widthDefault": 122
- },
- "meta": {
- "updateAt": 1748507306328,
- "createAt": 1748507306328
- }
- },
- "TerqekzImISduE6ewW1b5": {
- "id": "TerqekzImISduE6ewW1b5",
- "tableId": "0WXrjcyXXGeoAVM2VB8s2",
- "name": "serviceinfo_uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 80,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1748507350686,
- "createAt": 1748507336370
- }
- },
- "lxUgXPeRzv3HQPUFzEcVJ": {
- "id": "lxUgXPeRzv3HQPUFzEcVJ",
- "tableId": "0WXrjcyXXGeoAVM2VB8s2",
- "name": "price",
- "comment": "소비자금액",
- "dataType": "INT",
- "default": "0",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 62,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1748507433115,
- "createAt": 1748507433115
- }
- },
- "jBf8G_J3BpioZN7TJnRMa": {
- "id": "jBf8G_J3BpioZN7TJnRMa",
- "tableId": "0WXrjcyXXGeoAVM2VB8s2",
- "name": "start_at",
- "comment": "시작일",
- "dataType": "DATE",
- "default": "",
- "options": 0,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1748825194861,
- "createAt": 1748507444792
- }
- },
- "2-eG3lx3U3LRKw_qRA9qI": {
- "id": "2-eG3lx3U3LRKw_qRA9qI",
- "tableId": "0WXrjcyXXGeoAVM2VB8s2",
- "name": "end_at",
- "comment": "종료일",
- "dataType": "DATE",
- "default": "",
- "options": 0,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1748507444792,
- "createAt": 1748507444792
- }
- },
- "pxuIGPFD7CNh-bnlYRsy6": {
- "id": "pxuIGPFD7CNh-bnlYRsy6",
- "tableId": "0WXrjcyXXGeoAVM2VB8s2",
- "name": "status",
- "comment": "상태",
- "dataType": "VARCHAR(20)",
- "default": "'default'",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 75,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1748507453540,
- "createAt": 1748507453540
- }
- },
"SS4ajcFiKSKICjz18GbiR": {
"id": "SS4ajcFiKSKICjz18GbiR",
"tableId": "RMhrLs7bOaopKmKt9YKHQ",
@@ -6612,46 +6663,6 @@
"createAt": 1749008230147
}
},
- "mzjynvHZERYSmrLQ3_gX7": {
- "id": "mzjynvHZERYSmrLQ3_gX7",
- "tableId": "0WXrjcyXXGeoAVM2VB8s2",
- "name": "",
- "comment": "",
- "dataType": "",
- "default": "",
- "options": 0,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1749083363362,
- "createAt": 1749083357575
- }
- },
- "RdC0qfV8xczStXW9cLOe8": {
- "id": "RdC0qfV8xczStXW9cLOe8",
- "tableId": "0WXrjcyXXGeoAVM2VB8s2",
- "name": "code",
- "comment": "",
- "dataType": "VARCHAR(20)",
- "default": "",
- "options": 0,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 75,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1749083398020,
- "createAt": 1749083385992
- }
- },
"SGWWOOHjCF81V4O5tUiJu": {
"id": "SGWWOOHjCF81V4O5tUiJu",
"tableId": "B8haiEbPc1lRBWTv1g25G",
@@ -6872,106 +6883,6 @@
"createAt": 1749520727362
}
},
- "WsOgvUtYTLLdAhcZUJZFQ": {
- "id": "WsOgvUtYTLLdAhcZUJZFQ",
- "tableId": "JoMB-mb6p6NoHpiAvjD2y",
- "name": "uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 15,
- "ui": {
- "keys": 1,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1749527175180,
- "createAt": 1749527110532
- }
- },
- "G1UKbUmdA5cmhcVHaqrTj": {
- "id": "G1UKbUmdA5cmhcVHaqrTj",
- "tableId": "JoMB-mb6p6NoHpiAvjD2y",
- "name": "status",
- "comment": "",
- "dataType": "VARCHAR(20)",
- "default": "'default'",
- "options": 0,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 75,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1750900710654,
- "createAt": 1749527110533
- }
- },
- "UIl3k8fn-kPZvaWKIMtKY": {
- "id": "UIl3k8fn-kPZvaWKIMtKY",
- "tableId": "JoMB-mb6p6NoHpiAvjD2y",
- "name": "updated_at",
- "comment": "",
- "dataType": "TIMESTAMP",
- "default": "",
- "options": 0,
- "ui": {
- "keys": 0,
- "widthName": 62,
- "widthComment": 60,
- "widthDataType": 65,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1749527110533,
- "createAt": 1749527110533
- }
- },
- "4TGBpdAErYnDel4snI9A5": {
- "id": "4TGBpdAErYnDel4snI9A5",
- "tableId": "JoMB-mb6p6NoHpiAvjD2y",
- "name": "created_at",
- "comment": "",
- "dataType": "TIMESTAMP",
- "default": "CURRENT_TIMESTAMP",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 65,
- "widthDefault": 122
- },
- "meta": {
- "updateAt": 1749527110533,
- "createAt": 1749527110533
- }
- },
- "FMB1Pw8d7ED0xlrEAdVok": {
- "id": "FMB1Pw8d7ED0xlrEAdVok",
- "tableId": "JoMB-mb6p6NoHpiAvjD2y",
- "name": "code",
- "comment": "서버코드",
- "dataType": "VARCHAR(20)",
- "default": "",
- "options": 12,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 75,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1750900705990,
- "createAt": 1749527129380
- }
- },
"O7aGU_LJxCO1NeNVWbB-J": {
"id": "O7aGU_LJxCO1NeNVWbB-J",
"tableId": "B8haiEbPc1lRBWTv1g25G",
@@ -7061,7 +6972,7 @@
"default": "",
"options": 8,
"ui": {
- "keys": 2,
+ "keys": 0,
"widthName": 80,
"widthComment": 62,
"widthDataType": 60,
@@ -7412,26 +7323,6 @@
"createAt": 1750828881336
}
},
- "ZNqrByaObXV1K12bzagzY": {
- "id": "ZNqrByaObXV1K12bzagzY",
- "tableId": "0WXrjcyXXGeoAVM2VB8s2",
- "name": "deleted_at",
- "comment": "",
- "dataType": "TIMESTAMP",
- "default": "",
- "options": 0,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 65,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1750828899771,
- "createAt": 1750828899771
- }
- },
"7fxNxBlgc3vf2pjCjoOHE": {
"id": "7fxNxBlgc3vf2pjCjoOHE",
"tableId": "doERb3lIVeBW_D0NtNYX8",
@@ -7452,26 +7343,6 @@
"createAt": 1750828925977
}
},
- "Zdn5DgG2lzu4VQtI-iaxa": {
- "id": "Zdn5DgG2lzu4VQtI-iaxa",
- "tableId": "JoMB-mb6p6NoHpiAvjD2y",
- "name": "deleted_at",
- "comment": "",
- "dataType": "TIMESTAMP",
- "default": "",
- "options": 0,
- "ui": {
- "keys": 0,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 65,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1750828939206,
- "createAt": 1750828939206
- }
- },
"Z8XCLTbsA5h402twy9vwb": {
"id": "Z8XCLTbsA5h402twy9vwb",
"tableId": "eLGlqJ4z_woGP6CLZEuUr",
@@ -7659,16 +7530,16 @@
"comment": "switch코드",
"dataType": "VARCHAR(20)",
"default": "",
- "options": 12,
+ "options": 10,
"ui": {
- "keys": 0,
+ "keys": 1,
"widthName": 60,
"widthComment": 60,
"widthDataType": 75,
"widthDefault": 60
},
"meta": {
- "updateAt": 1755226241661,
+ "updateAt": 1755483621597,
"createAt": 1750898653166
}
},
@@ -7792,26 +7663,6 @@
"createAt": 1750900670007
}
},
- "tARrLvK20dCKOxfLKu-T_": {
- "id": "tARrLvK20dCKOxfLKu-T_",
- "tableId": "JoMB-mb6p6NoHpiAvjD2y",
- "name": "uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 11,
- "ui": {
- "keys": 1,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1750900703062,
- "createAt": 1750900698112
- }
- },
"PLQrLZGFiiPQDZSYpU-Rc": {
"id": "PLQrLZGFiiPQDZSYpU-Rc",
"tableId": "B8haiEbPc1lRBWTv1g25G",
@@ -8059,16 +7910,16 @@
"comment": "고객코드",
"dataType": "VARCHAR(20)",
"default": "",
- "options": 4,
+ "options": 10,
"ui": {
- "keys": 0,
+ "keys": 1,
"widthName": 60,
"widthComment": 60,
"widthDataType": 75,
"widthDefault": 60
},
"meta": {
- "updateAt": 1755226315443,
+ "updateAt": 1755483666038,
"createAt": 1751880475984
}
},
@@ -8079,16 +7930,16 @@
"comment": "서비스코드",
"dataType": "VARCHAR(20)",
"default": "",
- "options": 12,
+ "options": 10,
"ui": {
- "keys": 0,
+ "keys": 1,
"widthName": 60,
"widthComment": 62,
"widthDataType": 75,
"widthDefault": 60
},
"meta": {
- "updateAt": 1751959588755,
+ "updateAt": 1755483656473,
"createAt": 1751959574914
}
},
@@ -8099,16 +7950,16 @@
"comment": "서버코드",
"dataType": "VARCHAR(20)",
"default": "",
- "options": 12,
+ "options": 10,
"ui": {
- "keys": 0,
+ "keys": 1,
"widthName": 60,
"widthComment": 60,
"widthDataType": 75,
"widthDefault": 60
},
"meta": {
- "updateAt": 1755218581391,
+ "updateAt": 1755486588316,
"createAt": 1755062321357
}
},
@@ -8161,7 +8012,7 @@
"default": "",
"options": 0,
"ui": {
- "keys": 2,
+ "keys": 0,
"widthName": 80,
"widthComment": 62,
"widthDataType": 60,
@@ -8501,7 +8352,7 @@
"default": "",
"options": 8,
"ui": {
- "keys": 2,
+ "keys": 0,
"widthName": 68,
"widthComment": 60,
"widthDataType": 60,
@@ -8532,126 +8383,6 @@
"createAt": 1755070650899
}
},
- "ZLRkW2IglxHYxi64pzqI6": {
- "id": "ZLRkW2IglxHYxi64pzqI6",
- "tableId": "ld67cErj1fQafxxvx9u-d",
- "name": "serviceinfo_uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 12,
- "ui": {
- "keys": 0,
- "widthName": 80,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1755071337829,
- "createAt": 1755070727257
- }
- },
- "_1psmOpMPnQkuDErcYGoN": {
- "id": "_1psmOpMPnQkuDErcYGoN",
- "tableId": "ld67cErj1fQafxxvx9u-d",
- "name": "defenceinfo_uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 86,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1755070760641,
- "createAt": 1755070740084
- }
- },
- "S7mnF8XOxNseoDOfJPmnV": {
- "id": "S7mnF8XOxNseoDOfJPmnV",
- "tableId": "ld67cErj1fQafxxvx9u-d",
- "name": "uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 11,
- "ui": {
- "keys": 1,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1755070782958,
- "createAt": 1755070779054
- }
- },
- "BZ6k54lNYbwArAe3Lej8Z": {
- "id": "BZ6k54lNYbwArAe3Lej8Z",
- "tableId": "MKzOIGduxigGV9tdWRJS9",
- "name": "serviceinfo_uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 80,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1755070891628,
- "createAt": 1755070878615
- }
- },
- "YwXJqImj25hxIQbi8-ZPr": {
- "id": "YwXJqImj25hxIQbi8-ZPr",
- "tableId": "MKzOIGduxigGV9tdWRJS9",
- "name": "domaininfo_uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 8,
- "ui": {
- "keys": 0,
- "widthName": 84,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1755070915147,
- "createAt": 1755070900546
- }
- },
- "Jv7vMU4WjkAYYMUBkLyBy": {
- "id": "Jv7vMU4WjkAYYMUBkLyBy",
- "tableId": "MKzOIGduxigGV9tdWRJS9",
- "name": "uid",
- "comment": "",
- "dataType": "INT",
- "default": "",
- "options": 11,
- "ui": {
- "keys": 1,
- "widthName": 60,
- "widthComment": 60,
- "widthDataType": 60,
- "widthDefault": 60
- },
- "meta": {
- "updateAt": 1755070924595,
- "createAt": 1755070921173
- }
- },
"r-ChBCfMfELfZfwYOmkzx": {
"id": "r-ChBCfMfELfZfwYOmkzx",
"tableId": "GRBrbb1hqwKSRMfod3I7U",
@@ -8721,7 +8452,7 @@
"default": "",
"options": 8,
"ui": {
- "keys": 2,
+ "keys": 0,
"widthName": 76,
"widthComment": 60,
"widthDataType": 60,
@@ -8781,7 +8512,7 @@
"default": "",
"options": 0,
"ui": {
- "keys": 2,
+ "keys": 0,
"widthName": 76,
"widthComment": 60,
"widthDataType": 60,
@@ -8801,7 +8532,7 @@
"default": "",
"options": 0,
"ui": {
- "keys": 2,
+ "keys": 0,
"widthName": 76,
"widthComment": 60,
"widthDataType": 60,
@@ -9028,7 +8759,7 @@
"widthDefault": 60
},
"meta": {
- "updateAt": 1755229775449,
+ "updateAt": 1755242912676,
"createAt": 1755160066647
}
},
@@ -9095,20 +8826,20 @@
"6ffdAfFg_xnuxULuBa6fP": {
"id": "6ffdAfFg_xnuxULuBa6fP",
"tableId": "B8haiEbPc1lRBWTv1g25G",
- "name": "clientinfo_name",
+ "name": "search_client",
"comment": "사용자명(검색용)",
- "dataType": "VARCHAR(255)",
+ "dataType": "VARCHAR(50)",
"default": "",
"options": 8,
"ui": {
"keys": 0,
- "widthName": 85,
+ "widthName": 69,
"widthComment": 93,
- "widthDataType": 81,
+ "widthDataType": 75,
"widthDefault": 60
},
"meta": {
- "updateAt": 1755160645390,
+ "updateAt": 1755478741643,
"createAt": 1755160565969
}
},
@@ -9181,7 +8912,7 @@
"default": "",
"options": 0,
"ui": {
- "keys": 2,
+ "keys": 0,
"widthName": 73,
"widthComment": 60,
"widthDataType": 60,
@@ -9261,7 +8992,7 @@
"default": "",
"options": 0,
"ui": {
- "keys": 2,
+ "keys": 0,
"widthName": 80,
"widthComment": 62,
"widthDataType": 60,
@@ -9281,7 +9012,7 @@
"default": "",
"options": 0,
"ui": {
- "keys": 2,
+ "keys": 0,
"widthName": 73,
"widthComment": 60,
"widthDataType": 60,
@@ -9301,7 +9032,7 @@
"default": "",
"options": 0,
"ui": {
- "keys": 2,
+ "keys": 0,
"widthName": 73,
"widthComment": 60,
"widthDataType": 60,
@@ -9335,20 +9066,20 @@
"jOM-6WvS4B5lGVJuNRQ9L": {
"id": "jOM-6WvS4B5lGVJuNRQ9L",
"tableId": "GDEF0_WuOpaYtsZxjn2zM",
- "name": "bankinfo_uid",
- "comment": "은행정보",
+ "name": "bank",
+ "comment": "은행",
"dataType": "INT",
"default": "",
"options": 8,
"ui": {
"keys": 0,
- "widthName": 70,
+ "widthName": 60,
"widthComment": 60,
"widthDataType": 60,
"widthDefault": 60
},
"meta": {
- "updateAt": 1755220379126,
+ "updateAt": 1755483493484,
"createAt": 1755220311656
}
},
@@ -9361,7 +9092,7 @@
"default": "",
"options": 0,
"ui": {
- "keys": 2,
+ "keys": 0,
"widthName": 76,
"widthComment": 60,
"widthDataType": 60,
@@ -9659,7 +9390,7 @@
"comment": "",
"dataType": "INT",
"default": "",
- "options": 15,
+ "options": 11,
"ui": {
"keys": 1,
"widthName": 60,
@@ -9668,7 +9399,7 @@
"widthDefault": 60
},
"meta": {
- "updateAt": 1755230072824,
+ "updateAt": 1755483189843,
"createAt": 1755230069501
}
},
@@ -9881,7 +9612,7 @@
"default": "",
"options": 8,
"ui": {
- "keys": 2,
+ "keys": 0,
"widthName": 80,
"widthComment": 62,
"widthDataType": 60,
@@ -9901,7 +9632,7 @@
"default": "",
"options": 8,
"ui": {
- "keys": 2,
+ "keys": 0,
"widthName": 73,
"widthComment": 60,
"widthDataType": 60,
@@ -10068,7 +9799,7 @@
"widthDefault": 60
},
"meta": {
- "updateAt": 1755231995045,
+ "updateAt": 1755480936400,
"createAt": 1755231995045
}
},
@@ -10141,7 +9872,7 @@
"default": "",
"options": 0,
"ui": {
- "keys": 2,
+ "keys": 0,
"widthName": 80,
"widthComment": 62,
"widthDataType": 60,
@@ -10161,7 +9892,7 @@
"default": "",
"options": 0,
"ui": {
- "keys": 2,
+ "keys": 0,
"widthName": 80,
"widthComment": 62,
"widthDataType": 60,
@@ -10191,93 +9922,2549 @@
"updateAt": 1755234983842,
"createAt": 1755234944667
}
+ },
+ "ptLUIGfIqm89XGRz_V2ww": {
+ "id": "ptLUIGfIqm89XGRz_V2ww",
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "name": "location",
+ "comment": "지역코드(chiba,tokyo,3center)",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 160,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755478773346,
+ "createAt": 1755237587825
+ }
+ },
+ "50a08OnwVq9SXAXX5pq6s": {
+ "id": "50a08OnwVq9SXAXX5pq6s",
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "name": "type",
+ "comment": "서비스형식((일발, 방어,전용,VPN,대체,,테스트,자사,코로케이션)",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 336,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755240220489,
+ "createAt": 1755240220488
+ }
+ },
+ "SwRy3H1j9iLeKZBaLNyuR": {
+ "id": "SwRy3H1j9iLeKZBaLNyuR",
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "name": "serverinfo_uid",
+ "comment": "서버정보",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 76,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755243399643,
+ "createAt": 1755243363119
+ }
+ },
+ "lN38gtO243yA3RiRYyPh3": {
+ "id": "lN38gtO243yA3RiRYyPh3",
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "name": "ipinfo_uid",
+ "comment": "IP정보",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755244681597,
+ "createAt": 1755243720223
+ }
+ },
+ "tjd351KGFBrDiA6-HqtdD": {
+ "id": "tjd351KGFBrDiA6-HqtdD",
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "name": "switch_uid",
+ "comment": "스위치정보",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 62,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755243895112,
+ "createAt": 1755243872669
+ }
+ },
+ "PuLZie9O9warTXzmBPj3F": {
+ "id": "PuLZie9O9warTXzmBPj3F",
+ "tableId": "SEgsi7mbM-56Rsx5-qj8K",
+ "name": "uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 11,
+ "ui": {
+ "keys": 1,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755483153097,
+ "createAt": 1755244624880
+ }
+ },
+ "JtbW3CtPKBxnw4Fohhpci": {
+ "id": "JtbW3CtPKBxnw4Fohhpci",
+ "tableId": "SEgsi7mbM-56Rsx5-qj8K",
+ "name": "type",
+ "comment": "구분(KCS,VCS)",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 77,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755477070922,
+ "createAt": 1755244624880
+ }
+ },
+ "qd1nPOkfMmY9uJDQBaaWq": {
+ "id": "qd1nPOkfMmY9uJDQBaaWq",
+ "tableId": "SEgsi7mbM-56Rsx5-qj8K",
+ "name": "accountid",
+ "comment": "",
+ "dataType": "VARCHAR(50)",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755477085978,
+ "createAt": 1755244624880
+ }
+ },
+ "2KpyBHvmw6fmuTZhPAWYf": {
+ "id": "2KpyBHvmw6fmuTZhPAWYf",
+ "tableId": "SEgsi7mbM-56Rsx5-qj8K",
+ "name": "ip",
+ "comment": "",
+ "dataType": "VARCHAR(50)",
+ "default": "",
+ "options": 12,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755483160217,
+ "createAt": 1755244624880
+ }
+ },
+ "40EIkWvxwjrABx7ipC0Hp": {
+ "id": "40EIkWvxwjrABx7ipC0Hp",
+ "tableId": "SEgsi7mbM-56Rsx5-qj8K",
+ "name": "domain",
+ "comment": "",
+ "dataType": "VARCHAR(100)",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 81,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755244624880,
+ "createAt": 1755244624880
+ }
+ },
+ "j21ZiY0qBmRcuzMA7ZvJ0": {
+ "id": "j21ZiY0qBmRcuzMA7ZvJ0",
+ "tableId": "SEgsi7mbM-56Rsx5-qj8K",
+ "name": "price",
+ "comment": "기본금액",
+ "dataType": "INT",
+ "default": "0",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755244624880,
+ "createAt": 1755244624880
+ }
+ },
+ "7o3L_-cg6l5TxZjdPwP7j": {
+ "id": "7o3L_-cg6l5TxZjdPwP7j",
+ "tableId": "SEgsi7mbM-56Rsx5-qj8K",
+ "name": "amount",
+ "comment": "서비스금액",
+ "dataType": "INT",
+ "default": "0",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 62,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755244624881,
+ "createAt": 1755244624880
+ }
+ },
+ "yJ7WRUZyPtVG_Sh9ytED6": {
+ "id": "yJ7WRUZyPtVG_Sh9ytED6",
+ "tableId": "SEgsi7mbM-56Rsx5-qj8K",
+ "name": "status",
+ "comment": "",
+ "dataType": "VARCHAR(20)",
+ "default": "'default'",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755244624881,
+ "createAt": 1755244624881
+ }
+ },
+ "J6Q1DK6nYtjbR0gheWzY6": {
+ "id": "J6Q1DK6nYtjbR0gheWzY6",
+ "tableId": "SEgsi7mbM-56Rsx5-qj8K",
+ "name": "updated_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 62,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755244624881,
+ "createAt": 1755244624881
+ }
+ },
+ "cvcacwm-6mn2YlVM7rpSx": {
+ "id": "cvcacwm-6mn2YlVM7rpSx",
+ "tableId": "SEgsi7mbM-56Rsx5-qj8K",
+ "name": "created_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "CURRENT_TIMESTAMP",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 122
+ },
+ "meta": {
+ "updateAt": 1755244624881,
+ "createAt": 1755244624881
+ }
+ },
+ "bhWMMkiKCtXDKt4cP-_sB": {
+ "id": "bhWMMkiKCtXDKt4cP-_sB",
+ "tableId": "SEgsi7mbM-56Rsx5-qj8K",
+ "name": "deleted_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755244624881,
+ "createAt": 1755244624881
+ }
+ },
+ "GLfaIN6fDx3gqmEichxBM": {
+ "id": "GLfaIN6fDx3gqmEichxBM",
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "name": "kcsinfo_uid",
+ "comment": "KCS정보",
+ "dataType": "INT",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 61,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755244675981,
+ "createAt": 1755244650005
+ }
+ },
+ "uwo4oDDnBN4kfBPECG8KI": {
+ "id": "uwo4oDDnBN4kfBPECG8KI",
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "name": "vcssinfo_uid",
+ "comment": "VCS정보",
+ "dataType": "INT",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 66,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755244729479,
+ "createAt": 1755244696995
+ }
+ },
+ "WNIyu-KSNDXI_nan8SkVW": {
+ "id": "WNIyu-KSNDXI_nan8SkVW",
+ "tableId": "vE9CQplxcHu3VwgfvH6Ip",
+ "name": "",
+ "comment": "",
+ "dataType": "",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755245034752,
+ "createAt": 1755245034752
+ }
+ },
+ "99TKDwoGooNPfZP_xPUa3": {
+ "id": "99TKDwoGooNPfZP_xPUa3",
+ "tableId": "vE9CQplxcHu3VwgfvH6Ip",
+ "name": "uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 15,
+ "ui": {
+ "keys": 1,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755245041272,
+ "createAt": 1755245038663
+ }
+ },
+ "ETT9KRDf_r30ZaIHw_W4Z": {
+ "id": "ETT9KRDf_r30ZaIHw_W4Z",
+ "tableId": "vE9CQplxcHu3VwgfvH6Ip",
+ "name": "serviceinfo_uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 80,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755245238779,
+ "createAt": 1755245232308
+ }
+ },
+ "hK2hK1Xs1GrDW5nUTroIR": {
+ "id": "hK2hK1Xs1GrDW5nUTroIR",
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "name": "amount",
+ "comment": "서비스금액(IP+월별ITEM+CS의 서비스금액의 총합금액)",
+ "dataType": "INT",
+ "default": "0",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 298,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755245428350,
+ "createAt": 1755245428349
+ }
+ },
+ "xlQ24QCitYSSl-z8f2vqG": {
+ "id": "xlQ24QCitYSSl-z8f2vqG",
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "name": "switchinfo_uid",
+ "comment": "스위치정보",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 77,
+ "widthComment": 62,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755245621549,
+ "createAt": 1755245596233
+ }
+ },
+ "uTP3S6LnZ80gfxyTqBFS4": {
+ "id": "uTP3S6LnZ80gfxyTqBFS4",
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "name": "serverinfo_uid",
+ "comment": "서버정보",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 76,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755245665137,
+ "createAt": 1755245649050
+ }
+ },
+ "_KISusuMe8-oGta7xOaz0": {
+ "id": "_KISusuMe8-oGta7xOaz0",
+ "tableId": "IsMoJXzvtuoOFFt93qS0w",
+ "name": "price",
+ "comment": "기본금액",
+ "dataType": "INT",
+ "default": "0",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755245710278,
+ "createAt": 1755245710278
+ }
+ },
+ "k89CgIzT1rfGpbRQYrMMV": {
+ "id": "k89CgIzT1rfGpbRQYrMMV",
+ "tableId": "ZLEpY5EjuZV21718zf-Y1",
+ "name": "serviceinfo_uid",
+ "comment": "서비스정보",
+ "dataType": "INT",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 80,
+ "widthComment": 62,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755477019129,
+ "createAt": 1755245813502
+ }
+ },
+ "SlovGoAbswPj9pLEDGAO_": {
+ "id": "SlovGoAbswPj9pLEDGAO_",
+ "tableId": "SEgsi7mbM-56Rsx5-qj8K",
+ "name": "serviceinfo_uid",
+ "comment": "서비스정보",
+ "dataType": "INT",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 80,
+ "widthComment": 62,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755476998401,
+ "createAt": 1755246043287
+ }
+ },
+ "9CjuC803WcessEwff6HMj": {
+ "id": "9CjuC803WcessEwff6HMj",
+ "tableId": "RTq5rHQupiXXJPXqpN8K5",
+ "name": "serviceinfo_uid",
+ "comment": "서비스정보",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 80,
+ "widthComment": 62,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755246103758,
+ "createAt": 1755246082072
+ }
+ },
+ "PPYMa0hTpupMnPEWZEVp6": {
+ "id": "PPYMa0hTpupMnPEWZEVp6",
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "name": "cpuinfo_uid",
+ "comment": "cpu 정보",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 64,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755246672873,
+ "createAt": 1755246555369
+ }
+ },
+ "HQ-iU3MdyC2D_YL9zwlge": {
+ "id": "HQ-iU3MdyC2D_YL9zwlge",
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "name": "cpu_cnt",
+ "comment": "cpu 갯수",
+ "dataType": "TINYINT",
+ "default": "2",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755247032327,
+ "createAt": 1755246712726
+ }
+ },
+ "0foA-8vQXe0ELhwLwMbSV": {
+ "id": "0foA-8vQXe0ELhwLwMbSV",
+ "tableId": "W_lPWGav23vY_3307ANtm",
+ "name": "uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 11,
+ "ui": {
+ "keys": 1,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755483183482,
+ "createAt": 1755246822455
+ }
+ },
+ "WZJvwg-pBjAUM8sorIi-Y": {
+ "id": "WZJvwg-pBjAUM8sorIi-Y",
+ "tableId": "W_lPWGav23vY_3307ANtm",
+ "name": "title",
+ "comment": "",
+ "dataType": "VARCHAR(50)",
+ "default": "",
+ "options": 4,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755246822455,
+ "createAt": 1755246822455
+ }
+ },
+ "IBqYEEMfK4IbNQxZ4N418": {
+ "id": "IBqYEEMfK4IbNQxZ4N418",
+ "tableId": "W_lPWGav23vY_3307ANtm",
+ "name": "price",
+ "comment": "기본금액",
+ "dataType": "INT",
+ "default": "0",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755246822455,
+ "createAt": 1755246822455
+ }
+ },
+ "IJawIZAZmMkSTVuhBrkR3": {
+ "id": "IJawIZAZmMkSTVuhBrkR3",
+ "tableId": "W_lPWGav23vY_3307ANtm",
+ "name": "status",
+ "comment": "",
+ "dataType": "VARCHAR(20)",
+ "default": "'default'",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755246822456,
+ "createAt": 1755246822455
+ }
+ },
+ "WDQfoy2S3X9-xs64-XenV": {
+ "id": "WDQfoy2S3X9-xs64-XenV",
+ "tableId": "W_lPWGav23vY_3307ANtm",
+ "name": "updated_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 62,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755246822456,
+ "createAt": 1755246822456
+ }
+ },
+ "vJQz5jv-3kfULzv1HXzOK": {
+ "id": "vJQz5jv-3kfULzv1HXzOK",
+ "tableId": "W_lPWGav23vY_3307ANtm",
+ "name": "created_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "CURRENT_TIMESTAMP",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 122
+ },
+ "meta": {
+ "updateAt": 1755246822456,
+ "createAt": 1755246822456
+ }
+ },
+ "LzAZLQ61z6BJHTRtDgxnI": {
+ "id": "LzAZLQ61z6BJHTRtDgxnI",
+ "tableId": "W_lPWGav23vY_3307ANtm",
+ "name": "deleted_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755246822456,
+ "createAt": 1755246822456
+ }
+ },
+ "SlbGqJXf-rNePjMEvRIsr": {
+ "id": "SlbGqJXf-rNePjMEvRIsr",
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "name": "raminfo_uid",
+ "comment": "ram 정보",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 65,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755246892459,
+ "createAt": 1755246873484
+ }
+ },
+ "CxChVMNZ0-lR_Qis-x2vD": {
+ "id": "CxChVMNZ0-lR_Qis-x2vD",
+ "tableId": "Dc6xDx_iwsVF1Z9ks1gPh",
+ "name": "uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 11,
+ "ui": {
+ "keys": 1,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755483176747,
+ "createAt": 1755246920743
+ }
+ },
+ "GlQZ0wuM69sz8cilRgsuj": {
+ "id": "GlQZ0wuM69sz8cilRgsuj",
+ "tableId": "Dc6xDx_iwsVF1Z9ks1gPh",
+ "name": "title",
+ "comment": "",
+ "dataType": "VARCHAR(50)",
+ "default": "",
+ "options": 4,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755246920744,
+ "createAt": 1755246920744
+ }
+ },
+ "7skl2jaDZAiBe7SGxMUVD": {
+ "id": "7skl2jaDZAiBe7SGxMUVD",
+ "tableId": "Dc6xDx_iwsVF1Z9ks1gPh",
+ "name": "price",
+ "comment": "기본금액",
+ "dataType": "INT",
+ "default": "0",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755246920744,
+ "createAt": 1755246920744
+ }
+ },
+ "ikUqvOVsRoMc9udsOgfIN": {
+ "id": "ikUqvOVsRoMc9udsOgfIN",
+ "tableId": "Dc6xDx_iwsVF1Z9ks1gPh",
+ "name": "status",
+ "comment": "",
+ "dataType": "VARCHAR(20)",
+ "default": "'default'",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755246920744,
+ "createAt": 1755246920744
+ }
+ },
+ "x0zlz9RN7BVxFqK3Mlcx_": {
+ "id": "x0zlz9RN7BVxFqK3Mlcx_",
+ "tableId": "Dc6xDx_iwsVF1Z9ks1gPh",
+ "name": "updated_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 62,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755246920744,
+ "createAt": 1755246920744
+ }
+ },
+ "Al_CUnB2n6yl_1SHZr2Rs": {
+ "id": "Al_CUnB2n6yl_1SHZr2Rs",
+ "tableId": "Dc6xDx_iwsVF1Z9ks1gPh",
+ "name": "created_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "CURRENT_TIMESTAMP",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 122
+ },
+ "meta": {
+ "updateAt": 1755246920745,
+ "createAt": 1755246920744
+ }
+ },
+ "huTW9wvZBmVx3fLL-gjIH": {
+ "id": "huTW9wvZBmVx3fLL-gjIH",
+ "tableId": "Dc6xDx_iwsVF1Z9ks1gPh",
+ "name": "deleted_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755246920745,
+ "createAt": 1755246920745
+ }
+ },
+ "_tEXcK3IBB9LKURnEmMsL": {
+ "id": "_tEXcK3IBB9LKURnEmMsL",
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "name": "ram_cnt",
+ "comment": "ram 갯수",
+ "dataType": "TINYINT",
+ "default": "1",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755247039239,
+ "createAt": 1755246986846
+ }
+ },
+ "obuByh1ZWHr1IIkvgrbWr": {
+ "id": "obuByh1ZWHr1IIkvgrbWr",
+ "tableId": "y6LxJSy1rKRbGC1ANZKOG",
+ "name": "serverinfo_uid",
+ "comment": "서버 정보",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 76,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755247815351,
+ "createAt": 1755247159760
+ }
+ },
+ "WfUhhigWFoqSS1vz3dWPx": {
+ "id": "WfUhhigWFoqSS1vz3dWPx",
+ "tableId": "y6LxJSy1rKRbGC1ANZKOG",
+ "name": "",
+ "comment": "",
+ "dataType": "",
+ "default": "",
+ "options": 10,
+ "ui": {
+ "keys": 1,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755247403623,
+ "createAt": 1755247403623
+ }
+ },
+ "WIa81CxRFY76H8y3AD0z-": {
+ "id": "WIa81CxRFY76H8y3AD0z-",
+ "tableId": "Dc6xDx_iwsVF1Z9ks1gPh",
+ "name": "",
+ "comment": "",
+ "dataType": "",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755247405336,
+ "createAt": 1755247405336
+ }
+ },
+ "IGt5YZ4mwg87rD0wY0B0d": {
+ "id": "IGt5YZ4mwg87rD0wY0B0d",
+ "tableId": "y6LxJSy1rKRbGC1ANZKOG",
+ "name": "uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 11,
+ "ui": {
+ "keys": 1,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755483116049,
+ "createAt": 1755247496654
+ }
+ },
+ "zd1xXBB6j-idV0F9EHSJ5": {
+ "id": "zd1xXBB6j-idV0F9EHSJ5",
+ "tableId": "y6LxJSy1rKRbGC1ANZKOG",
+ "name": "diskinfo_uid",
+ "comment": "disk 정보",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 65,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755247810711,
+ "createAt": 1755247786766
+ }
+ },
+ "1QueOAWrAo33UT1SO9OVX": {
+ "id": "1QueOAWrAo33UT1SO9OVX",
+ "tableId": "y6LxJSy1rKRbGC1ANZKOG",
+ "name": "raid",
+ "comment": "raid종류",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755475051515,
+ "createAt": 1755248032899
+ }
+ },
+ "bBO5EQFcFAnvhtm8mQaiG": {
+ "id": "bBO5EQFcFAnvhtm8mQaiG",
+ "tableId": "oNuTAELQcUrUMGz3PRJIW",
+ "name": "uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 11,
+ "ui": {
+ "keys": 1,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755483155169,
+ "createAt": 1755249635374
+ }
+ },
+ "IBdcZq2460JlTXRhiwYGq": {
+ "id": "IBdcZq2460JlTXRhiwYGq",
+ "tableId": "oNuTAELQcUrUMGz3PRJIW",
+ "name": "title",
+ "comment": "",
+ "dataType": "VARCHAR(50)",
+ "default": "",
+ "options": 4,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755249635374,
+ "createAt": 1755249635374
+ }
+ },
+ "TnZrb5ac1avyD50Sq6aGg": {
+ "id": "TnZrb5ac1avyD50Sq6aGg",
+ "tableId": "oNuTAELQcUrUMGz3PRJIW",
+ "name": "price",
+ "comment": "기본금액",
+ "dataType": "INT",
+ "default": "0",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755249635375,
+ "createAt": 1755249635374
+ }
+ },
+ "sDAhB498BjHfUoXGNQ-KR": {
+ "id": "sDAhB498BjHfUoXGNQ-KR",
+ "tableId": "oNuTAELQcUrUMGz3PRJIW",
+ "name": "status",
+ "comment": "",
+ "dataType": "VARCHAR(20)",
+ "default": "'default'",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755249635375,
+ "createAt": 1755249635375
+ }
+ },
+ "suGf8mc6frTSSfc37Qybp": {
+ "id": "suGf8mc6frTSSfc37Qybp",
+ "tableId": "oNuTAELQcUrUMGz3PRJIW",
+ "name": "updated_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 62,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755249635375,
+ "createAt": 1755249635375
+ }
+ },
+ "quTWRq3qTgyrorl8isUZ7": {
+ "id": "quTWRq3qTgyrorl8isUZ7",
+ "tableId": "oNuTAELQcUrUMGz3PRJIW",
+ "name": "created_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "CURRENT_TIMESTAMP",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 122
+ },
+ "meta": {
+ "updateAt": 1755249635375,
+ "createAt": 1755249635375
+ }
+ },
+ "jR8nyg0gzSoUtAnBzogY2": {
+ "id": "jR8nyg0gzSoUtAnBzogY2",
+ "tableId": "oNuTAELQcUrUMGz3PRJIW",
+ "name": "deleted_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755249635375,
+ "createAt": 1755249635375
+ }
+ },
+ "GyUE9E-9dNJyvlHKOedDq": {
+ "id": "GyUE9E-9dNJyvlHKOedDq",
+ "tableId": "oNuTAELQcUrUMGz3PRJIW",
+ "name": "serverinfo_uid",
+ "comment": "서버정보",
+ "dataType": "INT",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 76,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755355218870,
+ "createAt": 1755249801944
+ }
+ },
+ "DBfXQ1o8_Uwy01-FyjWz0": {
+ "id": "DBfXQ1o8_Uwy01-FyjWz0",
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "name": "uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755355159387,
+ "createAt": 1755355032131
+ }
+ },
+ "ku0-QG-D0LO42mwHraaN9": {
+ "id": "ku0-QG-D0LO42mwHraaN9",
+ "tableId": "y6LxJSy1rKRbGC1ANZKOG",
+ "name": "cnt",
+ "comment": "disk 갯수",
+ "dataType": "TINYINT",
+ "default": "1",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755485702636,
+ "createAt": 1755475061859
+ }
+ },
+ "gf3QFUo-9exbygXX3-0H0": {
+ "id": "gf3QFUo-9exbygXX3-0H0",
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "name": "amount",
+ "comment": "서비스금액",
+ "dataType": "INT",
+ "default": "0",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 62,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755475315453,
+ "createAt": 1755475315452
+ }
+ },
+ "iQmUVpuyYRNdhSNgw_ga7": {
+ "id": "iQmUVpuyYRNdhSNgw_ga7",
+ "tableId": "y6LxJSy1rKRbGC1ANZKOG",
+ "name": "amount",
+ "comment": "서비스금액",
+ "dataType": "INT",
+ "default": "0",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 62,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755475402381,
+ "createAt": 1755475402381
+ }
+ },
+ "FEUPPJse8IyTjwampIJ1E": {
+ "id": "FEUPPJse8IyTjwampIJ1E",
+ "tableId": "oNuTAELQcUrUMGz3PRJIW",
+ "name": "amount",
+ "comment": "서비스금액",
+ "dataType": "INT",
+ "default": "0",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 62,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755475438548,
+ "createAt": 1755475438548
+ }
+ },
+ "XXQzeCrEymboccXMZCzMo": {
+ "id": "XXQzeCrEymboccXMZCzMo",
+ "tableId": "8GYAVBvZGaMFeq3QuXk_B",
+ "name": "uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 11,
+ "ui": {
+ "keys": 1,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755483149833,
+ "createAt": 1755476517788
+ }
+ },
+ "SioEINPlR0iyL87vqa4N-": {
+ "id": "SioEINPlR0iyL87vqa4N-",
+ "tableId": "8GYAVBvZGaMFeq3QuXk_B",
+ "name": "cnt",
+ "comment": "cpu 갯수",
+ "dataType": "TINYINT",
+ "default": "1",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755476594230,
+ "createAt": 1755476517788
+ }
+ },
+ "fqqyFASOLVXWIKq61Jce7": {
+ "id": "fqqyFASOLVXWIKq61Jce7",
+ "tableId": "8GYAVBvZGaMFeq3QuXk_B",
+ "name": "amount",
+ "comment": "서비스금액",
+ "dataType": "INT",
+ "default": "0",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 62,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755476517788,
+ "createAt": 1755476517788
+ }
+ },
+ "e65_vbZsM9k8Cn5lwGjt5": {
+ "id": "e65_vbZsM9k8Cn5lwGjt5",
+ "tableId": "8GYAVBvZGaMFeq3QuXk_B",
+ "name": "raid",
+ "comment": "raid종류",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755476517788,
+ "createAt": 1755476517788
+ }
+ },
+ "CvilrbKyyz1NnLPndNkb8": {
+ "id": "CvilrbKyyz1NnLPndNkb8",
+ "tableId": "8GYAVBvZGaMFeq3QuXk_B",
+ "name": "serverrinfo_uid",
+ "comment": "서버정보",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 80,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755476559647,
+ "createAt": 1755476547241
+ }
+ },
+ "x23F_sFvFpqLOXzldHBFn": {
+ "id": "x23F_sFvFpqLOXzldHBFn",
+ "tableId": "8GYAVBvZGaMFeq3QuXk_B",
+ "name": "cpuinfo_uid",
+ "comment": "cpu정보",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 64,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755476588267,
+ "createAt": 1755476572319
+ }
+ },
+ "axr_LZ3QKQBrj03ZO3tiU": {
+ "id": "axr_LZ3QKQBrj03ZO3tiU",
+ "tableId": "XWDManpabF2tsIxhMejP6",
+ "name": "uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 11,
+ "ui": {
+ "keys": 1,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755483130433,
+ "createAt": 1755476658035
+ }
+ },
+ "FPreHGLwBwewNsjMgrDwX": {
+ "id": "FPreHGLwBwewNsjMgrDwX",
+ "tableId": "XWDManpabF2tsIxhMejP6",
+ "name": "cnt",
+ "comment": "ram 갯수",
+ "dataType": "TINYINT",
+ "default": "1",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755476721187,
+ "createAt": 1755476658035
+ }
+ },
+ "qjJVv2K53hwjdd2I4Q_Rn": {
+ "id": "qjJVv2K53hwjdd2I4Q_Rn",
+ "tableId": "XWDManpabF2tsIxhMejP6",
+ "name": "amount",
+ "comment": "서비스금액",
+ "dataType": "INT",
+ "default": "0",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 62,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755476658035,
+ "createAt": 1755476658035
+ }
+ },
+ "lkmohF33yJzxDKZgvYZi7": {
+ "id": "lkmohF33yJzxDKZgvYZi7",
+ "tableId": "XWDManpabF2tsIxhMejP6",
+ "name": "serverinfo_uid",
+ "comment": "서버정보",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 76,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755476683272,
+ "createAt": 1755476673143
+ }
+ },
+ "M4sylK12L-sbwc460lHp7": {
+ "id": "M4sylK12L-sbwc460lHp7",
+ "tableId": "XWDManpabF2tsIxhMejP6",
+ "name": "raminfo_uid",
+ "comment": "ram정보",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 65,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755476711848,
+ "createAt": 1755476695269
+ }
+ },
+ "QntZma68vv35q1xARB2R4": {
+ "id": "QntZma68vv35q1xARB2R4",
+ "tableId": "SEgsi7mbM-56Rsx5-qj8K",
+ "name": "uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755476992395,
+ "createAt": 1755476992394
+ }
+ },
+ "JP9PTSr956CAPbXosCtEq": {
+ "id": "JP9PTSr956CAPbXosCtEq",
+ "tableId": "8GYAVBvZGaMFeq3QuXk_B",
+ "name": "updated_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 62,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755477610393,
+ "createAt": 1755477610393
+ }
+ },
+ "kDyVwSigBBYnp_F9MyRAw": {
+ "id": "kDyVwSigBBYnp_F9MyRAw",
+ "tableId": "8GYAVBvZGaMFeq3QuXk_B",
+ "name": "created_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "CURRENT_TIMESTAMP",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 122
+ },
+ "meta": {
+ "updateAt": 1755477610393,
+ "createAt": 1755477610393
+ }
+ },
+ "4V3D7Dj65Us30_gYyP27z": {
+ "id": "4V3D7Dj65Us30_gYyP27z",
+ "tableId": "XWDManpabF2tsIxhMejP6",
+ "name": "updated_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 62,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755477615783,
+ "createAt": 1755477615783
+ }
+ },
+ "YL4Bsc3X1OCr1HESCOy2n": {
+ "id": "YL4Bsc3X1OCr1HESCOy2n",
+ "tableId": "XWDManpabF2tsIxhMejP6",
+ "name": "created_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "CURRENT_TIMESTAMP",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 122
+ },
+ "meta": {
+ "updateAt": 1755477615783,
+ "createAt": 1755477615783
+ }
+ },
+ "D1A4zT-QFQwN2nAJgTQZc": {
+ "id": "D1A4zT-QFQwN2nAJgTQZc",
+ "tableId": "y6LxJSy1rKRbGC1ANZKOG",
+ "name": "updated_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 62,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755477621825,
+ "createAt": 1755477621824
+ }
+ },
+ "Zix606z6-IS6vYzB1EMD-": {
+ "id": "Zix606z6-IS6vYzB1EMD-",
+ "tableId": "y6LxJSy1rKRbGC1ANZKOG",
+ "name": "created_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "CURRENT_TIMESTAMP",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 122
+ },
+ "meta": {
+ "updateAt": 1755477621825,
+ "createAt": 1755477621825
+ }
+ },
+ "hGJn_WXZRUZizXnV1q1mp": {
+ "id": "hGJn_WXZRUZizXnV1q1mp",
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "name": "search_ips",
+ "comment": "사용 ip주소(검색용,구분자:comma)",
+ "dataType": "VARCHAR(50)",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 187,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755478750781,
+ "createAt": 1755478567451
+ }
+ },
+ "oUDsRmvN4I4k7BNNJR0y4": {
+ "id": "oUDsRmvN4I4k7BNNJR0y4",
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "name": "serverinfo_uid",
+ "comment": "서버코드",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 76,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755479722625,
+ "createAt": 1755479448345
+ }
+ },
+ "RUTBvn2-51hfNG7Adcbh-": {
+ "id": "RUTBvn2-51hfNG7Adcbh-",
+ "tableId": "ZLEpY5EjuZV21718zf-Y1",
+ "name": "serviceinfo_uid",
+ "comment": "서비스코드",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 80,
+ "widthComment": 62,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755479705755,
+ "createAt": 1755479688215
+ }
+ },
+ "VUPZdWS7fM1J2QstRq4KR": {
+ "id": "VUPZdWS7fM1J2QstRq4KR",
+ "tableId": "MgyqOOvja_MGR3f4xNT8T",
+ "name": "serviceinfo_code",
+ "comment": "서비스코드",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 2,
+ "widthName": 89,
+ "widthComment": 62,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755483735183,
+ "createAt": 1755479812192
+ }
+ },
+ "LRN5qjIRZ18UOhqFbBLuo": {
+ "id": "LRN5qjIRZ18UOhqFbBLuo",
+ "tableId": "QCNA57Pi6A9dJDgybxS5v",
+ "name": "serviceinfo_coide",
+ "comment": "서비스코드",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 2,
+ "widthName": 92,
+ "widthComment": 62,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755483740787,
+ "createAt": 1755479838515
+ }
+ },
+ "mOdd3p43Qb4VStgr1nWHB": {
+ "id": "mOdd3p43Qb4VStgr1nWHB",
+ "tableId": "8GYAVBvZGaMFeq3QuXk_B",
+ "name": "serverinfo_code",
+ "comment": "서버코드",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 2,
+ "widthName": 85,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755483698151,
+ "createAt": 1755479899081
+ }
+ },
+ "cp6LM5PcjxQXXXksE7tCl": {
+ "id": "cp6LM5PcjxQXXXksE7tCl",
+ "tableId": "XWDManpabF2tsIxhMejP6",
+ "name": "serverinfo_code",
+ "comment": "서버코드",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 85,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755483702093,
+ "createAt": 1755479916812
+ }
+ },
+ "YqJDZb-w4dCpGDbMaNC0j": {
+ "id": "YqJDZb-w4dCpGDbMaNC0j",
+ "tableId": "y6LxJSy1rKRbGC1ANZKOG",
+ "name": "serverinfo_code",
+ "comment": "서버코드",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 85,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755483705748,
+ "createAt": 1755479930090
+ }
+ },
+ "Li6TetD-ZbH9MNKGAK0im": {
+ "id": "Li6TetD-ZbH9MNKGAK0im",
+ "tableId": "IsMoJXzvtuoOFFt93qS0w",
+ "name": "serverinfo_code",
+ "comment": "서버코드",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 2,
+ "widthName": 85,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755483646024,
+ "createAt": 1755480385013
+ }
+ },
+ "sWwdum3AkxFncLEFPN1CM": {
+ "id": "sWwdum3AkxFncLEFPN1CM",
+ "tableId": "ZLEpY5EjuZV21718zf-Y1",
+ "name": "serverinfo_uid",
+ "comment": "서버코드",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 76,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755480844082,
+ "createAt": 1755480470466
+ }
+ },
+ "1R3FQnBR2tpSdfkj3jipU": {
+ "id": "1R3FQnBR2tpSdfkj3jipU",
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "name": "serviceinfo_uid",
+ "comment": "서비스코드",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 80,
+ "widthComment": 62,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755480814776,
+ "createAt": 1755480802836
+ }
+ },
+ "3fZMQ9qB1DO8y44eJRKdt": {
+ "id": "3fZMQ9qB1DO8y44eJRKdt",
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "name": "serviceinfo_code",
+ "comment": "서비스코드",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 2,
+ "widthName": 89,
+ "widthComment": 62,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755483629903,
+ "createAt": 1755481142306
+ }
+ },
+ "Eo358NWcEUQY3DN9QGnGQ": {
+ "id": "Eo358NWcEUQY3DN9QGnGQ",
+ "tableId": "N9Zu0JeQXBcwLiuCqLotP",
+ "name": "uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 11,
+ "ui": {
+ "keys": 1,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755483119673,
+ "createAt": 1755481454038
+ }
+ },
+ "9jyfXIZZ25iWYB6VB41F9": {
+ "id": "9jyfXIZZ25iWYB6VB41F9",
+ "tableId": "N9Zu0JeQXBcwLiuCqLotP",
+ "name": "amount",
+ "comment": "서비스금액",
+ "dataType": "INT",
+ "default": "0",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 62,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755481454038,
+ "createAt": 1755481454038
+ }
+ },
+ "lw5LN_hwXHVgctjrJJC2M": {
+ "id": "lw5LN_hwXHVgctjrJJC2M",
+ "tableId": "N9Zu0JeQXBcwLiuCqLotP",
+ "name": "updated_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 62,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755481454038,
+ "createAt": 1755481454038
+ }
+ },
+ "CquZe6cpOPCDJmQC5vWe9": {
+ "id": "CquZe6cpOPCDJmQC5vWe9",
+ "tableId": "N9Zu0JeQXBcwLiuCqLotP",
+ "name": "created_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "CURRENT_TIMESTAMP",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 122
+ },
+ "meta": {
+ "updateAt": 1755481454038,
+ "createAt": 1755481454038
+ }
+ },
+ "qDieUIrgCa3bzZX6OWKcC": {
+ "id": "qDieUIrgCa3bzZX6OWKcC",
+ "tableId": "N9Zu0JeQXBcwLiuCqLotP",
+ "name": "serverinfo_code",
+ "comment": "서버코드",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 85,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755483712787,
+ "createAt": 1755481487973
+ }
+ },
+ "nUQNtDBUrs6SFI5OPk5gp": {
+ "id": "nUQNtDBUrs6SFI5OPk5gp",
+ "tableId": "N9Zu0JeQXBcwLiuCqLotP",
+ "name": "softwareinfo_uid",
+ "comment": "소프트웨어정보",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 89,
+ "widthComment": 86,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755481549476,
+ "createAt": 1755481519997
+ }
+ },
+ "5brFiZlY8m5rOEr0hCYfY": {
+ "id": "5brFiZlY8m5rOEr0hCYfY",
+ "tableId": "Pa1u61sIGvzDtItserV5k",
+ "name": "uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 11,
+ "ui": {
+ "keys": 1,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755483122193,
+ "createAt": 1755481609870
+ }
+ },
+ "3Qdm5giGdFOueOxIGpNFl": {
+ "id": "3Qdm5giGdFOueOxIGpNFl",
+ "tableId": "Pa1u61sIGvzDtItserV5k",
+ "name": "amount",
+ "comment": "서비스금액",
+ "dataType": "INT",
+ "default": "0",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 62,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755481609870,
+ "createAt": 1755481609870
+ }
+ },
+ "WiLPZ9QHd0-j2QxdylQVW": {
+ "id": "WiLPZ9QHd0-j2QxdylQVW",
+ "tableId": "Pa1u61sIGvzDtItserV5k",
+ "name": "updated_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 62,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755481609870,
+ "createAt": 1755481609870
+ }
+ },
+ "jkHlXxe8haR1gpCpCUKw8": {
+ "id": "jkHlXxe8haR1gpCpCUKw8",
+ "tableId": "Pa1u61sIGvzDtItserV5k",
+ "name": "created_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "CURRENT_TIMESTAMP",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 122
+ },
+ "meta": {
+ "updateAt": 1755481609870,
+ "createAt": 1755481609870
+ }
+ },
+ "_bHdGsO8d_89L_gSiQRmG": {
+ "id": "_bHdGsO8d_89L_gSiQRmG",
+ "tableId": "Pa1u61sIGvzDtItserV5k",
+ "name": "serverinfo_code",
+ "comment": "서버코드",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 85,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755483717668,
+ "createAt": 1755481631893
+ }
+ },
+ "wI0MMNv14UOrTsaYp1Iwo": {
+ "id": "wI0MMNv14UOrTsaYp1Iwo",
+ "tableId": "Pa1u61sIGvzDtItserV5k",
+ "name": "csinfo_uid",
+ "comment": "cs정보",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755481670032,
+ "createAt": 1755481643217
+ }
+ },
+ "6i-Ag5fvYugIDFg9tH3HA": {
+ "id": "6i-Ag5fvYugIDFg9tH3HA",
+ "tableId": "ZLEpY5EjuZV21718zf-Y1",
+ "name": "serverinfo_code",
+ "comment": "서버코드",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 2,
+ "widthName": 85,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755483693229,
+ "createAt": 1755481788806
+ }
+ },
+ "0LanT5cVJX_uBb0Foh2NM": {
+ "id": "0LanT5cVJX_uBb0Foh2NM",
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "name": "clientinfo_code",
+ "comment": "고객코드",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 2,
+ "widthName": 82,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755483677499,
+ "createAt": 1755483330609
+ }
+ },
+ "QwfRq6xU7Vy-QoenynjXR": {
+ "id": "QwfRq6xU7Vy-QoenynjXR",
+ "tableId": "QCNA57Pi6A9dJDgybxS5v",
+ "name": "clientinfo_code",
+ "comment": "고객코드",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 2,
+ "widthName": 82,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755483744577,
+ "createAt": 1755483359049
+ }
+ },
+ "VBy1PXlflYSQGeLRXkD3l": {
+ "id": "VBy1PXlflYSQGeLRXkD3l",
+ "tableId": "MgyqOOvja_MGR3f4xNT8T",
+ "name": "clientinfo_code",
+ "comment": "고객코드",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 2,
+ "widthName": 82,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755483731335,
+ "createAt": 1755483387662
+ }
+ },
+ "7e7kPIVKM4VrUWTZADe-5": {
+ "id": "7e7kPIVKM4VrUWTZADe-5",
+ "tableId": "GDEF0_WuOpaYtsZxjn2zM",
+ "name": "clientinfo_code",
+ "comment": "고객코드",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 2,
+ "widthName": 82,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755483757518,
+ "createAt": 1755483441006
+ }
+ },
+ "YdLa5geill88c3UM5a_YR": {
+ "id": "YdLa5geill88c3UM5a_YR",
+ "tableId": "jO40Ej5EXImXnadoJo9bn",
+ "name": "clientinfo_code",
+ "comment": "고객코드",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 2,
+ "widthName": 82,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755483768171,
+ "createAt": 1755483519967
+ }
+ },
+ "HZIdc4faH9k91g-JN-NhW": {
+ "id": "HZIdc4faH9k91g-JN-NhW",
+ "tableId": "8GYAVBvZGaMFeq3QuXk_B",
+ "name": "type",
+ "comment": "형식",
+ "dataType": "ENUM",
+ "default": "('CPU','RAM','DISK','SOFTWARE')",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 172
+ },
+ "meta": {
+ "updateAt": 1755486378357,
+ "createAt": 1755486306594
+ }
+ },
+ "TsfQy78jcI0ref_kE7OV9": {
+ "id": "TsfQy78jcI0ref_kE7OV9",
+ "tableId": "ZMGIWLFEswObjH2Sx0NlW",
+ "name": "type",
+ "comment": "형식",
+ "dataType": "ENUM('CPU','RAM','DISK','SOFTWARE')",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 206,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755488402952,
+ "createAt": 1755486399420
+ }
+ },
+ "pcpeNmSmqH_DtbRLyaYv9": {
+ "id": "pcpeNmSmqH_DtbRLyaYv9",
+ "tableId": "SEgsi7mbM-56Rsx5-qj8K",
+ "name": "serverinfo_code",
+ "comment": "서버코드",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 2,
+ "widthName": 85,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755486633050,
+ "createAt": 1755486550772
+ }
+ },
+ "l2g7xess8DY86_ZOm7Ca1": {
+ "id": "l2g7xess8DY86_ZOm7Ca1",
+ "tableId": "8GYAVBvZGaMFeq3QuXk_B",
+ "name": "partinfo_uid",
+ "comment": "part정보",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 2,
+ "widthName": 66,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755486711129,
+ "createAt": 1755486693704
+ }
+ },
+ "NdvFKvSSsZJ3s1sEMgXzt": {
+ "id": "NdvFKvSSsZJ3s1sEMgXzt",
+ "tableId": "8GYAVBvZGaMFeq3QuXk_B",
+ "name": "extra",
+ "comment": "추가정보(RAID등)",
+ "dataType": "JSON",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 96,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755486793127,
+ "createAt": 1755486722061
+ }
+ },
+ "JnsH90ebD8YNwM8q_Ajat": {
+ "id": "JnsH90ebD8YNwM8q_Ajat",
+ "tableId": "PdXX5ghGi8ZK89G9OjtnQ",
+ "name": "uid",
+ "comment": "",
+ "dataType": "INT",
+ "default": "",
+ "options": 11,
+ "ui": {
+ "keys": 1,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755488657335,
+ "createAt": 1755488630271
+ }
+ },
+ "gbR9hOeDvjnrJAxI4vLf9": {
+ "id": "gbR9hOeDvjnrJAxI4vLf9",
+ "tableId": "PdXX5ghGi8ZK89G9OjtnQ",
+ "name": "title",
+ "comment": "",
+ "dataType": "VARCHAR(255)",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 81,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755488630271,
+ "createAt": 1755488630271
+ }
+ },
+ "PV9lD8qRmTrg8bMT4t3WG": {
+ "id": "PV9lD8qRmTrg8bMT4t3WG",
+ "tableId": "PdXX5ghGi8ZK89G9OjtnQ",
+ "name": "amount",
+ "comment": "포인트액",
+ "dataType": "INT",
+ "default": "0",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755488752319,
+ "createAt": 1755488630271
+ }
+ },
+ "VP7GvkqWejNbQZc-tmlr_": {
+ "id": "VP7GvkqWejNbQZc-tmlr_",
+ "tableId": "PdXX5ghGi8ZK89G9OjtnQ",
+ "name": "status",
+ "comment": "",
+ "dataType": "VARCHAR(20)",
+ "default": "'default'",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755488630271,
+ "createAt": 1755488630271
+ }
+ },
+ "UzQFCo9RFEeqMUnp4xCp_": {
+ "id": "UzQFCo9RFEeqMUnp4xCp_",
+ "tableId": "PdXX5ghGi8ZK89G9OjtnQ",
+ "name": "updated_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 62,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755488630271,
+ "createAt": 1755488630271
+ }
+ },
+ "rXvRKMW6wEsJR5E6IwWZI": {
+ "id": "rXvRKMW6wEsJR5E6IwWZI",
+ "tableId": "PdXX5ghGi8ZK89G9OjtnQ",
+ "name": "created_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "CURRENT_TIMESTAMP",
+ "options": 8,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 122
+ },
+ "meta": {
+ "updateAt": 1755488630272,
+ "createAt": 1755488630271
+ }
+ },
+ "dNTE1M813GnbddEqp4esS": {
+ "id": "dNTE1M813GnbddEqp4esS",
+ "tableId": "PdXX5ghGi8ZK89G9OjtnQ",
+ "name": "deleted_at",
+ "comment": "",
+ "dataType": "TIMESTAMP",
+ "default": "",
+ "options": 0,
+ "ui": {
+ "keys": 0,
+ "widthName": 60,
+ "widthComment": 60,
+ "widthDataType": 65,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755488630272,
+ "createAt": 1755488630272
+ }
+ },
+ "z86v6qGtWsrVhzZfUo_7d": {
+ "id": "z86v6qGtWsrVhzZfUo_7d",
+ "tableId": "PdXX5ghGi8ZK89G9OjtnQ",
+ "name": "userinfo_uid",
+ "comment": "관리자정보",
+ "dataType": "INT",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 2,
+ "widthName": 67,
+ "widthComment": 62,
+ "widthDataType": 60,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755488717423,
+ "createAt": 1755488677087
+ }
+ },
+ "QD0EVLU6BeTsEsNO3MAgd": {
+ "id": "QD0EVLU6BeTsEsNO3MAgd",
+ "tableId": "PdXX5ghGi8ZK89G9OjtnQ",
+ "name": "clientinfo_code",
+ "comment": "고객코드",
+ "dataType": "VARCHAR(20)",
+ "default": "",
+ "options": 8,
+ "ui": {
+ "keys": 2,
+ "widthName": 82,
+ "widthComment": 60,
+ "widthDataType": 75,
+ "widthDefault": 60
+ },
+ "meta": {
+ "updateAt": 1755488709733,
+ "createAt": 1755488700401
+ }
}
},
"relationshipEntities": {
- "gAVYXWnBSnCw-0ieO4Mil": {
- "id": "gAVYXWnBSnCw-0ieO4Mil",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "6ajvOCaGuXU9pzV0Y9jEi",
- "columnIds": [
- "_AcWUYKzNJd-V0fRHq8Cx"
- ],
- "x": 885.6138,
- "y": 1121.1133,
- "direction": 1
- },
- "end": {
- "tableId": "GDEF0_WuOpaYtsZxjn2zM",
- "columnIds": [
- "nPYun5WHoy8uroXUBiqh8"
- ],
- "x": 654.2029,
- "y": 747.9010000000001,
- "direction": 2
- },
- "meta": {
- "updateAt": 1746604503019,
- "createAt": 1745819764143
- }
- },
- "4BDt10BeeryoN0ZdEHIui": {
- "id": "4BDt10BeeryoN0ZdEHIui",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "6ajvOCaGuXU9pzV0Y9jEi",
- "columnIds": [
- "_AcWUYKzNJd-V0fRHq8Cx"
- ],
- "x": 885.6138,
- "y": 1329.1133,
- "direction": 1
- },
- "end": {
- "tableId": "jO40Ej5EXImXnadoJo9bn",
- "columnIds": [
- "35XbdvgOzpNdasPnMcbkx"
- ],
- "x": 661.1292,
- "y": 1068.2412,
- "direction": 2
- },
- "meta": {
- "updateAt": 1745914803629,
- "createAt": 1745914803629
- }
- },
- "KtdVJCYZ3DMVnPnFGKi3P": {
- "id": "KtdVJCYZ3DMVnPnFGKi3P",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "6ajvOCaGuXU9pzV0Y9jEi",
- "columnIds": [
- "_AcWUYKzNJd-V0fRHq8Cx"
- ],
- "x": 857.6138,
- "y": 1208.1133,
- "direction": 1
- },
- "end": {
- "tableId": "5AUwJum9FKPCoYRMBhLnF",
- "columnIds": [
- "PyXYmokQzpzzT08WTmtsN"
- ],
- "x": 656.8195000000001,
- "y": 1056.7134,
- "direction": 2
- },
- "meta": {
- "updateAt": 1745914916196,
- "createAt": 1745914916196
- }
- },
"AH1dyESfueUlhcoiU6KsQ": {
"id": "AH1dyESfueUlhcoiU6KsQ",
"identification": false,
@@ -10288,80 +12475,24 @@
"columnIds": [
"7B0zaLoZnOoMNW8OHZlrQ"
],
- "x": 647.4147,
- "y": 1657.6983,
- "direction": 2
+ "x": 2163.1753,
+ "y": 1690.2063,
+ "direction": 1
},
"end": {
"tableId": "ZLEpY5EjuZV21718zf-Y1",
"columnIds": [
"f7_MGvRjkwL1xkCWrAgDR"
],
- "x": 827.863,
- "y": 1940.4333,
- "direction": 1
+ "x": 1561.1227,
+ "y": 1839.0937,
+ "direction": 2
},
"meta": {
"updateAt": 1746595277837,
"createAt": 1746595277837
}
},
- "anhMCXytE7rcE_drKBPWz": {
- "id": "anhMCXytE7rcE_drKBPWz",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "6ajvOCaGuXU9pzV0Y9jEi",
- "columnIds": [
- "_AcWUYKzNJd-V0fRHq8Cx"
- ],
- "x": 1418.6138,
- "y": 1363.7799666666667,
- "direction": 2
- },
- "end": {
- "tableId": "B8haiEbPc1lRBWTv1g25G",
- "columnIds": [
- "NzxkmndrTbH7xb6fbnGV7"
- ],
- "x": 1560.9612,
- "y": 1511.2679,
- "direction": 1
- },
- "meta": {
- "updateAt": 1748506571484,
- "createAt": 1748506571484
- }
- },
- "Hj5AZkoYGvM_syvnqMeOi": {
- "id": "Hj5AZkoYGvM_syvnqMeOi",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "B8haiEbPc1lRBWTv1g25G",
- "columnIds": [
- "N_yJVoCN4oUEDhYqdzApb"
- ],
- "x": 1980.2112,
- "y": 1419.2679,
- "direction": 4
- },
- "end": {
- "tableId": "QCNA57Pi6A9dJDgybxS5v",
- "columnIds": [
- "ZWV8iXrgQovfYTm32QGbZ"
- ],
- "x": 2259.4614,
- "y": 956.8780666666665,
- "direction": 1
- },
- "meta": {
- "updateAt": 1749615226177,
- "createAt": 1749615226177
- }
- },
"cRqZmxohkCGd_FTkg1rhI": {
"id": "cRqZmxohkCGd_FTkg1rhI",
"identification": false,
@@ -10372,8 +12503,8 @@
"columnIds": [
"mfHtgzc_Aeocr6xkgwYWh"
],
- "x": 1598.9012,
- "y": 743.2873999999999,
+ "x": 1254.4012,
+ "y": 381.2874,
"direction": 8
},
"end": {
@@ -10381,8 +12512,8 @@
"columnIds": [
"Vf3bNvvEPfu1zCs4rcHTU"
],
- "x": 1700.7112,
- "y": 1419.2679,
+ "x": 1081.5529000000001,
+ "y": 1018.5867,
"direction": 4
},
"meta": {
@@ -10400,8 +12531,8 @@
"columnIds": [
"mfHtgzc_Aeocr6xkgwYWh"
],
- "x": 1724.6512,
- "y": 521.2873999999999,
+ "x": 1631.6512,
+ "y": 159.2874,
"direction": 2
},
"end": {
@@ -10409,8 +12540,8 @@
"columnIds": [
"s1Az-lXWK0NlVQqFEEK8o"
],
- "x": 2259.4614,
- "y": 743.5447333333333,
+ "x": 2122.464,
+ "y": 279.29083333333335,
"direction": 1
},
"meta": {
@@ -10418,118 +12549,6 @@
"createAt": 1750829265309
}
},
- "SPka-cLj0RKoiI41G_6pY": {
- "id": "SPka-cLj0RKoiI41G_6pY",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 1,
- "start": {
- "tableId": "B8haiEbPc1lRBWTv1g25G",
- "columnIds": [
- "N_yJVoCN4oUEDhYqdzApb"
- ],
- "x": 1313.5815,
- "y": 1277.9179,
- "direction": 1
- },
- "end": {
- "tableId": "ZLEpY5EjuZV21718zf-Y1",
- "columnIds": [
- "3iPU6UC3FKcE8hXY9Q40C"
- ],
- "x": 1127.1366,
- "y": 1253.1929,
- "direction": 2
- },
- "meta": {
- "updateAt": 1755066780399,
- "createAt": 1755066780399
- }
- },
- "Be8El0y3CWe_2WOBxssZU": {
- "id": "Be8El0y3CWe_2WOBxssZU",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 1,
- "start": {
- "tableId": "B8haiEbPc1lRBWTv1g25G",
- "columnIds": [
- "N_yJVoCN4oUEDhYqdzApb"
- ],
- "x": 1326.4848,
- "y": 1366.7566000000002,
- "direction": 1
- },
- "end": {
- "tableId": "IsMoJXzvtuoOFFt93qS0w",
- "columnIds": [
- "s756JnSlHbNIOpmMi5M-2"
- ],
- "x": 567.4958,
- "y": 1706.5644,
- "direction": 2
- },
- "meta": {
- "updateAt": 1755069233971,
- "createAt": 1755069233971
- }
- },
- "R1Q9ObPbavZ376JxKDHml": {
- "id": "R1Q9ObPbavZ376JxKDHml",
- "identification": false,
- "relationshipType": 8,
- "startRelationshipType": 1,
- "start": {
- "tableId": "B8haiEbPc1lRBWTv1g25G",
- "columnIds": [
- "N_yJVoCN4oUEDhYqdzApb"
- ],
- "x": 1840.4612,
- "y": 1787.2679,
- "direction": 8
- },
- "end": {
- "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
- "columnIds": [
- "EKrwHre6e66jqAMnAW_KR"
- ],
- "x": 1884.9231,
- "y": 1918.0162,
- "direction": 4
- },
- "meta": {
- "updateAt": 1755069335261,
- "createAt": 1755069335261
- }
- },
- "RSWTHCBXAega89Qn25dV8": {
- "id": "RSWTHCBXAega89Qn25dV8",
- "identification": false,
- "relationshipType": 8,
- "startRelationshipType": 1,
- "start": {
- "tableId": "B8haiEbPc1lRBWTv1g25G",
- "columnIds": [
- "N_yJVoCN4oUEDhYqdzApb"
- ],
- "x": 1823.5815,
- "y": 1109.2512333333332,
- "direction": 2
- },
- "end": {
- "tableId": "IsMoJXzvtuoOFFt93qS0w",
- "columnIds": [
- "ByQhiHPUZQBhgIaT774FJ"
- ],
- "x": 2429.1032,
- "y": 1363.5488,
- "direction": 1
- },
- "meta": {
- "updateAt": 1755069479018,
- "createAt": 1755069479018
- }
- },
"6eVY12bW8ePKGX43ni21y": {
"id": "6eVY12bW8ePKGX43ni21y",
"identification": false,
@@ -10540,8 +12559,8 @@
"columnIds": [
"mfHtgzc_Aeocr6xkgwYWh"
],
- "x": 1221.6512,
- "y": 496.62073333333336,
+ "x": 1128.6512,
+ "y": 122.2874,
"direction": 1
},
"end": {
@@ -10549,8 +12568,8 @@
"columnIds": [
"Wco5JzN0gIqgNaG-vYnjF"
],
- "x": 649.3505,
- "y": 343.9762,
+ "x": 587.3749,
+ "y": 313.025,
"direction": 2
},
"meta": {
@@ -10558,398 +12577,6 @@
"createAt": 1755069614219
}
},
- "6Z59wOM9Ozqcxy1HXyWfL": {
- "id": "6Z59wOM9Ozqcxy1HXyWfL",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
- "columnIds": [
- "F9EPb6nsDx6Tf3GG8rvP1"
- ],
- "x": 1615.7351,
- "y": 1976.6219,
- "direction": 1
- },
- "end": {
- "tableId": "H5lE3ZX7xEbV8d0OHBR95",
- "columnIds": [
- "jqmxU5JhvpNsSCdKSoyT7"
- ],
- "x": 1237.8474999999999,
- "y": 1930.661,
- "direction": 2
- },
- "meta": {
- "updateAt": 1755069998397,
- "createAt": 1755069998397
- }
- },
- "bcycdLlJH_tFYYDrKimpY": {
- "id": "bcycdLlJH_tFYYDrKimpY",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "RMhrLs7bOaopKmKt9YKHQ",
- "columnIds": [
- "Jh6e_-9QYe1Tqve0PE3kT"
- ],
- "x": 568.5356,
- "y": 1821.4784,
- "direction": 2
- },
- "end": {
- "tableId": "H5lE3ZX7xEbV8d0OHBR95",
- "columnIds": [
- "DwPWRr9Ca7SpzA6FeGYVg"
- ],
- "x": 803.8475,
- "y": 1930.661,
- "direction": 1
- },
- "meta": {
- "updateAt": 1755070021142,
- "createAt": 1755070021142
- }
- },
- "rfeiuBIFSQQ4T9vZ_bSVE": {
- "id": "rfeiuBIFSQQ4T9vZ_bSVE",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
- "columnIds": [
- "F9EPb6nsDx6Tf3GG8rvP1"
- ],
- "x": 1615.7351,
- "y": 2040.6219,
- "direction": 1
- },
- "end": {
- "tableId": "VdcGlLO4HgExVJUAVEriv",
- "columnIds": [
- "r0esmH8vUxxZfUM5g2LMo"
- ],
- "x": 1245.6144,
- "y": 2102.4843,
- "direction": 2
- },
- "meta": {
- "updateAt": 1755070077479,
- "createAt": 1755070077479
- }
- },
- "D0py0vZ2AFCYJAyfuG3xy": {
- "id": "D0py0vZ2AFCYJAyfuG3xy",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "lwd2DR7f1FW8fXtJ0lX-r",
- "columnIds": [
- "203b3hUKUQ_Gu5wKShBgZ"
- ],
- "x": 565.05,
- "y": 2095.2533000000003,
- "direction": 2
- },
- "end": {
- "tableId": "VdcGlLO4HgExVJUAVEriv",
- "columnIds": [
- "zPhCo7rgbYHeLG1t_hdq8"
- ],
- "x": 811.6144,
- "y": 2102.4843,
- "direction": 1
- },
- "meta": {
- "updateAt": 1755070084260,
- "createAt": 1755070084260
- }
- },
- "-Su3FGiUbis01r8FsghJ7": {
- "id": "-Su3FGiUbis01r8FsghJ7",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
- "columnIds": [
- "F9EPb6nsDx6Tf3GG8rvP1"
- ],
- "x": 1615.7351,
- "y": 2104.6219,
- "direction": 1
- },
- "end": {
- "tableId": "BFhEqfFZ0L56a6Tey1OsK",
- "columnIds": [
- "gutGFwQWK4wXhe8FtDw2o"
- ],
- "x": 1248.4732,
- "y": 2260.0797,
- "direction": 2
- },
- "meta": {
- "updateAt": 1755070159652,
- "createAt": 1755070159652
- }
- },
- "bkNq5LFoIOcQUcH8zRR1u": {
- "id": "bkNq5LFoIOcQUcH8zRR1u",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "dnFyz1CSdGeS6mCbfCMO0",
- "columnIds": [
- "WaCB3uNZYFReAPiBqQ97v"
- ],
- "x": 565.0925,
- "y": 2344.993,
- "direction": 2
- },
- "end": {
- "tableId": "BFhEqfFZ0L56a6Tey1OsK",
- "columnIds": [
- "8ECMbJlnwzH9BVC8qww0G"
- ],
- "x": 814.4732,
- "y": 2260.0797,
- "direction": 1
- },
- "meta": {
- "updateAt": 1755070184602,
- "createAt": 1755070184602
- }
- },
- "evNG079qK8vtHbDi_X3vi": {
- "id": "evNG079qK8vtHbDi_X3vi",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "ZMGIWLFEswObjH2Sx0NlW",
- "columnIds": [
- "2HB01q46-mugMjuOz85YG"
- ],
- "x": 549.8123,
- "y": 1953.3671,
- "direction": 2
- },
- "end": {
- "tableId": "1IgC97w7iAToPDVjmA6cP",
- "columnIds": [
- "xmzCVojXgE59GnF4OFU1d"
- ],
- "x": 698.5848,
- "y": 1815.172,
- "direction": 1
- },
- "meta": {
- "updateAt": 1755070503028,
- "createAt": 1755070503028
- }
- },
- "vXG-OLwcOHCAT-_MJVIHG": {
- "id": "vXG-OLwcOHCAT-_MJVIHG",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "ZLEpY5EjuZV21718zf-Y1",
- "columnIds": [
- "Id0h8QbOdlhPj9P1zTm5o"
- ],
- "x": 889.7858,
- "y": 1576.1628,
- "direction": 8
- },
- "end": {
- "tableId": "1IgC97w7iAToPDVjmA6cP",
- "columnIds": [
- "Plp-1fV7paxPZi96sBPKC"
- ],
- "x": 907.5848,
- "y": 1775.172,
- "direction": 4
- },
- "meta": {
- "updateAt": 1755070524117,
- "createAt": 1755070524117
- }
- },
- "Lu_9fZemeTtpwxe8JqmVk": {
- "id": "Lu_9fZemeTtpwxe8JqmVk",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "B8haiEbPc1lRBWTv1g25G",
- "columnIds": [
- "N_yJVoCN4oUEDhYqdzApb"
- ],
- "x": 1313.5815,
- "y": 1354.5845666666667,
- "direction": 1
- },
- "end": {
- "tableId": "1IgC97w7iAToPDVjmA6cP",
- "columnIds": [
- "MFCMVc9PfltkzyP2wGEiT"
- ],
- "x": 1186.0835,
- "y": 1602.0358,
- "direction": 2
- },
- "meta": {
- "updateAt": 1755070544576,
- "createAt": 1755070544576
- }
- },
- "y5sp_z99F97sAiCCdnTTW": {
- "id": "y5sp_z99F97sAiCCdnTTW",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "ZMGIWLFEswObjH2Sx0NlW",
- "columnIds": [
- "2HB01q46-mugMjuOz85YG"
- ],
- "x": 725.1659,
- "y": 2217.601,
- "direction": 2
- },
- "end": {
- "tableId": "1IgC97w7iAToPDVjmA6cP",
- "columnIds": [
- "tY1o1CYV2XEEhNzLszGZe"
- ],
- "x": 792.9496,
- "y": 2390.194,
- "direction": 1
- },
- "meta": {
- "updateAt": 1755070620855,
- "createAt": 1755070620855
- }
- },
- "Dz6QcS_70VKHQ2YjzwZGN": {
- "id": "Dz6QcS_70VKHQ2YjzwZGN",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "B8haiEbPc1lRBWTv1g25G",
- "columnIds": [
- "N_yJVoCN4oUEDhYqdzApb"
- ],
- "x": 1399.2481666666665,
- "y": 1463.9179,
- "direction": 8
- },
- "end": {
- "tableId": "ld67cErj1fQafxxvx9u-d",
- "columnIds": [
- "ZLRkW2IglxHYxi64pzqI6"
- ],
- "x": 1117.8107,
- "y": 1917.5262,
- "direction": 2
- },
- "meta": {
- "updateAt": 1755070727257,
- "createAt": 1755070727257
- }
- },
- "w8boPPGLtYJ1bduzTmlb9": {
- "id": "w8boPPGLtYJ1bduzTmlb9",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "RTq5rHQupiXXJPXqpN8K5",
- "columnIds": [
- "zBz4vBOZSIA8vKmfqXckO"
- ],
- "x": 556.4864,
- "y": 2017.6734,
- "direction": 2
- },
- "end": {
- "tableId": "ld67cErj1fQafxxvx9u-d",
- "columnIds": [
- "_1psmOpMPnQkuDErcYGoN"
- ],
- "x": 673.8107,
- "y": 1917.5262,
- "direction": 1
- },
- "meta": {
- "updateAt": 1755070740084,
- "createAt": 1755070740084
- }
- },
- "3cXkv3jbZSAHILxZRp8IO": {
- "id": "3cXkv3jbZSAHILxZRp8IO",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "B8haiEbPc1lRBWTv1g25G",
- "columnIds": [
- "N_yJVoCN4oUEDhYqdzApb"
- ],
- "x": 1442.0815,
- "y": 1463.9179,
- "direction": 8
- },
- "end": {
- "tableId": "MKzOIGduxigGV9tdWRJS9",
- "columnIds": [
- "BZ6k54lNYbwArAe3Lej8Z"
- ],
- "x": 1120.6888,
- "y": 2231.0469,
- "direction": 2
- },
- "meta": {
- "updateAt": 1755070878615,
- "createAt": 1755070878615
- }
- },
- "W7OXR3l5ipZIzfo3Tmkjn": {
- "id": "W7OXR3l5ipZIzfo3Tmkjn",
- "identification": false,
- "relationshipType": 16,
- "startRelationshipType": 2,
- "start": {
- "tableId": "GRBrbb1hqwKSRMfod3I7U",
- "columnIds": [
- "XnNj7H0bnTxo_NuZm7BOs"
- ],
- "x": 552.9504,
- "y": 2288.929,
- "direction": 2
- },
- "end": {
- "tableId": "MKzOIGduxigGV9tdWRJS9",
- "columnIds": [
- "YwXJqImj25hxIQbi8-ZPr"
- ],
- "x": 678.6888,
- "y": 2231.0469,
- "direction": 1
- },
- "meta": {
- "updateAt": 1755070900547,
- "createAt": 1755070900547
- }
- },
"M7KNNgj1MYJ4QVhIJWU1U": {
"id": "M7KNNgj1MYJ4QVhIJWU1U",
"identification": false,
@@ -11016,8 +12643,8 @@
"columnIds": [
"F9EPb6nsDx6Tf3GG8rvP1"
],
- "x": 1489.4231,
- "y": 2264.6828666666665,
+ "x": 2192.6731,
+ "y": 2035.044166666667,
"direction": 1
},
"end": {
@@ -11025,8 +12652,8 @@
"columnIds": [
"Mc9DanKrdzYxiptkoeq9J"
],
- "x": 1416.9496,
- "y": 2390.194,
+ "x": 1837.7455,
+ "y": 2196.9039,
"direction": 2
},
"meta": {
@@ -11100,8 +12727,8 @@
"columnIds": [
"F9EPb6nsDx6Tf3GG8rvP1"
],
- "x": 1489.4231,
- "y": 2126.0162,
+ "x": 1461.5284,
+ "y": 2162.5162,
"direction": 1
},
"end": {
@@ -11109,8 +12736,8 @@
"columnIds": [
"7j-v8422Rzf3ZoLGCDJGo"
],
- "x": 1344.863,
- "y": 2026.4333,
+ "x": 1209.7612,
+ "y": 1975.2414,
"direction": 2
},
"meta": {
@@ -11128,8 +12755,8 @@
"columnIds": [
"F9EPb6nsDx6Tf3GG8rvP1"
],
- "x": 2280.4231,
- "y": 2022.0162,
+ "x": 2212.5284,
+ "y": 2076.5162,
"direction": 2
},
"end": {
@@ -11137,8 +12764,8 @@
"columnIds": [
"UqCsY6KiCJOOFtjCHoMVL"
],
- "x": 2419.0055,
- "y": 1838.9773,
+ "x": 2409.431,
+ "y": 1879.4028,
"direction": 1
},
"meta": {
@@ -11156,8 +12783,8 @@
"columnIds": [
"mfHtgzc_Aeocr6xkgwYWh"
],
- "x": 1347.4012,
- "y": 743.2873999999999,
+ "x": 1505.9012,
+ "y": 381.2874,
"direction": 8
},
"end": {
@@ -11165,8 +12792,8 @@
"columnIds": [
"hrPg0uHAdEjamOj--BVzO"
],
- "x": 1152.1138,
- "y": 1017.1133,
+ "x": 1552.23,
+ "y": 468.8448,
"direction": 4
},
"meta": {
@@ -11184,8 +12811,8 @@
"columnIds": [
"mfHtgzc_Aeocr6xkgwYWh"
],
- "x": 1221.6512,
- "y": 595.2874,
+ "x": 1128.6512,
+ "y": 196.2874,
"direction": 1
},
"end": {
@@ -11193,8 +12820,8 @@
"columnIds": [
"10Ii30CtjhJA-dPVnX2Z-"
],
- "x": 654.2029,
- "y": 575.9010000000001,
+ "x": 600.5444,
+ "y": 548.2669000000001,
"direction": 2
},
"meta": {
@@ -11240,8 +12867,8 @@
"columnIds": [
"mfHtgzc_Aeocr6xkgwYWh"
],
- "x": 1221.6512,
- "y": 693.9540666666667,
+ "x": 1128.6512,
+ "y": 270.2874,
"direction": 1
},
"end": {
@@ -11249,8 +12876,8 @@
"columnIds": [
"J1dtvqmAyJxT6QtuZq7IA"
],
- "x": 661.1292,
- "y": 932.2412,
+ "x": 603.7146,
+ "y": 899.2656,
"direction": 2
},
"meta": {
@@ -11268,8 +12895,8 @@
"columnIds": [
"_AcWUYKzNJd-V0fRHq8Cx"
],
- "x": 1285.3638,
- "y": 1433.1133,
+ "x": 929.8915,
+ "y": 1374.5156,
"direction": 8
},
"end": {
@@ -11277,9 +12904,9 @@
"columnIds": [
"imjqFzOrKxNF9-aH171pe"
],
- "x": 1489.4231,
- "y": 1987.3495333333335,
- "direction": 1
+ "x": 1189.2159,
+ "y": 2187.8899,
+ "direction": 4
},
"meta": {
"updateAt": 1755161208359,
@@ -11352,8 +12979,8 @@
"columnIds": [
"N_yJVoCN4oUEDhYqdzApb"
],
- "x": 1560.9612,
- "y": 1695.2679,
+ "x": 1375.6859,
+ "y": 1664.7297000000003,
"direction": 1
},
"end": {
@@ -11361,8 +12988,8 @@
"columnIds": [
"ZPFSJbnNsml6U3UKwtSVX"
],
- "x": 1344.863,
- "y": 1854.4333,
+ "x": 1209.7612,
+ "y": 1809.2414,
"direction": 2
},
"meta": {
@@ -11380,8 +13007,8 @@
"columnIds": [
"_AcWUYKzNJd-V0fRHq8Cx"
],
- "x": 1018.8638,
- "y": 1433.1133,
+ "x": 885.4748333333332,
+ "y": 1374.5156,
"direction": 8
},
"end": {
@@ -11389,8 +13016,8 @@
"columnIds": [
"nIeV_YUzCUo3ZwJEtefBV"
],
- "x": 1086.363,
- "y": 1768.4333,
+ "x": 951.2612,
+ "y": 1735.2414,
"direction": 4
},
"meta": {
@@ -11408,8 +13035,8 @@
"columnIds": [
"_AcWUYKzNJd-V0fRHq8Cx"
],
- "x": 1418.6138,
- "y": 1086.4466333333332,
+ "x": 1818.73,
+ "y": 572.8448000000001,
"direction": 2
},
"end": {
@@ -11417,8 +13044,8 @@
"columnIds": [
"ho6JZ9VdUHm5R5xx2hf8Z"
],
- "x": 2259.4614,
- "y": 850.2113999999999,
+ "x": 2122.464,
+ "y": 385.95750000000004,
"direction": 1
},
"meta": {
@@ -11436,8 +13063,8 @@
"columnIds": [
"F9EPb6nsDx6Tf3GG8rvP1"
],
- "x": 2280.4231,
- "y": 2230.0162,
+ "x": 2212.5284,
+ "y": 2162.5162,
"direction": 2
},
"end": {
@@ -11445,8 +13072,8 @@
"columnIds": [
"jGUbjneRTg2hPnWwlTUAn"
],
- "x": 2421.5258,
- "y": 2269.3720000000003,
+ "x": 2374.7173,
+ "y": 2014.0528,
"direction": 1
},
"meta": {
@@ -11492,8 +13119,8 @@
"columnIds": [
"N_yJVoCN4oUEDhYqdzApb"
],
- "x": 2119.9611999999997,
- "y": 1480.6012333333335,
+ "x": 1775.3577,
+ "y": 1291.2716,
"direction": 2
},
"end": {
@@ -11501,8 +13128,8 @@
"columnIds": [
"97RhPf67fDR-y6rT7cxfj"
],
- "x": 2268.0278,
- "y": 1435.666666666667,
+ "x": 2134.0658,
+ "y": 909.0087666666665,
"direction": 1
},
"meta": {
@@ -11520,8 +13147,8 @@
"columnIds": [
"_AcWUYKzNJd-V0fRHq8Cx"
],
- "x": 1418.6138,
- "y": 1225.1133,
+ "x": 1818.73,
+ "y": 780.8448000000001,
"direction": 2
},
"end": {
@@ -11529,8 +13156,8 @@
"columnIds": [
"QLwujC3DidC4GxXjEZ97x"
],
- "x": 2268.0278,
- "y": 1329.0000000000002,
+ "x": 2134.0658,
+ "y": 802.3420999999998,
"direction": 1
},
"meta": {
@@ -11548,8 +13175,8 @@
"columnIds": [
"mfHtgzc_Aeocr6xkgwYWh"
],
- "x": 1724.6512,
- "y": 669.2873999999999,
+ "x": 1631.6512,
+ "y": 307.2874,
"direction": 2
},
"end": {
@@ -11557,8 +13184,8 @@
"columnIds": [
"ShxQXt7QhnuRrZToBBUCA"
],
- "x": 2268.0278,
- "y": 1222.3333333333335,
+ "x": 2134.0658,
+ "y": 695.6754333333332,
"direction": 1
},
"meta": {
@@ -11576,8 +13203,8 @@
"columnIds": [
"N_yJVoCN4oUEDhYqdzApb"
],
- "x": 2119.9611999999997,
- "y": 1603.2679000000003,
+ "x": 2177.6859,
+ "y": 1710.7297,
"direction": 2
},
"end": {
@@ -11585,8 +13212,8 @@
"columnIds": [
"Tf4tatgNo1vCFMiLXWWzk"
],
- "x": 2419.0055,
- "y": 1714.9773,
+ "x": 2409.431,
+ "y": 1805.4028,
"direction": 1
},
"meta": {
@@ -11604,8 +13231,8 @@
"columnIds": [
"N_yJVoCN4oUEDhYqdzApb"
],
- "x": 2119.9611999999997,
- "y": 1725.934566666667,
+ "x": 2190.4518,
+ "y": 1751.8644666666669,
"direction": 2
},
"end": {
@@ -11613,18 +13240,1379 @@
"columnIds": [
"W0dMiAswDCER2eGLQpP7d"
],
- "x": 2421.5258,
- "y": 2085.3720000000003,
+ "x": 2374.7173,
+ "y": 1910.0528,
"direction": 1
},
"meta": {
"updateAt": 1755233489285,
"createAt": 1755233489285
}
+ },
+ "dWvabJpdOJEjnUnxIr-FY": {
+ "id": "dWvabJpdOJEjnUnxIr-FY",
+ "identification": false,
+ "relationshipType": 8,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "columnIds": [
+ "F9EPb6nsDx6Tf3GG8rvP1"
+ ],
+ "x": 1843.7829,
+ "y": 2102.5238,
+ "direction": 4
+ },
+ "end": {
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "columnIds": [
+ "SwRy3H1j9iLeKZBaLNyuR"
+ ],
+ "x": 1811.4029,
+ "y": 1853.2261,
+ "direction": 8
+ },
+ "meta": {
+ "updateAt": 1755243374402,
+ "createAt": 1755243363121
+ }
+ },
+ "_MlOr6HhQadixMDblX_Q-": {
+ "id": "_MlOr6HhQadixMDblX_Q-",
+ "identification": false,
+ "relationshipType": 8,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "ZLEpY5EjuZV21718zf-Y1",
+ "columnIds": [
+ "Id0h8QbOdlhPj9P1zTm5o"
+ ],
+ "x": 574.4684,
+ "y": 1744.4119,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "columnIds": [
+ "lN38gtO243yA3RiRYyPh3"
+ ],
+ "x": 1410.4029,
+ "y": 1633.2261000000003,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1755243720223,
+ "createAt": 1755243720223
+ }
+ },
+ "bYi-u1A04pZgulY6HERBf": {
+ "id": "bYi-u1A04pZgulY6HERBf",
+ "identification": false,
+ "relationshipType": 8,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "IsMoJXzvtuoOFFt93qS0w",
+ "columnIds": [
+ "dsz0no4QmTBs-HMbe_HtT"
+ ],
+ "x": 2371.1335,
+ "y": 1584.8919,
+ "direction": 1
+ },
+ "end": {
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "columnIds": [
+ "tjd351KGFBrDiA6-HqtdD"
+ ],
+ "x": 2212.4029,
+ "y": 1621.2261000000003,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1755243872669,
+ "createAt": 1755243872669
+ }
+ },
+ "B-7EcwF30QEcT0HJ19tGB": {
+ "id": "B-7EcwF30QEcT0HJ19tGB",
+ "identification": false,
+ "relationshipType": 8,
+ "startRelationshipType": 1,
+ "start": {
+ "tableId": "RTq5rHQupiXXJPXqpN8K5",
+ "columnIds": [
+ "zBz4vBOZSIA8vKmfqXckO"
+ ],
+ "x": 2374.7173,
+ "y": 1898.0528,
+ "direction": 1
+ },
+ "end": {
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "columnIds": [
+ "GLfaIN6fDx3gqmEichxBM"
+ ],
+ "x": 2212.4029,
+ "y": 1751.892766666667,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1755244650005,
+ "createAt": 1755244650005
+ }
+ },
+ "QzSvNp81iKRqd3sb6aISf": {
+ "id": "QzSvNp81iKRqd3sb6aISf",
+ "identification": false,
+ "relationshipType": 8,
+ "startRelationshipType": 1,
+ "start": {
+ "tableId": "SEgsi7mbM-56Rsx5-qj8K",
+ "columnIds": [
+ "PuLZie9O9warTXzmBPj3F"
+ ],
+ "x": 577.2163,
+ "y": 2100.6591,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "columnIds": [
+ "uwo4oDDnBN4kfBPECG8KI"
+ ],
+ "x": 1410.4029,
+ "y": 1695.2261,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1755244696995,
+ "createAt": 1755244696995
+ }
+ },
+ "kITBao6-8P7SK_ff97k-2": {
+ "id": "kITBao6-8P7SK_ff97k-2",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "columnIds": [
+ "N_yJVoCN4oUEDhYqdzApb"
+ ],
+ "x": 1410.4029,
+ "y": 1633.2261000000003,
+ "direction": 1
+ },
+ "end": {
+ "tableId": "vE9CQplxcHu3VwgfvH6Ip",
+ "columnIds": [
+ "ETT9KRDf_r30ZaIHw_W4Z"
+ ],
+ "x": 1168.7528,
+ "y": 1674.3665,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1755245232309,
+ "createAt": 1755245232309
+ }
+ },
+ "OQwW56YRRoBNxUBnOtY2d": {
+ "id": "OQwW56YRRoBNxUBnOtY2d",
+ "identification": false,
+ "relationshipType": 8,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "IsMoJXzvtuoOFFt93qS0w",
+ "columnIds": [
+ "dsz0no4QmTBs-HMbe_HtT"
+ ],
+ "x": 2136.9627,
+ "y": 1113.1846,
+ "direction": 1
+ },
+ "end": {
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "columnIds": [
+ "xlQ24QCitYSSl-z8f2vqG"
+ ],
+ "x": 1793.3577,
+ "y": 1377.9382666666668,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1755245596234,
+ "createAt": 1755245596234
+ }
+ },
+ "H4am77J3J4Na7-rDOKmfd": {
+ "id": "H4am77J3J4Na7-rDOKmfd",
+ "identification": false,
+ "relationshipType": 8,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "columnIds": [
+ "F9EPb6nsDx6Tf3GG8rvP1"
+ ],
+ "x": 592.4539,
+ "y": 2219.8416,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "columnIds": [
+ "uTP3S6LnZ80gfxyTqBFS4"
+ ],
+ "x": 987.3577,
+ "y": 1589.938266666667,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1755245649050,
+ "createAt": 1755245649050
+ }
+ },
+ "9GYOocaxnboV8D9kxQeS3": {
+ "id": "9GYOocaxnboV8D9kxQeS3",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 1,
+ "start": {
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "columnIds": [
+ "N_yJVoCN4oUEDhYqdzApb"
+ ],
+ "x": 987.3577,
+ "y": 1248.6049333333335,
+ "direction": 1
+ },
+ "end": {
+ "tableId": "ZLEpY5EjuZV21718zf-Y1",
+ "columnIds": [
+ "k89CgIzT1rfGpbRQYrMMV"
+ ],
+ "x": 700.6879,
+ "y": 1629.485,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1755245813502,
+ "createAt": 1755245813502
+ }
+ },
+ "UsRTM6HH-m4I_Yj-PMq67": {
+ "id": "UsRTM6HH-m4I_Yj-PMq67",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 1,
+ "start": {
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "columnIds": [
+ "N_yJVoCN4oUEDhYqdzApb"
+ ],
+ "x": 987.3577,
+ "y": 1419.2716000000003,
+ "direction": 1
+ },
+ "end": {
+ "tableId": "SEgsi7mbM-56Rsx5-qj8K",
+ "columnIds": [
+ "SlovGoAbswPj9pLEDGAO_"
+ ],
+ "x": 602.2894,
+ "y": 1965.1714,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1755246043287,
+ "createAt": 1755246043287
+ }
+ },
+ "YMXMe_cfZm9_w1-6ezGAI": {
+ "id": "YMXMe_cfZm9_w1-6ezGAI",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "columnIds": [
+ "N_yJVoCN4oUEDhYqdzApb"
+ ],
+ "x": 984.3577,
+ "y": 1947.938266666667,
+ "direction": 1
+ },
+ "end": {
+ "tableId": "RTq5rHQupiXXJPXqpN8K5",
+ "columnIds": [
+ "9CjuC803WcessEwff6HMj"
+ ],
+ "x": 614.7905,
+ "y": 2447.8575,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1755246082073,
+ "createAt": 1755246082073
+ }
+ },
+ "Gi6PQuZotHyfjLoLguJZD": {
+ "id": "Gi6PQuZotHyfjLoLguJZD",
+ "identification": false,
+ "relationshipType": 8,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "ZMGIWLFEswObjH2Sx0NlW",
+ "columnIds": [
+ "2HB01q46-mugMjuOz85YG"
+ ],
+ "x": 2193.8551,
+ "y": 2169.6757,
+ "direction": 1
+ },
+ "end": {
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "columnIds": [
+ "PPYMa0hTpupMnPEWZEVp6"
+ ],
+ "x": 1401.4539,
+ "y": 2230.8416,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1755246555369,
+ "createAt": 1755246555369
+ }
+ },
+ "qNiuNG8jl-wxHmt0ja2NO": {
+ "id": "qNiuNG8jl-wxHmt0ja2NO",
+ "identification": false,
+ "relationshipType": 8,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "W_lPWGav23vY_3307ANtm",
+ "columnIds": [
+ "0foA-8vQXe0ELhwLwMbSV"
+ ],
+ "x": 2198.0001,
+ "y": 2431.4885,
+ "direction": 1
+ },
+ "end": {
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "columnIds": [
+ "SlbGqJXf-rNePjMEvRIsr"
+ ],
+ "x": 1401.4539,
+ "y": 2322.8415999999997,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1755246873484,
+ "createAt": 1755246873484
+ }
+ },
+ "OGoh72K3oj3mjMp5_fkbb": {
+ "id": "OGoh72K3oj3mjMp5_fkbb",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "columnIds": [
+ "F9EPb6nsDx6Tf3GG8rvP1"
+ ],
+ "x": 592.4539,
+ "y": 2441.8416,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "y6LxJSy1rKRbGC1ANZKOG",
+ "columnIds": [
+ "obuByh1ZWHr1IIkvgrbWr"
+ ],
+ "x": 1089.4145,
+ "y": 2350.3422,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1755247159760,
+ "createAt": 1755247159760
+ }
+ },
+ "mH_TEHhIXPHYKYEXq2olR": {
+ "id": "mH_TEHhIXPHYKYEXq2olR",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "y6LxJSy1rKRbGC1ANZKOG",
+ "columnIds": [
+ "WfUhhigWFoqSS1vz3dWPx"
+ ],
+ "x": 2003.5122,
+ "y": 2509.7323,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "Dc6xDx_iwsVF1Z9ks1gPh",
+ "columnIds": [
+ "WIa81CxRFY76H8y3AD0z-"
+ ],
+ "x": 2201.2195,
+ "y": 2382.9521,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1755247405336,
+ "createAt": 1755247405336
+ }
+ },
+ "4feDg2-ittS_qtT7y9Xtm": {
+ "id": "4feDg2-ittS_qtT7y9Xtm",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "Dc6xDx_iwsVF1Z9ks1gPh",
+ "columnIds": [
+ "CxChVMNZ0-lR_Qis-x2vD"
+ ],
+ "x": 2195.6054,
+ "y": 2378.7945,
+ "direction": 1
+ },
+ "end": {
+ "tableId": "y6LxJSy1rKRbGC1ANZKOG",
+ "columnIds": [
+ "zd1xXBB6j-idV0F9EHSJ5"
+ ],
+ "x": 1553.8693,
+ "y": 2491.2512,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1755247786767,
+ "createAt": 1755247786767
+ }
+ },
+ "uLLzI8qiH1m1AzGwyXyIH": {
+ "id": "uLLzI8qiH1m1AzGwyXyIH",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 1,
+ "start": {
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "columnIds": [
+ "F9EPb6nsDx6Tf3GG8rvP1"
+ ],
+ "x": 901.4539,
+ "y": 2381.8416,
+ "direction": 1
+ },
+ "end": {
+ "tableId": "oNuTAELQcUrUMGz3PRJIW",
+ "columnIds": [
+ "GyUE9E-9dNJyvlHKOedDq"
+ ],
+ "x": 603.7806,
+ "y": 2427.3665,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1755249801944,
+ "createAt": 1755249801944
+ }
+ },
+ "GHmupz9UOcqbMfH8khXZx": {
+ "id": "GHmupz9UOcqbMfH8khXZx",
+ "identification": false,
+ "relationshipType": 8,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "IsMoJXzvtuoOFFt93qS0w",
+ "columnIds": [
+ "dsz0no4QmTBs-HMbe_HtT"
+ ],
+ "x": 2197.9627,
+ "y": 1615.1846,
+ "direction": 1
+ },
+ "end": {
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "columnIds": [
+ "DBfXQ1o8_Uwy01-FyjWz0"
+ ],
+ "x": 1399.4539,
+ "y": 2199.8416,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1755355032132,
+ "createAt": 1755355032132
+ }
+ },
+ "6zhyWhPLK2REv99ouzbS_": {
+ "id": "6zhyWhPLK2REv99ouzbS_",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "columnIds": [
+ "F9EPb6nsDx6Tf3GG8rvP1"
+ ],
+ "x": 592.4539,
+ "y": 2293.8416,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "8GYAVBvZGaMFeq3QuXk_B",
+ "columnIds": [
+ "CvilrbKyyz1NnLPndNkb8"
+ ],
+ "x": 1075,
+ "y": 1816,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1755476547241,
+ "createAt": 1755476547241
+ }
+ },
+ "ErucR4-YqniMnUrcdsKJp": {
+ "id": "ErucR4-YqniMnUrcdsKJp",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "ZMGIWLFEswObjH2Sx0NlW",
+ "columnIds": [
+ "2HB01q46-mugMjuOz85YG"
+ ],
+ "x": 1933.1733,
+ "y": 1990.1302,
+ "direction": 1
+ },
+ "end": {
+ "tableId": "8GYAVBvZGaMFeq3QuXk_B",
+ "columnIds": [
+ "x23F_sFvFpqLOXzldHBFn"
+ ],
+ "x": 1539.682,
+ "y": 2064.5905000000002,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1755476572319,
+ "createAt": 1755476572319
+ }
+ },
+ "cg6r5rpX4cJsqE85x4-uy": {
+ "id": "cg6r5rpX4cJsqE85x4-uy",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "columnIds": [
+ "F9EPb6nsDx6Tf3GG8rvP1"
+ ],
+ "x": 592.4539,
+ "y": 2367.8416,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "XWDManpabF2tsIxhMejP6",
+ "columnIds": [
+ "lkmohF33yJzxDKZgvYZi7"
+ ],
+ "x": 1083,
+ "y": 2082,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1755476673143,
+ "createAt": 1755476673143
+ }
+ },
+ "SkiC6sB1ojvkODhsS60ld": {
+ "id": "SkiC6sB1ojvkODhsS60ld",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "W_lPWGav23vY_3307ANtm",
+ "columnIds": [
+ "0foA-8vQXe0ELhwLwMbSV"
+ ],
+ "x": 2233.0456,
+ "y": 2153.3067,
+ "direction": 1
+ },
+ "end": {
+ "tableId": "XWDManpabF2tsIxhMejP6",
+ "columnIds": [
+ "M4sylK12L-sbwc460lHp7"
+ ],
+ "x": 1541.7273,
+ "y": 2345.5455,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1755476695269,
+ "createAt": 1755476695269
+ }
+ },
+ "nXhazg5e2HfhSM91-NHLo": {
+ "id": "nXhazg5e2HfhSM91-NHLo",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "SEgsi7mbM-56Rsx5-qj8K",
+ "columnIds": [
+ "PuLZie9O9warTXzmBPj3F"
+ ],
+ "x": 592.2894,
+ "y": 1910.1714,
+ "direction": 4
+ },
+ "end": {
+ "tableId": "SEgsi7mbM-56Rsx5-qj8K",
+ "columnIds": [
+ "QntZma68vv35q1xARB2R4"
+ ],
+ "x": 612.2894,
+ "y": 2186.1714,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1755476992395,
+ "createAt": 1755476992395
+ }
+ },
+ "it74kJbg40Z9_cjVIisPD": {
+ "id": "it74kJbg40Z9_cjVIisPD",
+ "identification": false,
+ "relationshipType": 8,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "columnIds": [
+ "34psXzS7RLX0sWXZyDGGf"
+ ],
+ "x": 586.4539,
+ "y": 1594.0416,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "columnIds": [
+ "oUDsRmvN4I4k7BNNJR0y4"
+ ],
+ "x": 935.3577,
+ "y": 1189.2716,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1755479448345,
+ "createAt": 1755479448345
+ }
+ },
+ "dBaoBapnKwtLBRKiHqyTL": {
+ "id": "dBaoBapnKwtLBRKiHqyTL",
+ "identification": false,
+ "relationshipType": 8,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "columnIds": [
+ "1ZM86qoxmCcoKnqOpE2oj"
+ ],
+ "x": 987.3577,
+ "y": 1285.2716,
+ "direction": 1
+ },
+ "end": {
+ "tableId": "ZLEpY5EjuZV21718zf-Y1",
+ "columnIds": [
+ "RUTBvn2-51hfNG7Adcbh-"
+ ],
+ "x": 700.6879,
+ "y": 1629.485,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1755479688215,
+ "createAt": 1755479688215
+ }
+ },
+ "igy5Ns2bjd79UocDnODgu": {
+ "id": "igy5Ns2bjd79UocDnODgu",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "columnIds": [
+ "1ZM86qoxmCcoKnqOpE2oj"
+ ],
+ "x": 1676.3029000000001,
+ "y": 1312.5866999999998,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "MgyqOOvja_MGR3f4xNT8T",
+ "columnIds": [
+ "VUPZdWS7fM1J2QstRq4KR"
+ ],
+ "x": 2134.0658,
+ "y": 909.0087666666665,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1755479812192,
+ "createAt": 1755479812192
+ }
+ },
+ "-6P0QeZZJQRJ5_ZQjzb1M": {
+ "id": "-6P0QeZZJQRJ5_ZQjzb1M",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "columnIds": [
+ "1ZM86qoxmCcoKnqOpE2oj"
+ ],
+ "x": 1676.3029000000001,
+ "y": 1116.5866999999998,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "QCNA57Pi6A9dJDgybxS5v",
+ "columnIds": [
+ "LRN5qjIRZ18UOhqFbBLuo"
+ ],
+ "x": 2122.464,
+ "y": 492.6241666666667,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1755479838515,
+ "createAt": 1755479838515
+ }
+ },
+ "5p6IeLChVoXSw9jrqw-QW": {
+ "id": "5p6IeLChVoXSw9jrqw-QW",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "columnIds": [
+ "34psXzS7RLX0sWXZyDGGf"
+ ],
+ "x": 597.5172,
+ "y": 2102.0074000000004,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "8GYAVBvZGaMFeq3QuXk_B",
+ "columnIds": [
+ "mOdd3p43Qb4VStgr1nWHB"
+ ],
+ "x": 1041.4963,
+ "y": 2482.8691,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1755479899081,
+ "createAt": 1755479899081
+ }
+ },
+ "cQhYkZcViYZwsv7f_k2ZC": {
+ "id": "cQhYkZcViYZwsv7f_k2ZC",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "columnIds": [
+ "34psXzS7RLX0sWXZyDGGf"
+ ],
+ "x": 597.5172,
+ "y": 2057.6074,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "XWDManpabF2tsIxhMejP6",
+ "columnIds": [
+ "cp6LM5PcjxQXXXksE7tCl"
+ ],
+ "x": 1024.2728,
+ "y": 2310.3182,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1755479916812,
+ "createAt": 1755479916812
+ }
+ },
+ "svMBHbKKROqCgBpsX-WI7": {
+ "id": "svMBHbKKROqCgBpsX-WI7",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "columnIds": [
+ "34psXzS7RLX0sWXZyDGGf"
+ ],
+ "x": 597.5172,
+ "y": 2106.9407333333334,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "y6LxJSy1rKRbGC1ANZKOG",
+ "columnIds": [
+ "YqJDZb-w4dCpGDbMaNC0j"
+ ],
+ "x": 1031.8693,
+ "y": 2491.2512,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1755479930090,
+ "createAt": 1755479930090
+ }
+ },
+ "e57qOlaGNqgfNVFBAoaDa": {
+ "id": "e57qOlaGNqgfNVFBAoaDa",
+ "identification": false,
+ "relationshipType": 8,
+ "startRelationshipType": 1,
+ "start": {
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "columnIds": [
+ "34psXzS7RLX0sWXZyDGGf"
+ ],
+ "x": 597.5172,
+ "y": 1924.4074000000003,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "IsMoJXzvtuoOFFt93qS0w",
+ "columnIds": [
+ "Li6TetD-ZbH9MNKGAK0im"
+ ],
+ "x": 1038.208,
+ "y": 1564.4414,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1755480385013,
+ "createAt": 1755480385013
+ }
+ },
+ "VT_VzA9IwipmXjafcw9Mz": {
+ "id": "VT_VzA9IwipmXjafcw9Mz",
+ "identification": false,
+ "relationshipType": 8,
+ "startRelationshipType": 1,
+ "start": {
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "columnIds": [
+ "34psXzS7RLX0sWXZyDGGf"
+ ],
+ "x": 588.5172,
+ "y": 1899.0359714285714,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "ZLEpY5EjuZV21718zf-Y1",
+ "columnIds": [
+ "sWwdum3AkxFncLEFPN1CM"
+ ],
+ "x": 1008.6879,
+ "y": 1556.485,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1755480470466,
+ "createAt": 1755480470466
+ }
+ },
+ "3I5RkYjnDcuksJVgH8Jk4": {
+ "id": "3I5RkYjnDcuksJVgH8Jk4",
+ "identification": false,
+ "relationshipType": 8,
+ "startRelationshipType": 1,
+ "start": {
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "columnIds": [
+ "1ZM86qoxmCcoKnqOpE2oj"
+ ],
+ "x": 935.3577,
+ "y": 1177.2716,
+ "direction": 1
+ },
+ "end": {
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "columnIds": [
+ "1R3FQnBR2tpSdfkj3jipU"
+ ],
+ "x": 588.4539,
+ "y": 1596.4416,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1755480802836,
+ "createAt": 1755480802836
+ }
+ },
+ "yNXavIEUyRz9ijpnoapzg": {
+ "id": "yNXavIEUyRz9ijpnoapzg",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 1,
+ "start": {
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "columnIds": [
+ "1ZM86qoxmCcoKnqOpE2oj"
+ ],
+ "x": 883.3029,
+ "y": 1214.5866999999998,
+ "direction": 1
+ },
+ "end": {
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "columnIds": [
+ "3fZMQ9qB1DO8y44eJRKdt"
+ ],
+ "x": 597.5172,
+ "y": 1865.2074000000002,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1755481142307,
+ "createAt": 1755481142307
+ }
+ },
+ "1HarGgIch-Dmeztx6OVBZ": {
+ "id": "1HarGgIch-Dmeztx6OVBZ",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "columnIds": [
+ "34psXzS7RLX0sWXZyDGGf"
+ ],
+ "x": 597.5172,
+ "y": 2110.4645428571425,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "N9Zu0JeQXBcwLiuCqLotP",
+ "columnIds": [
+ "qDieUIrgCa3bzZX6OWKcC"
+ ],
+ "x": 1036.2266,
+ "y": 2705.3851,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1755481487973,
+ "createAt": 1755481487973
+ }
+ },
+ "H0lzYKil7HgQU_yubc4sz": {
+ "id": "H0lzYKil7HgQU_yubc4sz",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "oNuTAELQcUrUMGz3PRJIW",
+ "columnIds": [
+ "bBO5EQFcFAnvhtm8mQaiG"
+ ],
+ "x": 2140.1897,
+ "y": 2676.5029,
+ "direction": 1
+ },
+ "end": {
+ "tableId": "N9Zu0JeQXBcwLiuCqLotP",
+ "columnIds": [
+ "nUQNtDBUrs6SFI5OPk5gp"
+ ],
+ "x": 1586.2266,
+ "y": 2705.3851,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1755481519997,
+ "createAt": 1755481519997
+ }
+ },
+ "ZIpohNrObd9sUVPeJmbkq": {
+ "id": "ZIpohNrObd9sUVPeJmbkq",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "columnIds": [
+ "34psXzS7RLX0sWXZyDGGf"
+ ],
+ "x": 597.5172,
+ "y": 2020.6074,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "Pa1u61sIGvzDtItserV5k",
+ "columnIds": [
+ "_bHdGsO8d_89L_gSiQRmG"
+ ],
+ "x": 1014.3771,
+ "y": 1883.1031,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1755481631894,
+ "createAt": 1755481631894
+ }
+ },
+ "ZSp55xN4vwUYGz_Vth2aV": {
+ "id": "ZSp55xN4vwUYGz_Vth2aV",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "SEgsi7mbM-56Rsx5-qj8K",
+ "columnIds": [
+ "PuLZie9O9warTXzmBPj3F"
+ ],
+ "x": 2143.1217,
+ "y": 1706.2916,
+ "direction": 1
+ },
+ "end": {
+ "tableId": "Pa1u61sIGvzDtItserV5k",
+ "columnIds": [
+ "wI0MMNv14UOrTsaYp1Iwo"
+ ],
+ "x": 1536.3771000000002,
+ "y": 1883.1031,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1755481643217,
+ "createAt": 1755481643217
+ }
+ },
+ "-innuV4-s0XLM5nzcY6qH": {
+ "id": "-innuV4-s0XLM5nzcY6qH",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 1,
+ "start": {
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "columnIds": [
+ "34psXzS7RLX0sWXZyDGGf"
+ ],
+ "x": 597.5172,
+ "y": 1983.6074000000003,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "ZLEpY5EjuZV21718zf-Y1",
+ "columnIds": [
+ "6i-Ag5fvYugIDFg9tH3HA"
+ ],
+ "x": 1039.1227,
+ "y": 1839.0937,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1755481788806,
+ "createAt": 1755481788806
+ }
+ },
+ "29R_28dluuNshr0cYiWmK": {
+ "id": "29R_28dluuNshr0cYiWmK",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "6ajvOCaGuXU9pzV0Y9jEi",
+ "columnIds": [
+ "n7IyDCZLDqfEo49XRYtYR"
+ ],
+ "x": 1552.23,
+ "y": 860.8448000000001,
+ "direction": 8
+ },
+ "end": {
+ "tableId": "B8haiEbPc1lRBWTv1g25G",
+ "columnIds": [
+ "0LanT5cVJX_uBb0Foh2NM"
+ ],
+ "x": 1478.0529000000001,
+ "y": 1018.5867,
+ "direction": 4
+ },
+ "meta": {
+ "updateAt": 1755483330609,
+ "createAt": 1755483330609
+ }
+ },
+ "NMZvzyFkfEHAC1ky3ra_L": {
+ "id": "NMZvzyFkfEHAC1ky3ra_L",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "6ajvOCaGuXU9pzV0Y9jEi",
+ "columnIds": [
+ "n7IyDCZLDqfEo49XRYtYR"
+ ],
+ "x": 1818.73,
+ "y": 566.8448000000001,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "QCNA57Pi6A9dJDgybxS5v",
+ "columnIds": [
+ "QwfRq6xU7Vy-QoenynjXR"
+ ],
+ "x": 2122.464,
+ "y": 385.95750000000004,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1755483359049,
+ "createAt": 1755483359049
+ }
+ },
+ "K6ujfXDMBCmHruD8sWvXo": {
+ "id": "K6ujfXDMBCmHruD8sWvXo",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "6ajvOCaGuXU9pzV0Y9jEi",
+ "columnIds": [
+ "n7IyDCZLDqfEo49XRYtYR"
+ ],
+ "x": 1818.73,
+ "y": 762.8448000000001,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "MgyqOOvja_MGR3f4xNT8T",
+ "columnIds": [
+ "VBy1PXlflYSQGeLRXkD3l"
+ ],
+ "x": 2134.0658,
+ "y": 802.3420999999998,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1755483387662,
+ "createAt": 1755483387662
+ }
+ },
+ "VroEhP44BVBCHx9WyFjhm": {
+ "id": "VroEhP44BVBCHx9WyFjhm",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "6ajvOCaGuXU9pzV0Y9jEi",
+ "columnIds": [
+ "n7IyDCZLDqfEo49XRYtYR"
+ ],
+ "x": 1285.73,
+ "y": 534.1781333333333,
+ "direction": 1
+ },
+ "end": {
+ "tableId": "GDEF0_WuOpaYtsZxjn2zM",
+ "columnIds": [
+ "7e7kPIVKM4VrUWTZADe-5"
+ ],
+ "x": 600.5444,
+ "y": 720.2669000000001,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1755483441006,
+ "createAt": 1755483441006
+ }
+ },
+ "2UJ97eZArC3FeTkEjPTUl": {
+ "id": "2UJ97eZArC3FeTkEjPTUl",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "6ajvOCaGuXU9pzV0Y9jEi",
+ "columnIds": [
+ "n7IyDCZLDqfEo49XRYtYR"
+ ],
+ "x": 1285.73,
+ "y": 664.8448,
+ "direction": 1
+ },
+ "end": {
+ "tableId": "jO40Ej5EXImXnadoJo9bn",
+ "columnIds": [
+ "YdLa5geill88c3UM5a_YR"
+ ],
+ "x": 603.7146,
+ "y": 1035.2656,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1755483519967,
+ "createAt": 1755483519967
+ }
+ },
+ "uTwhO_6djzNzMFo8rwOSQ": {
+ "id": "uTwhO_6djzNzMFo8rwOSQ",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 1,
+ "start": {
+ "tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
+ "columnIds": [
+ "34psXzS7RLX0sWXZyDGGf"
+ ],
+ "x": 597.5172,
+ "y": 2042.8074000000004,
+ "direction": 2
+ },
+ "end": {
+ "tableId": "SEgsi7mbM-56Rsx5-qj8K",
+ "columnIds": [
+ "pcpeNmSmqH_DtbRLyaYv9"
+ ],
+ "x": 1038.6154,
+ "y": 2163.4485,
+ "direction": 1
+ },
+ "meta": {
+ "updateAt": 1755486550772,
+ "createAt": 1755486550772
+ }
+ },
+ "FjAORncWifI_a1aI6e0LJ": {
+ "id": "FjAORncWifI_a1aI6e0LJ",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "ZMGIWLFEswObjH2Sx0NlW",
+ "columnIds": [
+ "2HB01q46-mugMjuOz85YG"
+ ],
+ "x": 2167.0921,
+ "y": 2310.3344,
+ "direction": 1
+ },
+ "end": {
+ "tableId": "8GYAVBvZGaMFeq3QuXk_B",
+ "columnIds": [
+ "l2g7xess8DY86_ZOm7Ca1"
+ ],
+ "x": 1597.4963,
+ "y": 2482.8691,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1755486693704,
+ "createAt": 1755486693704
+ }
+ },
+ "qVSQf-uiaof7exFrBC68_": {
+ "id": "qVSQf-uiaof7exFrBC68_",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "Jq5Qkun2FzQhCGKANIVOZ",
+ "columnIds": [
+ "mfHtgzc_Aeocr6xkgwYWh"
+ ],
+ "x": 1128.6512,
+ "y": 344.2874,
+ "direction": 1
+ },
+ "end": {
+ "tableId": "PdXX5ghGi8ZK89G9OjtnQ",
+ "columnIds": [
+ "z86v6qGtWsrVhzZfUo_7d"
+ ],
+ "x": 608.4191,
+ "y": 1193.6232,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1755488677087,
+ "createAt": 1755488677087
+ }
+ },
+ "TkraffhuWi06www9bNecX": {
+ "id": "TkraffhuWi06www9bNecX",
+ "identification": false,
+ "relationshipType": 16,
+ "startRelationshipType": 2,
+ "start": {
+ "tableId": "6ajvOCaGuXU9pzV0Y9jEi",
+ "columnIds": [
+ "n7IyDCZLDqfEo49XRYtYR"
+ ],
+ "x": 1285.73,
+ "y": 795.5114666666666,
+ "direction": 1
+ },
+ "end": {
+ "tableId": "PdXX5ghGi8ZK89G9OjtnQ",
+ "columnIds": [
+ "QD0EVLU6BeTsEsNO3MAgd"
+ ],
+ "x": 608.4191,
+ "y": 1329.6232,
+ "direction": 2
+ },
+ "meta": {
+ "updateAt": 1755488700401,
+ "createAt": 1755488700401
+ }
}
},
"indexEntities": {},
"indexColumnEntities": {},
- "memoEntities": {}
+ "memoEntities": {
+ "d30wBLeMKKvv4a59vIp-W": {
+ "id": "d30wBLeMKKvv4a59vIp-W",
+ "value": "",
+ "ui": {
+ "x": 203,
+ "y": 1069,
+ "zIndex": 4838,
+ "width": 116,
+ "height": 100,
+ "color": ""
+ },
+ "meta": {
+ "updateAt": 1755480369678,
+ "createAt": 1755480369678
+ }
+ }
+ }
}
}
\ No newline at end of file
diff --git a/app/Database/dbmsv2_init.sql b/app/Database/dbmsv2_init.sql
index 256ca7e..0c9cab0 100644
--- a/app/Database/dbmsv2_init.sql
+++ b/app/Database/dbmsv2_init.sql
@@ -15,6 +15,492 @@
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+--
+-- Table structure for table `accountinfo`
+--
+
+DROP TABLE IF EXISTS `accountinfo`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `accountinfo` (
+ `uid` int(11) NOT NULL AUTO_INCREMENT,
+ `userinfo_uid` int(11) NOT NULL COMMENT '관리자정보',
+ `clientinfo_code` varchar(20) NOT NULL COMMENT '고객코드',
+ `bank` int(11) NOT NULL COMMENT '은행',
+ `title` varchar(255) NOT NULL COMMENT '사유',
+ `alias` varchar(50) NOT NULL COMMENT '입출금자명',
+ `issue_at` date NOT NULL COMMENT '입출금일자',
+ `amount` int(11) NOT NULL DEFAULT 0 COMMENT '압출금액',
+ `status` varchar(20) NOT NULL DEFAULT 'default',
+ `updated_at` timestamp NULL DEFAULT NULL,
+ `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
+ `deleted_at` timestamp NULL DEFAULT NULL,
+ PRIMARY KEY (`uid`),
+ KEY `FK_user_TO_accountinfo` (`userinfo_uid`),
+ KEY `FK_clientinfo_TO_accountinfo` (`clientinfo_code`),
+ CONSTRAINT `FK_clientinfo_TO_accountinfo` FOREIGN KEY (`clientinfo_code`) REFERENCES `clientinfo` (`code`),
+ CONSTRAINT `FK_user_TO_accountinfo` FOREIGN KEY (`userinfo_uid`) REFERENCES `user` (`uid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='예치금계좌';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `accountinfo`
+--
+
+LOCK TABLES `accountinfo` WRITE;
+/*!40000 ALTER TABLE `accountinfo` DISABLE KEYS */;
+/*!40000 ALTER TABLE `accountinfo` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Table structure for table `clientinfo`
+--
+
+DROP TABLE IF EXISTS `clientinfo`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `clientinfo` (
+ `code` varchar(20) NOT NULL COMMENT '고객코드',
+ `user_uid` int(11) NOT NULL COMMENT '관리자정보',
+ `role` varchar(50) NOT NULL DEFAULT 'user',
+ `name` varchar(100) NOT NULL,
+ `phone` varchar(50) DEFAULT NULL,
+ `email` varchar(50) NOT NULL,
+ `history` text DEFAULT NULL COMMENT 'history',
+ `account_balance` int(11) NOT NULL DEFAULT 0 COMMENT '예치금',
+ `coupon_balance` int(11) NOT NULL DEFAULT 0 COMMENT '쿠폰수',
+ `point_balance` int(11) NOT NULL DEFAULT 0 COMMENT '포인트',
+ `status` varchar(20) NOT NULL DEFAULT 'default',
+ `updated_at` timestamp NULL DEFAULT NULL,
+ `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
+ `deleted_at` timestamp NULL DEFAULT NULL,
+ PRIMARY KEY (`code`),
+ UNIQUE KEY `UQ_name` (`name`),
+ KEY `FK_user_TO_clientinfo` (`user_uid`),
+ CONSTRAINT `FK_user_TO_clientinfo` FOREIGN KEY (`user_uid`) REFERENCES `user` (`uid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='고객정보';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `clientinfo`
+--
+
+LOCK TABLES `clientinfo` WRITE;
+/*!40000 ALTER TABLE `clientinfo` DISABLE KEYS */;
+/*!40000 ALTER TABLE `clientinfo` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Table structure for table `couponinfo`
+--
+
+DROP TABLE IF EXISTS `couponinfo`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `couponinfo` (
+ `uid` int(11) NOT NULL AUTO_INCREMENT,
+ `userinfo_uid` int(11) NOT NULL COMMENT '관리자정보',
+ `clientinfo_code` varchar(20) NOT NULL COMMENT '고객코드',
+ `title` varchar(255) NOT NULL,
+ `cnt` int(11) NOT NULL DEFAULT 0 COMMENT '갯수',
+ `status` varchar(20) NOT NULL DEFAULT 'default',
+ `updated_at` timestamp NULL DEFAULT NULL,
+ `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
+ `deleted_at` timestamp NULL DEFAULT NULL,
+ PRIMARY KEY (`uid`),
+ KEY `FK_user_TO_couponinfo` (`userinfo_uid`),
+ KEY `FK_clientinfo_TO_couponinfo` (`clientinfo_code`),
+ CONSTRAINT `FK_clientinfo_TO_couponinfo` FOREIGN KEY (`clientinfo_code`) REFERENCES `clientinfo` (`code`),
+ CONSTRAINT `FK_user_TO_couponinfo` FOREIGN KEY (`userinfo_uid`) REFERENCES `user` (`uid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='쿠폰정보';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `couponinfo`
+--
+
+LOCK TABLES `couponinfo` WRITE;
+/*!40000 ALTER TABLE `couponinfo` DISABLE KEYS */;
+/*!40000 ALTER TABLE `couponinfo` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Table structure for table `csinfo`
+--
+
+DROP TABLE IF EXISTS `csinfo`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `csinfo` (
+ `uid` int(11) NOT NULL AUTO_INCREMENT,
+ `serverinfo_code` varchar(20) DEFAULT NULL COMMENT '서버코드',
+ `type` varchar(20) NOT NULL COMMENT '구분(KCS,VCS)',
+ `ip` varchar(50) NOT NULL,
+ `accountid` varchar(50) DEFAULT NULL,
+ `domain` varchar(100) DEFAULT NULL,
+ `price` int(11) NOT NULL DEFAULT 0 COMMENT '기본금액',
+ `amount` int(11) NOT NULL DEFAULT 0 COMMENT '서비스금액',
+ `status` varchar(20) NOT NULL DEFAULT 'default',
+ `updated_at` timestamp NULL DEFAULT NULL,
+ `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
+ `deleted_at` timestamp NULL DEFAULT NULL,
+ PRIMARY KEY (`uid`),
+ UNIQUE KEY `UQ_ip` (`ip`),
+ KEY `FK_serverinfo_TO_csinfo` (`serverinfo_code`),
+ CONSTRAINT `FK_serverinfo_TO_csinfo` FOREIGN KEY (`serverinfo_code`) REFERENCES `serverinfo` (`code`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='CS정보(한서버 여러개 앞단 등록가능)';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `csinfo`
+--
+
+LOCK TABLES `csinfo` WRITE;
+/*!40000 ALTER TABLE `csinfo` DISABLE KEYS */;
+/*!40000 ALTER TABLE `csinfo` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Table structure for table `ipinfo`
+--
+
+DROP TABLE IF EXISTS `ipinfo`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `ipinfo` (
+ `uid` int(11) NOT NULL AUTO_INCREMENT,
+ `lineinfo_uid` int(11) NOT NULL COMMENT '회선정보',
+ `serverinfo_code` varchar(20) DEFAULT NULL COMMENT '서버코드',
+ `ip` char(16) NOT NULL,
+ `price` int(11) NOT NULL DEFAULT 0 COMMENT '기본금액',
+ `amount` int(11) NOT NULL DEFAULT 0 COMMENT '서비스금액',
+ `status` varchar(20) NOT NULL DEFAULT 'default',
+ `updated_at` timestamp NULL DEFAULT NULL,
+ `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
+ `deleted_at` timestamp NULL DEFAULT NULL,
+ PRIMARY KEY (`uid`),
+ UNIQUE KEY `UQ_ip` (`ip`),
+ KEY `FK_lineinfo_TO_ipinfo` (`lineinfo_uid`),
+ KEY `FK_serverinfo_TO_ipinfo` (`serverinfo_code`),
+ CONSTRAINT `FK_lineinfo_TO_ipinfo` FOREIGN KEY (`lineinfo_uid`) REFERENCES `lineinfo` (`uid`),
+ CONSTRAINT `FK_serverinfo_TO_ipinfo` FOREIGN KEY (`serverinfo_code`) REFERENCES `serverinfo` (`code`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=' IP 정보';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `ipinfo`
+--
+
+LOCK TABLES `ipinfo` WRITE;
+/*!40000 ALTER TABLE `ipinfo` DISABLE KEYS */;
+/*!40000 ALTER TABLE `ipinfo` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Table structure for table `lineinfo`
+--
+
+DROP TABLE IF EXISTS `lineinfo`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `lineinfo` (
+ `uid` int(11) NOT NULL AUTO_INCREMENT,
+ `type` varchar(20) NOT NULL COMMENT '회선구분',
+ `title` varchar(100) NOT NULL,
+ `bandwith` varchar(20) NOT NULL COMMENT 'IP 대역',
+ `start_at` date DEFAULT NULL COMMENT '개통일',
+ `status` varchar(20) NOT NULL DEFAULT 'default',
+ `updated_at` timestamp NULL DEFAULT NULL,
+ `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
+ `deleted_at` timestamp NULL DEFAULT NULL,
+ PRIMARY KEY (`uid`),
+ UNIQUE KEY `UQ_title` (`title`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='회선 정보';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `lineinfo`
+--
+
+LOCK TABLES `lineinfo` WRITE;
+/*!40000 ALTER TABLE `lineinfo` DISABLE KEYS */;
+/*!40000 ALTER TABLE `lineinfo` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Table structure for table `partinfo`
+--
+
+DROP TABLE IF EXISTS `partinfo`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `partinfo` (
+ `uid` int(11) NOT NULL AUTO_INCREMENT,
+ `type` enum('CPU','RAM','DISK','SOFTWARE') NOT NULL COMMENT '형식',
+ `title` varchar(50) NOT NULL,
+ `price` int(11) NOT NULL DEFAULT 0 COMMENT '기본금액',
+ `status` varchar(20) NOT NULL DEFAULT 'default',
+ `updated_at` timestamp NULL DEFAULT NULL,
+ `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
+ `deleted_at` timestamp NULL DEFAULT NULL,
+ PRIMARY KEY (`uid`),
+ UNIQUE KEY `UQ_title` (`title`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='PART정보';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `partinfo`
+--
+
+LOCK TABLES `partinfo` WRITE;
+/*!40000 ALTER TABLE `partinfo` DISABLE KEYS */;
+/*!40000 ALTER TABLE `partinfo` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Table structure for table `payment_month`
+--
+
+DROP TABLE IF EXISTS `payment_month`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `payment_month` (
+ `uid` int(11) NOT NULL AUTO_INCREMENT,
+ `user_uid` int(11) NOT NULL COMMENT '관리자정보(결제처리자)',
+ `clientinfo_code` varchar(20) NOT NULL COMMENT '고객코드',
+ `serviceinfo_coide` varchar(20) NOT NULL COMMENT '서비스코드',
+ `amount` int(11) NOT NULL DEFAULT 0 COMMENT '청구금액',
+ `billing_at` date DEFAULT NULL COMMENT '지급기한일',
+ `pay_method` varchar(20) DEFAULT NULL COMMENT '자뷸방법(ACCOUNT,COUPON)',
+ `status` varchar(20) NOT NULL DEFAULT 'default' COMMENT '상태(PAID,UNPAID)',
+ `updated_at` timestamp NULL DEFAULT NULL COMMENT '지불처리일',
+ `created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '청구발행일',
+ `deleted_at` timestamp NULL DEFAULT NULL,
+ PRIMARY KEY (`uid`),
+ KEY `FK_user_TO_payment_month` (`user_uid`),
+ KEY `FK_serviceinfo_TO_payment_month` (`serviceinfo_coide`),
+ KEY `FK_clientinfo_TO_payment_month` (`clientinfo_code`),
+ CONSTRAINT `FK_clientinfo_TO_payment_month` FOREIGN KEY (`clientinfo_code`) REFERENCES `clientinfo` (`code`),
+ CONSTRAINT `FK_serviceinfo_TO_payment_month` FOREIGN KEY (`serviceinfo_coide`) REFERENCES `serviceinfo` (`code`),
+ CONSTRAINT `FK_user_TO_payment_month` FOREIGN KEY (`user_uid`) REFERENCES `user` (`uid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='월별결제정보';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `payment_month`
+--
+
+LOCK TABLES `payment_month` WRITE;
+/*!40000 ALTER TABLE `payment_month` DISABLE KEYS */;
+/*!40000 ALTER TABLE `payment_month` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Table structure for table `payment_onetime`
+--
+
+DROP TABLE IF EXISTS `payment_onetime`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `payment_onetime` (
+ `uid` int(11) NOT NULL AUTO_INCREMENT,
+ `user_uid` int(11) NOT NULL COMMENT '관리자정보(결제처리자)',
+ `clientinfo_code` varchar(20) NOT NULL COMMENT '고객코드',
+ `serviceinfo_code` varchar(20) NOT NULL COMMENT '서비스코드',
+ `title` varchar(50) DEFAULT NULL COMMENT '일회성 제목(제품명)',
+ `amount` int(11) NOT NULL DEFAULT 0 COMMENT '청구금액',
+ `pay_method` varchar(20) DEFAULT NULL COMMENT '지불방법(ACCOUNT,COUPON)',
+ `status` varchar(20) NOT NULL DEFAULT 'default' COMMENT '상태(PAID,UNPAID)',
+ `updated_at` timestamp NULL DEFAULT NULL COMMENT '지불처리일',
+ `created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '청구발행일(지불기한일)',
+ `deleted_at` timestamp NULL DEFAULT NULL,
+ PRIMARY KEY (`uid`),
+ KEY `FK_user_TO_payment_onetime` (`user_uid`),
+ KEY `FK_serviceinfo_TO_payment_onetime` (`serviceinfo_code`),
+ KEY `FK_clientinfo_TO_payment_onetime` (`clientinfo_code`),
+ CONSTRAINT `FK_clientinfo_TO_payment_onetime` FOREIGN KEY (`clientinfo_code`) REFERENCES `clientinfo` (`code`),
+ CONSTRAINT `FK_serviceinfo_TO_payment_onetime` FOREIGN KEY (`serviceinfo_code`) REFERENCES `serviceinfo` (`code`),
+ CONSTRAINT `FK_user_TO_payment_onetime` FOREIGN KEY (`user_uid`) REFERENCES `user` (`uid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='일회성결제정보';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `payment_onetime`
+--
+
+LOCK TABLES `payment_onetime` WRITE;
+/*!40000 ALTER TABLE `payment_onetime` DISABLE KEYS */;
+/*!40000 ALTER TABLE `payment_onetime` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Table structure for table `pointinfo`
+--
+
+DROP TABLE IF EXISTS `pointinfo`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `pointinfo` (
+ `uid` int(11) NOT NULL AUTO_INCREMENT,
+ `userinfo_uid` int(11) NOT NULL COMMENT '관리자정보',
+ `clientinfo_code` varchar(20) NOT NULL COMMENT '고객코드',
+ `title` varchar(255) NOT NULL,
+ `amount` int(11) NOT NULL DEFAULT 0 COMMENT '포인트액',
+ `status` varchar(20) NOT NULL DEFAULT 'default',
+ `updated_at` timestamp NULL DEFAULT NULL,
+ `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
+ `deleted_at` timestamp NULL DEFAULT NULL,
+ PRIMARY KEY (`uid`),
+ KEY `FK_user_TO_pointinfo` (`userinfo_uid`),
+ KEY `FK_clientinfo_TO_pointinfo` (`clientinfo_code`),
+ CONSTRAINT `FK_clientinfo_TO_pointinfo` FOREIGN KEY (`clientinfo_code`) REFERENCES `clientinfo` (`code`),
+ CONSTRAINT `FK_user_TO_pointinfo` FOREIGN KEY (`userinfo_uid`) REFERENCES `user` (`uid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='포인트정보';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `pointinfo`
+--
+
+LOCK TABLES `pointinfo` WRITE;
+/*!40000 ALTER TABLE `pointinfo` DISABLE KEYS */;
+/*!40000 ALTER TABLE `pointinfo` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Table structure for table `serverinfo`
+--
+
+DROP TABLE IF EXISTS `serverinfo`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `serverinfo` (
+ `code` varchar(20) NOT NULL COMMENT '서버코드',
+ `serviceinfo_code` varchar(20) DEFAULT NULL COMMENT '서비스코드',
+ `title` varchar(50) NOT NULL,
+ `price` int(11) NOT NULL DEFAULT 0 COMMENT '기본금액',
+ `amount` int(11) NOT NULL DEFAULT 0 COMMENT '서비스금액',
+ `status` varchar(20) NOT NULL DEFAULT 'default',
+ `manufactur_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '제조일',
+ `updated_at` timestamp NULL DEFAULT NULL,
+ `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
+ `deleted_at` timestamp NULL DEFAULT NULL,
+ PRIMARY KEY (`code`),
+ KEY `FK_serviceinfo_TO_serverinfo` (`serviceinfo_code`),
+ CONSTRAINT `FK_serviceinfo_TO_serverinfo` FOREIGN KEY (`serviceinfo_code`) REFERENCES `serviceinfo` (`code`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='서버정보';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `serverinfo`
+--
+
+LOCK TABLES `serverinfo` WRITE;
+/*!40000 ALTER TABLE `serverinfo` DISABLE KEYS */;
+/*!40000 ALTER TABLE `serverinfo` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Table structure for table `serverinfo_partinfo`
+--
+
+DROP TABLE IF EXISTS `serverinfo_partinfo`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `serverinfo_partinfo` (
+ `uid` int(11) NOT NULL AUTO_INCREMENT,
+ `serverinfo_code` varchar(20) NOT NULL COMMENT '서버코드',
+ `partinfo_uid` int(11) NOT NULL COMMENT 'part정보',
+ `cnt` tinyint(4) NOT NULL DEFAULT 1 COMMENT 'cpu 갯수',
+ `amount` int(11) NOT NULL DEFAULT 0 COMMENT '서비스금액',
+ `extra` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '추가정보(RAID등)',
+ `updated_at` timestamp NULL DEFAULT NULL,
+ `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
+ PRIMARY KEY (`uid`),
+ KEY `FK_serverinfo_TO_serverinfo_partinfo` (`serverinfo_code`),
+ KEY `FK_partinfo_TO_serverinfo_partinfo` (`partinfo_uid`),
+ CONSTRAINT `FK_partinfo_TO_serverinfo_partinfo` FOREIGN KEY (`partinfo_uid`) REFERENCES `partinfo` (`uid`),
+ CONSTRAINT `FK_serverinfo_TO_serverinfo_partinfo` FOREIGN KEY (`serverinfo_code`) REFERENCES `serverinfo` (`code`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='서버정보_part정보(CASECADE)';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `serverinfo_partinfo`
+--
+
+LOCK TABLES `serverinfo_partinfo` WRITE;
+/*!40000 ALTER TABLE `serverinfo_partinfo` DISABLE KEYS */;
+/*!40000 ALTER TABLE `serverinfo_partinfo` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Table structure for table `serviceinfo`
+--
+
+DROP TABLE IF EXISTS `serviceinfo`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `serviceinfo` (
+ `code` varchar(20) NOT NULL COMMENT '서비스코드',
+ `user_uid` int(11) NOT NULL COMMENT '관리자정보',
+ `clientinfo_code` varchar(20) NOT NULL COMMENT '고객코드',
+ `type` varchar(20) NOT NULL COMMENT '서비스형식((일발, 방어,전용,VPN,대체,,테스트,자사,코로케이션)',
+ `location` varchar(20) DEFAULT NULL COMMENT '지역코드(chiba,tokyo,3center)',
+ `billing_at` date NOT NULL COMMENT '청구일',
+ `start_at` date NOT NULL COMMENT '시작일',
+ `end_at` date DEFAULT NULL COMMENT '종료일',
+ `amount` int(11) NOT NULL DEFAULT 0 COMMENT '서비스금액(IP+월별ITEM+CS의 서비스금액의 총합금액)',
+ `history` text DEFAULT NULL COMMENT 'history',
+ `status` varchar(20) NOT NULL DEFAULT 'default' COMMENT '상태',
+ `updated_at` timestamp NULL DEFAULT NULL,
+ `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
+ `deleted_at` timestamp NULL DEFAULT NULL,
+ PRIMARY KEY (`code`),
+ KEY `FK_user_TO_serviceinfo` (`user_uid`),
+ KEY `FK_clientinfo_TO_serviceinfo` (`clientinfo_code`),
+ CONSTRAINT `FK_clientinfo_TO_serviceinfo` FOREIGN KEY (`clientinfo_code`) REFERENCES `clientinfo` (`code`),
+ CONSTRAINT `FK_user_TO_serviceinfo` FOREIGN KEY (`user_uid`) REFERENCES `user` (`uid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='서비스정보';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `serviceinfo`
+--
+
+LOCK TABLES `serviceinfo` WRITE;
+/*!40000 ALTER TABLE `serviceinfo` DISABLE KEYS */;
+/*!40000 ALTER TABLE `serviceinfo` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Table structure for table `switchinfo`
+--
+
+DROP TABLE IF EXISTS `switchinfo`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `switchinfo` (
+ `code` varchar(20) NOT NULL COMMENT 'switch코드',
+ `serverinfo_code` varchar(20) DEFAULT NULL COMMENT '서버코드',
+ `status` varchar(20) NOT NULL DEFAULT 'default',
+ `updated_at` timestamp NULL DEFAULT NULL,
+ `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
+ `deleted_at` timestamp NULL DEFAULT NULL,
+ PRIMARY KEY (`code`),
+ KEY `FK_serverinfo_TO_switchinfo` (`serverinfo_code`),
+ CONSTRAINT `FK_serverinfo_TO_switchinfo` FOREIGN KEY (`serverinfo_code`) REFERENCES `serverinfo` (`code`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='스위치정보';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `switchinfo`
+--
+
+LOCK TABLES `switchinfo` WRITE;
+/*!40000 ALTER TABLE `switchinfo` DISABLE KEYS */;
+/*!40000 ALTER TABLE `switchinfo` ENABLE KEYS */;
+UNLOCK TABLES;
+
--
-- Table structure for table `user`
--
@@ -49,6 +535,37 @@ LOCK TABLES `user` WRITE;
INSERT INTO `user` VALUES (1,'choi.jh','$2y$10$.vl2FtwJsjMNFCJJm3ISDu7m3vBB85mZ5fRQxcfI0uK/2D1e8Xora','최준흠','choi.jh@prime-idc.jp','0434434327','manager,cloudflare,firewall,security,director,master','default','2025-08-08 01:03:54','2023-03-23 06:50:04',NULL),(2,'cho.jh','$2y$10$ot/aUXR/W1n4Q3dZA2dZCOxQrpVb2Bq31Y7xFQS3G6D1gtImmyBjm','조준희','cho.jh@prime-idc.jp','','manager,cloudflare,security','default','2025-08-08 01:03:41','2023-03-24 02:20:48',NULL),(4,'kimdy','$2y$10$18uyn94xdprzAnt.oYZ5weAvb8rRLhkz/SdQrjEK7yuGhCr9PlUCC','김동윤','kimdy@prime-idc.jp',NULL,'manager,cloudflare,security','default','2025-06-24 01:10:17','2023-03-24 02:21:50',NULL),(5,'kimhy','$2y$10$.yEKVqY.F7HoSOZijl4uyeulUtfAQ4EDRiyR2JpgFYBuKw.mZoZvG','김효영','khy@prime-idc.jp',NULL,'manager,security,director','default','2025-06-24 01:11:41','2023-03-24 02:23:18',NULL),(6,'kim.eh','$2y$10$YmwicI.Br4XNyGamfRADMOu.qlkwKd2fmnNkL7YIkNHGndvqYPnCq','김은혁','kim.eh@prime-idc.jp',NULL,'manager,cloudflare,security','default','2025-06-24 01:09:38','2023-03-24 02:23:52',NULL),(7,'leeph','$2y$10$lR739WzJsW6rDLgchYs7buek4BYeTlKHTQY60RDqRms9Io7RSY3AC','이풍호','leeph@prime-idc.jp',NULL,'manager,cloudflare','default','2023-05-29 16:32:52','2023-03-24 02:24:21',NULL),(8,'jinmingyu','$2y$10$PI8WA6d/z4hDE6hxJoUhbuMH3vTTWH0Ry2Z6fTLUUpwQGaE/9bEZa','김명옥','jinmingyu@idcjp.jp',NULL,'manager,cloudflare,security','default','2025-06-24 01:09:47','2023-03-24 02:25:00',NULL),(9,'kangdh','$2y$10$gu9OS2DDQQ5H.Hh61t3BSOUp87l35q.xsduVSxvCcn8IgA4jrATgG','강동헌','kang.dh@idcjp.jp','','manager,cloudflare,security','default','2025-08-08 01:06:54','2023-03-24 02:25:48',NULL),(10,'yoohs','$2y$10$TGASk98FuZ6Ux6FDquu1aO3rztA01MCle/Vs1.3iaEMQzakAbCzJy','유혜성','yoo.hs@idcjp.jp','','manager,cloudflare,security','default','2025-08-08 01:08:08','2023-03-24 02:26:31',NULL),(11,'kim.yh','$2y$10$8GciQXpKYiR3TDWQfh9JjOQAQ.YWGoOSCL0a0/w4XACO0mUgjjbWy','김영환','kim.yh@idcjp.jp','','manager,cloudflare,firewall,security','default','2025-08-08 01:08:02','2023-03-24 02:27:05',NULL),(12,'yunmuj','$2y$10$zkgwGVj2JSOVIsxLe8fePe1gvWWaCemfZMktzBlrN8oLb3CKydkZC','윤무정','yunmuj@idcjp.jp','','manager,cloudflare','default','2025-08-08 01:07:57','2023-03-24 02:27:59',NULL),(13,'kim.mt','$2y$10$3dfkA0oq4LqiJOmjbBGKe.p0Dhj/MDqjoTdw11BOPF/H2qJqnEuHO','김문태','kim.mt@idcjp.jp','','manager,cloudflare,security','default','2025-08-08 01:07:44','2023-03-24 02:28:31',NULL),(14,'shin.ms','$2y$10$.jaDkGtm/gZK3ZDF.fJUGOwMI7Zif5588X5AxSMvvk238RDI7spQ6','신민수','shin.ms@idcjp.jp',NULL,'manager,cloudflare','default','2023-03-24 02:29:00','2023-03-24 02:29:00',NULL),(15,'park.sm','$2y$10$BwMxw0uvw2tAdQ0EZQ2/hu.Q7zYu7mbuBPPRTaa14bwG3VLf0cXfu','박선미','park.sm@idcjp.jp','','manager,cloudflare,security','default','2025-08-08 01:07:33','2023-03-24 02:29:34',NULL),(24,'kobn','$2y$10$pWM/XFfSNeSng32sypbDX.WaR4UlM4EDkYKCQfFkYIOC7Ppg0nc5G','고병남','ko@prime-idc.jp',NULL,'manager,cloudflare,security','default','2025-06-24 01:10:02','2024-10-29 06:30:19',NULL),(25,'jeong.sg','$2y$10$OzH6140JztiUEs4s/VHbPOxfxubFooqwqVhGpdFG8OJCGAFXNu546','정상구','jeong.sg@prime-idc.jp','','manager,cloudflare,security','default','2025-08-08 01:07:26','2025-01-23 00:29:46',NULL),(43,'test1234','$2y$10$21wlqjmdfDlIr0vAjDzs6ubIchc1DwOG61GGkZUwY7gb9GMTxA96K','test1234','test@gmail.com','0434434327','manager,cloudflare','default','2025-07-02 08:03:20','2025-07-01 06:05:11',NULL),(44,'test233332','$2y$10$9FqxChYQ3qlbGL0dFvHsQuEl3ELiH3R5kDytQqmFa2b2i9RYpjeQy','123423422','test2333@co.kr22','2343422','manager','default','2025-07-11 07:24:04','2025-07-11 07:23:13',NULL),(45,'kim.jh','$2y$10$voCle9yFWWhGhQ0JrH46puLYySJYq6O41/BSrKxx0MHWyO8KDf97u','김준한','kim.jh@prime-idc.jp','','manager,cloudflare,security','default',NULL,'2025-08-08 02:27:49',NULL);
/*!40000 ALTER TABLE `user` ENABLE KEYS */;
UNLOCK TABLES;
+
+--
+-- Table structure for table `user_history`
+--
+
+DROP TABLE IF EXISTS `user_history`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `user_history` (
+ `uid` int(11) NOT NULL AUTO_INCREMENT,
+ `user_uid` int(11) NOT NULL COMMENT '관리자정보',
+ `title` varchar(255) NOT NULL,
+ `content` text DEFAULT NULL,
+ `status` varchar(20) DEFAULT 'default',
+ `updated_at` timestamp NULL DEFAULT NULL,
+ `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
+ `deleted_at` timestamp NULL DEFAULT NULL,
+ PRIMARY KEY (`uid`),
+ KEY `FK_user_TO_user_history` (`user_uid`),
+ CONSTRAINT `FK_user_TO_user_history` FOREIGN KEY (`user_uid`) REFERENCES `user` (`uid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='작업 기록 로그';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `user_history`
+--
+
+LOCK TABLES `user_history` WRITE;
+/*!40000 ALTER TABLE `user_history` DISABLE KEYS */;
+/*!40000 ALTER TABLE `user_history` ENABLE KEYS */;
+UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
@@ -59,4 +576,4 @@ UNLOCK TABLES;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
--- Dump completed on 2025-08-15 14:30:48
+-- Dump completed on 2025-08-18 12:53:40
diff --git a/app/Database/user.sql b/app/Database/user.sql
new file mode 100644
index 0000000..00d73fe
--- /dev/null
+++ b/app/Database/user.sql
@@ -0,0 +1,62 @@
+-- MySQL dump 10.19 Distrib 10.3.28-MariaDB, for Linux (x86_64)
+--
+-- Host: localhost Database: dbms
+-- ------------------------------------------------------
+-- Server version 10.3.28-MariaDB-log
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+--
+-- Table structure for table `user`
+--
+
+DROP TABLE IF EXISTS `user`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `user` (
+ `uid` int(11) NOT NULL AUTO_INCREMENT,
+ `id` varchar(20) NOT NULL,
+ `passwd` varchar(255) NOT NULL,
+ `name` varchar(20) NOT NULL,
+ `email` varchar(50) NOT NULL,
+ `mobile` varchar(20) DEFAULT NULL,
+ `role` varchar(255) DEFAULT NULL,
+ `status` varchar(20) DEFAULT 'default',
+ `updated_at` timestamp NULL DEFAULT NULL,
+ `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
+ `deleted_at` timestamp NULL DEFAULT NULL,
+ PRIMARY KEY (`uid`),
+ UNIQUE KEY `UQ_id` (`id`),
+ UNIQUE KEY `UQ_email` (`email`)
+) ENGINE=InnoDB AUTO_INCREMENT=46 DEFAULT CHARSET=utf8 COMMENT='관리자정보';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `user`
+--
+
+LOCK TABLES `user` WRITE;
+/*!40000 ALTER TABLE `user` DISABLE KEYS */;
+INSERT INTO `user` VALUES (1,'choi.jh','$2y$10$.vl2FtwJsjMNFCJJm3ISDu7m3vBB85mZ5fRQxcfI0uK/2D1e8Xora','최준흠','choi.jh@prime-idc.jp','0434434327','manager,cloudflare,firewall,security,director,master','default','2025-08-08 01:03:54','2023-03-23 06:50:04',NULL),(2,'cho.jh','$2y$10$ot/aUXR/W1n4Q3dZA2dZCOxQrpVb2Bq31Y7xFQS3G6D1gtImmyBjm','조준희','cho.jh@prime-idc.jp','','manager,cloudflare,security','default','2025-08-08 01:03:41','2023-03-24 02:20:48',NULL),(4,'kimdy','$2y$10$18uyn94xdprzAnt.oYZ5weAvb8rRLhkz/SdQrjEK7yuGhCr9PlUCC','김동윤','kimdy@prime-idc.jp',NULL,'manager,cloudflare,security','default','2025-06-24 01:10:17','2023-03-24 02:21:50',NULL),(5,'kimhy','$2y$10$.yEKVqY.F7HoSOZijl4uyeulUtfAQ4EDRiyR2JpgFYBuKw.mZoZvG','김효영','khy@prime-idc.jp',NULL,'manager,security,director','default','2025-06-24 01:11:41','2023-03-24 02:23:18',NULL),(6,'kim.eh','$2y$10$YmwicI.Br4XNyGamfRADMOu.qlkwKd2fmnNkL7YIkNHGndvqYPnCq','김은혁','kim.eh@prime-idc.jp',NULL,'manager,cloudflare,security','default','2025-06-24 01:09:38','2023-03-24 02:23:52',NULL),(7,'leeph','$2y$10$lR739WzJsW6rDLgchYs7buek4BYeTlKHTQY60RDqRms9Io7RSY3AC','이풍호','leeph@prime-idc.jp',NULL,'manager,cloudflare','default','2023-05-29 16:32:52','2023-03-24 02:24:21',NULL),(8,'jinmingyu','$2y$10$PI8WA6d/z4hDE6hxJoUhbuMH3vTTWH0Ry2Z6fTLUUpwQGaE/9bEZa','김명옥','jinmingyu@idcjp.jp',NULL,'manager,cloudflare,security','default','2025-06-24 01:09:47','2023-03-24 02:25:00',NULL),(9,'kangdh','$2y$10$gu9OS2DDQQ5H.Hh61t3BSOUp87l35q.xsduVSxvCcn8IgA4jrATgG','강동헌','kang.dh@idcjp.jp','','manager,cloudflare,security','default','2025-08-08 01:06:54','2023-03-24 02:25:48',NULL),(10,'yoohs','$2y$10$TGASk98FuZ6Ux6FDquu1aO3rztA01MCle/Vs1.3iaEMQzakAbCzJy','유혜성','yoo.hs@idcjp.jp','','manager,cloudflare,security','default','2025-08-08 01:08:08','2023-03-24 02:26:31',NULL),(11,'kim.yh','$2y$10$8GciQXpKYiR3TDWQfh9JjOQAQ.YWGoOSCL0a0/w4XACO0mUgjjbWy','김영환','kim.yh@idcjp.jp','','manager,cloudflare,firewall,security','default','2025-08-08 01:08:02','2023-03-24 02:27:05',NULL),(12,'yunmuj','$2y$10$zkgwGVj2JSOVIsxLe8fePe1gvWWaCemfZMktzBlrN8oLb3CKydkZC','윤무정','yunmuj@idcjp.jp','','manager,cloudflare','default','2025-08-08 01:07:57','2023-03-24 02:27:59',NULL),(13,'kim.mt','$2y$10$3dfkA0oq4LqiJOmjbBGKe.p0Dhj/MDqjoTdw11BOPF/H2qJqnEuHO','김문태','kim.mt@idcjp.jp','','manager,cloudflare,security','default','2025-08-08 01:07:44','2023-03-24 02:28:31',NULL),(14,'shin.ms','$2y$10$.jaDkGtm/gZK3ZDF.fJUGOwMI7Zif5588X5AxSMvvk238RDI7spQ6','신민수','shin.ms@idcjp.jp',NULL,'manager,cloudflare','default','2023-03-24 02:29:00','2023-03-24 02:29:00',NULL),(15,'park.sm','$2y$10$BwMxw0uvw2tAdQ0EZQ2/hu.Q7zYu7mbuBPPRTaa14bwG3VLf0cXfu','박선미','park.sm@idcjp.jp','','manager,cloudflare,security','default','2025-08-08 01:07:33','2023-03-24 02:29:34',NULL),(24,'kobn','$2y$10$pWM/XFfSNeSng32sypbDX.WaR4UlM4EDkYKCQfFkYIOC7Ppg0nc5G','고병남','ko@prime-idc.jp',NULL,'manager,cloudflare,security','default','2025-06-24 01:10:02','2024-10-29 06:30:19',NULL),(25,'jeong.sg','$2y$10$OzH6140JztiUEs4s/VHbPOxfxubFooqwqVhGpdFG8OJCGAFXNu546','정상구','jeong.sg@prime-idc.jp','','manager,cloudflare,security','default','2025-08-08 01:07:26','2025-01-23 00:29:46',NULL),(43,'test1234','$2y$10$21wlqjmdfDlIr0vAjDzs6ubIchc1DwOG61GGkZUwY7gb9GMTxA96K','test1234','test@gmail.com','0434434327','manager,cloudflare','default','2025-07-02 08:03:20','2025-07-01 06:05:11',NULL),(44,'test233332','$2y$10$9FqxChYQ3qlbGL0dFvHsQuEl3ELiH3R5kDytQqmFa2b2i9RYpjeQy','123423422','test2333@co.kr22','2343422','manager','default','2025-07-11 07:24:04','2025-07-11 07:23:13',NULL),(45,'kim.jh','$2y$10$voCle9yFWWhGhQ0JrH46puLYySJYq6O41/BSrKxx0MHWyO8KDf97u','김준한','kim.jh@prime-idc.jp','','manager,cloudflare,security','default',NULL,'2025-08-08 02:27:49',NULL);
+/*!40000 ALTER TABLE `user` ENABLE KEYS */;
+UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+-- Dump completed on 2025-08-14 18:16:36
diff --git a/app/Entities/CommonEntity.php b/app/Entities/CommonEntity.php
index bfb014a..239894d 100644
--- a/app/Entities/CommonEntity.php
+++ b/app/Entities/CommonEntity.php
@@ -47,6 +47,10 @@ abstract class CommonEntity extends Entity
{
return $this->attributes['created_at'];
}
+ public function getPrice(): string
+ {
+ return $this->attributes['price'];
+ }
public function getStatus(): string|null
{
return $this->attributes['status'] ?? null;
diff --git a/app/Entities/Customer/ClientHistoryEntity.php b/app/Entities/Customer/ClientHistoryEntity.php
deleted file mode 100644
index f572c2e..0000000
--- a/app/Entities/Customer/ClientHistoryEntity.php
+++ /dev/null
@@ -1,11 +0,0 @@
-attributes['serviceinfo_uid']);
- }
-}
diff --git a/app/Entities/Equipment/CSEntity.php b/app/Entities/Equipment/CSEntity.php
new file mode 100644
index 0000000..00bc29a
--- /dev/null
+++ b/app/Entities/Equipment/CSEntity.php
@@ -0,0 +1,14 @@
+attributes['code'];
- }
-}
diff --git a/app/Entities/Equipment/Part/IpEntity.php b/app/Entities/Equipment/IpEntity.php
similarity index 80%
rename from app/Entities/Equipment/Part/IpEntity.php
rename to app/Entities/Equipment/IpEntity.php
index bbdf040..8ee0b30 100644
--- a/app/Entities/Equipment/Part/IpEntity.php
+++ b/app/Entities/Equipment/IpEntity.php
@@ -1,8 +1,8 @@
attributes['domain'];
- }
-}
diff --git a/app/Entities/Equipment/Part/LineEntity.php b/app/Entities/Equipment/Part/LineEntity.php
deleted file mode 100644
index 6fbc8b0..0000000
--- a/app/Entities/Equipment/Part/LineEntity.php
+++ /dev/null
@@ -1,16 +0,0 @@
-attributes['bandwith'];
- }
-}
diff --git a/app/Entities/Equipment/Part/PartEntity.php b/app/Entities/Equipment/Part/PartEntity.php
deleted file mode 100644
index d6269b0..0000000
--- a/app/Entities/Equipment/Part/PartEntity.php
+++ /dev/null
@@ -1,14 +0,0 @@
-attributes['code'];
+ }
}
diff --git a/app/Helpers/AuthHelper.php b/app/Helpers/AuthHelper.php
new file mode 100644
index 0000000..56be0bc
--- /dev/null
+++ b/app/Helpers/AuthHelper.php
@@ -0,0 +1,27 @@
+setTitleField(UserModel::TITLE);
+ }
+ public function getFieldForm(string $field, mixed $value, array $viewDatas, array $extras = []): string
+ {
+ switch ($field) {
+ case 'id':
+ case 'passwd':
+ $form = form_password($field, "", [...$extras]);
+ break;
+ default:
+ $form = parent::getFieldForm($field, $value, $viewDatas, $extras);
+ break;
+ }
+ return $form;
+ } //
+}
diff --git a/app/Helpers/CommonHelper.php b/app/Helpers/CommonHelper.php
new file mode 100644
index 0000000..7f1fed6
--- /dev/null
+++ b/app/Helpers/CommonHelper.php
@@ -0,0 +1,437 @@
+_myAuth) {
+ $this->_myAuth = service('myauth');
+ }
+ return $this->_myAuth;
+ }
+ final public function setTitleField(string $field): void
+ {
+ $this->_titleField = $field;
+ }
+ final public function getTitleField(): string
+ {
+ if (!$this->_titleField) {
+ throw new \Exception("titleField가 지정되지 않았습니다.");
+ }
+ return $this->_titleField;
+ }
+ final public function setViewDatas(array $viewDatas): void
+ {
+ $this->_viewDatas = $viewDatas;
+ }
+ final public function getViewDatas(string $key)
+ {
+ if (!array_key_exists($key, $this->_viewDatas)) {
+ throw new \Exception("{$key}에 해당하는 ViewData가 존재하지 않습니다.");
+ }
+ return $this->_viewDatas[$key];
+ }
+
+ //IP관련련
+ final public function isDomainName(string $domain): bool
+ {
+ $pattern_validation = '/((http|https)\:\/\/)?[a-zA-Z0-9\.\/\?\:@\-_=#]+\.([a-zA-Z0-9\&\.\/\?\:@\-_=#])*/';
+ return preg_match($pattern_validation, $domain);
+ }
+
+ final public function isIPAddress(string $ip, $type = false): bool
+ {
+ switch ($type) {
+ case 'ipv4':
+ $result = filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4);
+ break;
+ case 'ipv6':
+ $result = filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6);
+ break;
+ case 'all':
+ $result = filter_var($ip, FILTER_VALIDATE_IP);
+ break;
+ default:
+ $result = filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE);
+ break;
+ }
+ return $result;
+ }
+ final function isValidCIDR(string $cidr, $type = "ipv4"): bool
+ {
+ // 형식: "IP/Prefix" 형태인지 검사
+ if (!preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}\/\d{1,2}$/', $cidr)) {
+ return false;
+ }
+ list($ip, $prefix) = explode('/', $cidr);
+ // IP 유효성 검사
+ if (!$this->isIPAddress($ip, $type)) {
+ return false;
+ }
+ // Prefix는 0~32 사이인지 검사 (IPv4 기준)
+ $prefix = (int) $prefix;
+ if ($prefix < 0 || $prefix > 32) {
+ return false;
+ }
+ return true;
+ }
+ final public function isHostName(string $host): bool
+ {
+ $pattern_validation = '/[a-zA-Z0-9\.\/\?\:@\*\-_=#]/';
+ return preg_match($pattern_validation, $host);
+ }
+ final public function isMobile()
+ {
+ // Check the server headers to see if they're mobile friendly
+ if (isset($_SERVER["HTTP_X_WAP_PROFILE"])) {
+ return true;
+ }
+ // If the http_accept header supports wap then it's a mobile too
+ if (preg_match("/wap\.|\.wap/i", $_SERVER["HTTP_ACCEPT"])) {
+ return true;
+ }
+ // Still no luck? Let's have a look at the user agent on the browser. If it contains
+ // any of the following, it's probably a mobile device. Kappow!
+ if (isset($_SERVER["HTTP_USER_AGENT"])) {
+ $user_agents = array("midp", "j2me", "avantg", "docomo", "novarra", "palmos", "palmsource", "240x320", "opwv", "chtml", "pda", "windows\ ce", "mmp\/", "blackberry", "mib\/", "symbian", "wireless", "nokia", "hand", "mobi", "phone", "cdm", "up\.b", "audio", "SIE\-", "SEC\-", "samsung", "HTC", "mot\-", "mitsu", "sagem", "sony", "alcatel", "lg", "erics", "vx", "NEC", "philips", "mmm", "xx", "panasonic", "sharp", "wap", "sch", "rover", "pocket", "benq", "java", "pt", "pg", "vox", "amoi", "bird", "compal", "kg", "voda", "sany", "kdd", "dbt", "sendo", "sgh", "gradi", "jb", "\d\d\di", "moto");
+ foreach ($user_agents as $user_string) {
+ if (preg_match("/" . $user_string . "/i", $_SERVER["HTTP_USER_AGENT"])) {
+ return true;
+ }
+ }
+ }
+ // Let's NOT return "mobile" if it's an iPhone, because the iPhone can render normal pages quite well.
+ if (preg_match("/iphone/i", $_SERVER["HTTP_USER_AGENT"])) {
+ return false;
+ }
+ // None of the above? Then it's probably not a mobile device.
+ return false;
+ }
+
+ final public function alert(string $msg, $url = null)
+ {
+ $msg = preg_replace("/\r/", "\\r", $msg);
+ $msg = preg_replace("/\n/", "\\n", $msg);
+ $msg = preg_replace("/\'/", "\'", $msg);
+ $msg = preg_replace("/\"/", "\'", $msg);
+ $msg = "alert(\"{$msg}\");";
+ switch ($url) {
+ case 'close':
+ $msg .= "window.close();";
+ break;
+ default:
+ $msg .= $url ? "location.href=\"{$url}\";" : "";
+ break;
+ }
+ return "";
+ }
+
+ final public function getRandomString($length = 10, $characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
+ {
+ return substr(str_shuffle($characters), 0, $length);
+ }
+
+ final public function getPasswordString($length = 8)
+ {
+ return $this->getRandomString($length, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_-=+;:,.?");
+ }
+
+ // byte값을 알아보기 쉽게 변환
+ final public function getSizeForHuman($bytes)
+ {
+ $ext = array('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB');
+ $unitCount = 0;
+ for (; $bytes > 1024; $unitCount++) {
+ $bytes /= 1024;
+ }
+ return floor($bytes) . $ext[$unitCount];
+ }
+
+ // Proxy등을 통하여 Client_IP가 알수없는경우 실제사용자의 IP를 가져오기 위한것
+ final public function getClientIP($clientIP = false)
+ {
+ if (isset($_SERVER['HTTP_CLIENT_IP'])) {
+ $clientIP = $_SERVER['HTTP_CLIENT_IP'];
+ } else if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
+ $clientIP = $_SERVER['HTTP_X_FORWARDED_FOR'];
+ } else if (isset($_SERVER['HTTP_X_FORWARDED'])) {
+ $clientIP = $_SERVER['HTTP_X_FORWARDED'];
+ } else if (isset($_SERVER['HTTP_FORWARDED_FOR'])) {
+ $clientIP = $_SERVER['HTTP_FORWARDED_FOR'];
+ } else if (isset($_SERVER['HTTP_FORWARDED'])) {
+ $clientIP = $_SERVER['HTTP_FORWARDED'];
+ } else if (isset($_SERVER['REMOTE_ADDR'])) {
+ $clientIP = $_SERVER['REMOTE_ADDR'];
+ }
+ return $clientIP;
+ }
+
+ // (EX:192.168.1.0 -> 192.168.001.000)
+ final public function cidrToIpRange(string $cidr): array
+ {
+ if (!$this->isValidCIDR($cidr)) {
+ return []; // 유효하지 않으면 빈 배열 반환
+ }
+
+ list($ip, $prefix) = explode('/', $cidr);
+ $prefix = (int) $prefix;
+
+ $ipLong = ip2long($ip);
+ $netmask = ~((1 << (32 - $prefix)) - 1);
+ $network = $ipLong & $netmask;
+ $broadcast = $network | ~$netmask;
+
+ $ips = [];
+
+ // 첫 IP부터 마지막 IP까지 반복
+ for ($i = $network; $i <= $broadcast; $i++) {
+ $ips[] = long2ip($i);
+ }
+
+ return $ips;
+ }
+
+ public function getFieldLabel(string $field, string $label, array $viewDatas, array $extras = []): string
+ {
+ switch ($field) {
+ default:
+ // required가 있으면 class 추가
+ $extras = (strpos($viewDatas['control']['field_rules'][$field], 'required') !== false) ? ["class" => "text-danger", "required" => "", ...$extras] : $extras;
+ $label = form_label($label, $field, $extras);
+ break;
+ }
+ return $label;
+ }
+
+ // header.php에서 getFieldForm_Helper사용
+ protected function form_dropdown_disabled(string $field, mixed $value, array $formOptions, array $extras = [], mixed $disabledKey = null): string
+ {
+ // $formOptions는 필터 옵션 배열로, key는 필터 엔티티의 PK, value는 필터 엔티티 객체
+ $extra = "";
+ foreach ($extras as $option_tag => $option_value) {
+ $extra = sprintf(" %s=\"%s\"", $option_tag, htmlspecialchars($option_value, ENT_QUOTES, 'UTF-8'));
+ }
+ $html = sprintf("';
+ return $html;
+ }
+ public function getFieldForm(string $field, mixed $value, array $viewDatas, array $extras = []): string
+ {
+ switch ($field) {
+ case 'email':
+ $form = form_input($field, $value ?? "", ["placeholder" => "예)test@example.com", ...$extras]);
+ break;
+ case 'mobile':
+ case 'phone':
+ $form = form_input($field, $value ?? "", ["placeholder" => "예)010-0010-0010", ...$extras]);
+ break;
+ case 'role':
+ if (!is_array($viewDatas['control']['filter_optons'][$field])) {
+ throw new \Exception(__METHOD__ . "에서 {$field}의 field_options가 array형태가 아닙니다.");
+ }
+ // create, modify, create_form, modify_form일때 checkbox로 표시
+ if (in_array($viewDatas['control']['action'], ['create_form', 'modify_form'])) {
+ $forms = [];
+ foreach ($viewDatas['control']['filter_optons'][$field] as $key => $filterEntity) {
+ if ($key !== '') { // 빈값은 제외
+ $values = is_array($value) ? $value : explode(DEFAULTS["DELIMITER_ROLE"], $value);
+ //form_check에는 "class" => "form-control" 쓰면 않되거나 form-check를 써야함
+ $forms[] = form_checkbox("{$field}[]", $key, in_array($key, $values)) . $filterEntity->getTitle();
+ }
+ }
+ $form = implode(" ", $forms);
+ } else {
+ $form = $this->form_dropdown_disabled($field, $value, $viewDatas['control']['filter_optons'][$field], $extras);
+ }
+ break;
+ case 'expired_at':
+ case 'billing_at':
+ case 'start_at':
+ case 'updated_at':
+ case 'created_at':
+ $extras['class'] = array_key_exists('class', $extras) ? $extras['class'] . ' calender' : 'calender';
+ $form = form_input($field, $value ?? "", $extras);
+ break;
+ case 'description':
+ case 'content':
+ $extras['class'] = array_key_exists('class', $extras) ? $extras['class'] . ' tinymce' : 'tinymce';
+ $form = form_textarea($field, $value ?? "", ['id' => $field, ...$extras]);
+ break;
+ case 'clientinfo_uid':
+ case 'ownerinfo_uid':
+ case 'user_uid':
+ $extras['class'] = array_key_exists('class', $extras) ? $extras['class'] . ' select-field' : 'select-field';
+ $form = $this->form_dropdown_disabled($field, $value, $viewDatas['control']['filter_optons'][$field], $extras);
+ break;
+ default:
+ if (in_array($field, $viewDatas['control']['filter_fields'])) {
+ $form = $this->form_dropdown_disabled($field, $value, $viewDatas['control']['filter_optons'][$field], $extras);
+ } else {
+ $form = form_input($field, $value ?? "", $extras);
+ }
+ break;
+ }
+ return $form;
+ }
+
+ public function getFieldView(string $field, mixed $value, array $viewDatas, array $extras = []): string|null
+ {
+ switch ($field) {
+ case 'user_uid':
+ $value = array_key_exists($value, $viewDatas['control']['filter_optons'][$field]) && $viewDatas['control']['filter_optons'][$field][$value] ? $viewDatas['control']['filter_optons'][$field][$value]->getTitle() : "";
+ break;
+ case 'role':
+ $roles = [];
+ foreach (explode(DEFAULTS["DELIMITER_ROLE"], $value) as $key) {
+ $roles[] = $viewDatas['control']['filter_optons'][$field][$key]->getTitle() ?? "";
+ }
+ $value = implode(" , ", $roles);
+ break;
+ case 'updated_at':
+ case 'created_at':
+ case 'deleted_at':
+ $value = $value ? date("Y-m-d", strtotime($value)) : "";
+ break;
+ case 'price':
+ case 'amount':
+ $value = number_format($value) . "원";
+ break;
+ default:
+ if (in_array($field, $viewDatas['control']['filter_fields'])) {
+ //index 액션에서만 filter_options를 변경시 선택된 값을 변경하는 기능
+ if ($viewDatas['control']['action'] == 'index') {
+ $extras["onChange"] = sprintf(
+ "document.location.href='%s/toggle/%s/%s?%s='+this.options[this.selectedIndex].value",
+ current_url(),
+ $viewDatas['entity']->getPK(),
+ $field,
+ $field
+ );
+ $value = $this->getFieldForm($field, $value, $viewDatas, $extras);
+ } else {
+ $value = array_key_exists($value, $viewDatas['control']['filter_optons'][$field]) ? $viewDatas['control']['filter_optons'][$field][$value]->getTitle() : "";
+ }
+ }
+ break;
+ }
+ if (is_array($value)) {
+ echo __METHOD__ . "에서 오류: {$field}의 값이 Array형태입니다";
+ exit;
+ }
+ return $value;
+ }
+ final public function getListRowColor(mixed $entity, string $field = 'status', string $value = DEFAULTS['STATUS']): string
+ {
+ return $entity->isMatched($field, $value) ? "" : 'class="table-danger"';
+ }
+
+ public function getListLabel(string $field, string $label, array $viewDatas, array $extras = []): string
+ {
+ switch ($field) {
+ default:
+ $label = $this->getFieldLabel($field, $label, $viewDatas, $extras);
+ if (isset($viewDatas['order_field']) && $viewDatas['order_field'] == $field) {
+ $label .= $viewDatas['order_value'] == 'ASC' ? ICONS["UP"] : ICONS["DOWN"];
+ }
+ $query = $viewDatas['uri']->getQuery(['except' => ['order_field', 'order_value']]);
+ $query .= empty($query) ? "" : "&";
+ $query .= "order_field={$field}&order_value=";
+ $query .= isset($viewDatas['order_value']) && $viewDatas['order_value'] == 'DESC' ? "ASC" : "DESC";
+ $label = anchor(current_url() . "?" . $query, $label);
+ break;
+ }
+ return $label;
+ }
+
+ public function getListButton(string $action, string $label, array $viewDatas, array $extras = []): string
+ {
+ switch ($action) {
+ case 'create':
+ // echo current_url() . '/' . $action . '?' . $viewDatas['uri']->getQuery();
+ $extras = ["class" => "btn btn-outline btn-primary btn-circle", "target" => "_self", ...$extras];
+ $action = form_label(
+ $label ? $label : ICONS['ADD'],
+ $action,
+ [
+ "data-src" => current_url() . '/' . $action . '?' . $viewDatas['uri']->getQuery(),
+ "data-bs-toggle" => "modal",
+ "data-bs-target" => "#index_action_form",
+ ...$extras
+ ]
+ );
+ break;
+ case 'modify':
+ $oldBatchJobUids = old("batchjob_uids", null);
+ $oldBatchJobUids = is_array($oldBatchJobUids) ? $oldBatchJobUids : [$oldBatchJobUids];
+ $checkbox = form_checkbox([
+ "id" => "checkbox_uid_{$viewDatas['entity']->getPK()}",
+ "name" => "batchjob_uids[]",
+ "value" => $viewDatas['entity']->getPK(),
+ "class" => "batchjobuids_checkboxs",
+ "checked" => in_array($viewDatas['entity']->getPK(), $oldBatchJobUids)
+ ]);
+ $action = $checkbox . form_label(
+ $label ? $label : $viewDatas['cnt'],
+ $action,
+ [
+ "data-src" => current_url() . '/' . $action . '/' . $viewDatas['entity']->getPK() . '?' . $viewDatas['uri']->getQuery(),
+ "data-bs-toggle" => "modal",
+ "data-bs-target" => "#index_action_form",
+ ...$extras
+ ]
+ );
+ break;
+ case 'view':
+ $extras = ["class" => "btn btn-outline btn-primary btn-circle", "target" => "_self", ...$extras];
+ $action = form_label(
+ $label ? $label : ICONS['SEARCH'],
+ $action,
+ [
+ "data-src" => current_url() . '/' . $action . '/' . $viewDatas['entity']->getPK(),
+ "data-bs-toggle" => "modal",
+ "data-bs-target" => "#index_action_form",
+ ...$extras
+ ]
+ );
+ break;
+ case 'delete':
+ $extras = ["class" => "btn btn-sm btn-danger btn-circle", "target" => "_self", ...$extras];
+ $action = anchor(
+ current_url() . '/' . $action . '/' . $viewDatas['entity']->getPK(),
+ $label ? $label : ICONS['DELETE'],
+ $extras
+ );
+ break;
+ case 'batchjob':
+ $action = form_submit("batchjob_submit", $label ? $label : '일괄처리', [
+ "formaction" => current_url() . '/batchjob',
+ "class" => "btn btn-outline btn-warning",
+ // "onclick" => "return submitBatchJob()"
+ ]);
+ break;
+ case 'batchjob_delete':
+ $action = form_submit("batchjob_submit", $label ? $label : '일괄삭제', [
+ "formaction" => current_url() . '/batchjob_delete',
+ "class" => "btn btn-outline btn-danger",
+ // "onclick" => "return submitBatchJobDelete()"
+ ]);
+ break;
+ default:
+ $action = "";
+ break;
+ }
+ return $action;
+ }
+}
diff --git a/app/Helpers/Customer/ClientHistoryHelper.php b/app/Helpers/Customer/ClientHistoryHelper.php
deleted file mode 100644
index 41aec42..0000000
--- a/app/Helpers/Customer/ClientHistoryHelper.php
+++ /dev/null
@@ -1,14 +0,0 @@
-setTitleField(field: ClientHistoryModel::TITLE);
- }
-}
diff --git a/app/Helpers/Customer/ServiceHistoryHelper.php b/app/Helpers/Customer/ServiceHistoryHelper.php
deleted file mode 100644
index 5ed23de..0000000
--- a/app/Helpers/Customer/ServiceHistoryHelper.php
+++ /dev/null
@@ -1,14 +0,0 @@
-setTitleField(field: ServiceHistoryModel::TITLE);
- }
-}
diff --git a/app/Helpers/Equipment/CodeHelper.php b/app/Helpers/Equipment/CodeHelper.php
deleted file mode 100644
index def9a39..0000000
--- a/app/Helpers/Equipment/CodeHelper.php
+++ /dev/null
@@ -1,14 +0,0 @@
-setTitleField(field: CodeModel::TITLE);
- }
-}
diff --git a/app/Helpers/Equipment/Part/DomainHelper.php b/app/Helpers/Equipment/DomainHelper.php
similarity index 91%
rename from app/Helpers/Equipment/Part/DomainHelper.php
rename to app/Helpers/Equipment/DomainHelper.php
index b789ba9..76bcb43 100644
--- a/app/Helpers/Equipment/Part/DomainHelper.php
+++ b/app/Helpers/Equipment/DomainHelper.php
@@ -1,10 +1,10 @@
setTitleField(field: CpuModel::TITLE);
- }
-}
diff --git a/app/Helpers/Equipment/Part/DefenceHelper.php b/app/Helpers/Equipment/Part/DefenceHelper.php
deleted file mode 100644
index e08f979..0000000
--- a/app/Helpers/Equipment/Part/DefenceHelper.php
+++ /dev/null
@@ -1,14 +0,0 @@
-setTitleField(field: DefenceModel::TITLE);
- }
-}
diff --git a/app/Helpers/Equipment/Part/IpHelper.php b/app/Helpers/Equipment/Part/IpHelper.php
deleted file mode 100644
index b806f56..0000000
--- a/app/Helpers/Equipment/Part/IpHelper.php
+++ /dev/null
@@ -1,14 +0,0 @@
-setTitleField(field: IpModel::TITLE);
- }
-}
diff --git a/app/Helpers/Equipment/Part/LineHelper.php b/app/Helpers/Equipment/Part/LineHelper.php
deleted file mode 100644
index fe0ffee..0000000
--- a/app/Helpers/Equipment/Part/LineHelper.php
+++ /dev/null
@@ -1,14 +0,0 @@
-setTitleField(field: LineModel::TITLE);
- }
-}
diff --git a/app/Helpers/Equipment/Part/PartHelper.php b/app/Helpers/Equipment/Part/PartHelper.php
deleted file mode 100644
index ec01dcb..0000000
--- a/app/Helpers/Equipment/Part/PartHelper.php
+++ /dev/null
@@ -1,13 +0,0 @@
-setTitleField(field: RamModel::TITLE);
- }
-}
diff --git a/app/Helpers/Equipment/Part/SoftwareHelper.php b/app/Helpers/Equipment/Part/SoftwareHelper.php
deleted file mode 100644
index 85709dc..0000000
--- a/app/Helpers/Equipment/Part/SoftwareHelper.php
+++ /dev/null
@@ -1,14 +0,0 @@
-setTitleField(field: SoftwareModel::TITLE);
- }
-}
diff --git a/app/Helpers/Equipment/Part/StorageHelper.php b/app/Helpers/Equipment/Part/StorageHelper.php
deleted file mode 100644
index 64a021a..0000000
--- a/app/Helpers/Equipment/Part/StorageHelper.php
+++ /dev/null
@@ -1,14 +0,0 @@
-setTitleField(field: StorageModel::TITLE);
- }
-}
diff --git a/app/Helpers/HomeHelper.php b/app/Helpers/HomeHelper.php
new file mode 100644
index 0000000..a9a9cae
--- /dev/null
+++ b/app/Helpers/HomeHelper.php
@@ -0,0 +1,88 @@
+setTitleField(field: ServicePaymentModel::TITLE);
+ }
+
+ public function getFieldView(string $field, mixed $value, array $viewDatas, array $extras = []): string|null
+ {
+ switch ($field) {
+ case 'item_uid':
+ $value = $viewDatas['control']['filter_optons'][$viewDatas['entity']->getItemType()][$value]->getTitle();
+ break;
+ case 'type':
+ // echo $value;
+ // dd($viewDatas['control']['filter_optons'][$field]);
+ $value = $viewDatas['control']['filter_optons'][$field][$value]->getTitle();
+ break;
+ case 'amount':
+ $value = number_format($value) . "원";
+ break;
+ case 'status':
+ $value = parent::getFieldView($field, $value, $viewDatas, $extras);
+ break;
+ case "LINE":
+ case "IP":
+ case "SERVER":
+ case "CPU":
+ case "RAM":
+ case "STORAGE":
+ case "SOFTWARE":
+ case "DEFENCE":
+ case "DOMAIN":
+ // if ($field == 'DEFENCE') {
+ // dd($viewDatas['entity']->getItemEntities($field));
+ // }
+ $temps = [];
+ foreach ($viewDatas['entity']->getItemEntities($field) as $itemEntity) {
+ $temps[] = $viewDatas['control']['filter_optons'][$field][$itemEntity->getItemUid()]->getTitle();
+ }
+ $value = implode("
", $temps);
+ break;
+ default:
+ if (in_array($field, $viewDatas['control']['filter_fields'])) {
+ if (array_key_exists($value, $viewDatas['control']['filter_optons'][$field])) {
+ $value = $viewDatas['control']['filter_optons'][$field][$value]->getTitle();
+ } else {
+ $value = "";
+ }
+ }
+ break;
+ }
+ if (is_array($value)) {
+ echo __METHOD__ . "에서 오류: {$field}의 값이 Array형태입니다";
+ exit;
+ }
+ return $value;
+ }
+ public function getListButton(string $action, string $label, array $viewDatas, array $extras = []): string
+ {
+ switch ($action) {
+ case 'new_service_view':
+ $extras = ["class" => "btn btn-outline btn-light btn-circle", "target" => "_self", ...$extras];
+ $action = form_label(
+ $label ? $label : ICONS['SEARCH'],
+ $action,
+ [
+ "data-src" => '/admin/customer/service/view/' . $viewDatas['entity']->getPK(),
+ "data-bs-toggle" => "modal",
+ "data-bs-target" => "#index_action_form",
+ ...$extras
+ ]
+ );
+ break;
+ default:
+ $action = parent::getListButton($action, $label, $viewDatas, $extras);
+ break;
+ }
+ return $action;
+ }
+}
diff --git a/app/Helpers/MyLogHelper.php b/app/Helpers/MyLogHelper.php
new file mode 100644
index 0000000..2a421af
--- /dev/null
+++ b/app/Helpers/MyLogHelper.php
@@ -0,0 +1,54 @@
+setTitleField(MyLogModel::TITLE);
+ }
+ public function getFieldView(string $field, mixed $value, array $viewDatas, array $extras = []): string|null
+ {
+ switch ($field) {
+ case 'content':
+ $value = nl2br($value);
+ break;
+ default:
+ if (in_array($field, $viewDatas['control']['filter_fields'])) {
+ if (array_key_exists($value, $viewDatas['control']['filter_optons'][$field])) {
+ $value = $viewDatas['control']['filter_optons'][$field][$value]->getTitle();
+ } else {
+ $value = "";
+ }
+ }
+ break;
+ }
+ if (is_array($value)) {
+ echo __METHOD__ . "에서 오류: {$field}의 값이 Array형태입니다";
+ exit;
+ }
+ return $value;
+ }
+ public function getListButton(string $action, string $label, array $viewDatas, array $extras = []): string
+ {
+ switch ($action) {
+ case 'modify':
+ $action = $viewDatas['cnt'];
+ break;
+ case 'create':
+ case 'delete':
+ case 'batchjob':
+ case 'batchjob_delete':
+ $action = "";
+ break;
+ default:
+ $action = parent::getListButton($action, $label, $viewDatas, $extras);
+ break;
+ }
+ return $action;
+ }
+}
diff --git a/app/Helpers/UserHelper.php b/app/Helpers/UserHelper.php
new file mode 100644
index 0000000..e669aa1
--- /dev/null
+++ b/app/Helpers/UserHelper.php
@@ -0,0 +1,27 @@
+setTitleField(UserModel::TITLE);
+ }
+ public function getFieldForm(string $field, mixed $value, array $viewDatas, array $extras = []): string
+ {
+ switch ($field) {
+ case 'passwd':
+ case 'confirmpassword':
+ $form = form_password($field, "", [...$extras]);
+ break;
+ default:
+ $form = parent::getFieldForm($field, $value, $viewDatas, $extras);
+ break;
+ }
+ return $form;
+ } //
+}
diff --git a/app/Language/en/Customer/ClientHistory.php b/app/Language/en/Customer/ClientHistory.php
deleted file mode 100644
index 4bedfd4..0000000
--- a/app/Language/en/Customer/ClientHistory.php
+++ /dev/null
@@ -1,20 +0,0 @@
- "고객History정보",
- 'label' => [
- 'clientinfo_uid' => "고객명",
- 'title' => "제목",
- 'description' => "상세정보",
- 'status' => "상태",
- 'updated_at' => "수정일",
- 'created_at' => "신청일",
- 'deleted_at' => "삭제일",
- ],
- 'DEFAULTS' => [
- 'status' => 'default'
- ],
- "STATUS" => [
- 'default' => "사용중",
- "pause" => "일시정지",
- ],
-];
diff --git a/app/Language/en/Customer/ServiceHistory.php b/app/Language/en/Customer/ServiceHistory.php
deleted file mode 100644
index 43daca1..0000000
--- a/app/Language/en/Customer/ServiceHistory.php
+++ /dev/null
@@ -1,20 +0,0 @@
- "서비스History정보",
- 'label' => [
- 'serviceinfo_uid' => "서비스명",
- 'title' => "제목",
- 'description' => "상세정보",
- 'status' => "상태",
- 'updated_at' => "수정일",
- 'created_at' => "신청일",
- 'deleted_at' => "삭제일",
- ],
- 'DEFAULTS' => [
- 'status' => 'default'
- ],
- "STATUS" => [
- 'default' => "사용중",
- "pause" => "일시정지",
- ],
-];
diff --git a/app/Language/en/Equipment/Part/Defence.php b/app/Language/en/Equipment/CS.php
similarity index 100%
rename from app/Language/en/Equipment/Part/Defence.php
rename to app/Language/en/Equipment/CS.php
diff --git a/app/Language/en/Equipment/Code.php b/app/Language/en/Equipment/Code.php
deleted file mode 100644
index 2ac6637..0000000
--- a/app/Language/en/Equipment/Code.php
+++ /dev/null
@@ -1,19 +0,0 @@
- "서버장비정보",
- 'label' => [
- 'code' => "코드",
- 'status' => "사용여부",
- 'updated_at' => "수정일",
- 'created_at' => "작성일",
- 'deleted_at' => "삭제일",
- ],
- 'DEFAULTS' => [
- 'status' => 'default',
- ],
- "STATUS" => [
- 'default' => "사용가능",
- 'occupied' => "서비스중",
- "format" => "포맷요청중",
- ],
-];
diff --git a/app/Language/en/Equipment/Part/Ip.php b/app/Language/en/Equipment/Ip.php
similarity index 100%
rename from app/Language/en/Equipment/Part/Ip.php
rename to app/Language/en/Equipment/Ip.php
diff --git a/app/Language/en/Equipment/Part/Line.php b/app/Language/en/Equipment/Line.php
similarity index 100%
rename from app/Language/en/Equipment/Part/Line.php
rename to app/Language/en/Equipment/Line.php
diff --git a/app/Language/en/Equipment/Part/Cpu.php b/app/Language/en/Equipment/Part/Cpu.php
deleted file mode 100644
index 50d3291..0000000
--- a/app/Language/en/Equipment/Part/Cpu.php
+++ /dev/null
@@ -1,20 +0,0 @@
- "CPU정보",
- 'label' => [
- 'model' => "모델",
- 'price' => "가격",
- 'description' => "설명",
- 'status' => "상태",
- 'updated_at' => "수정일",
- 'created_at' => "작성일",
- 'deleted_at' => "삭제일",
- ],
- 'DEFAULTS' => [
- 'status' => 'default'
- ],
- "STATUS" => [
- 'default' => "사용가능",
- "pause" => "일시정지",
- ],
-];
diff --git a/app/Language/en/Equipment/Part/Domain.php b/app/Language/en/Equipment/Part/Domain.php
deleted file mode 100644
index 3020f2c..0000000
--- a/app/Language/en/Equipment/Part/Domain.php
+++ /dev/null
@@ -1,20 +0,0 @@
- "Domain정보",
- 'label' => [
- 'domain' => "도메인",
- 'expired_at' => "종료일",
- 'price' => "금액",
- 'description' => "설명",
- 'status' => "상태",
- 'updated_at' => "수정일",
- 'created_at' => "작성일",
- 'deleted_at' => "삭제일",
- ],
- "STATUS" => [
- 'default' => "사용가능",
- "pause" => "일시정지",
- "occupied" => "사용중",
- "forbidden" => "금지됨",
- ],
-];
diff --git a/app/Language/en/Equipment/Part/Ram.php b/app/Language/en/Equipment/Part/Ram.php
deleted file mode 100644
index 8dba0ae..0000000
--- a/app/Language/en/Equipment/Part/Ram.php
+++ /dev/null
@@ -1,21 +0,0 @@
- "RAM정보",
- 'label' => [
- 'model' => "모델",
- 'price' => "가격",
- 'description' => "설명",
- 'status' => "상태",
- 'updated_at' => "수정일",
- 'created_at' => "작성일",
- 'deleted_at' => "삭제일",
- ],
- 'DEFAULTS' => [
- 'status' => 'default'
- ],
- "STATUS" => [
- 'default' => "사용가능",
- "pause" => "일시정지",
-
- ],
-];
diff --git a/app/Language/en/Equipment/Part/Software.php b/app/Language/en/Equipment/Part/Software.php
deleted file mode 100644
index 3c380da..0000000
--- a/app/Language/en/Equipment/Part/Software.php
+++ /dev/null
@@ -1,29 +0,0 @@
- "소프트웨어정보",
- 'label' => [
- 'type' => "종류",
- 'model' => "모델",
- 'price' => "금액",
- 'description' => "설명",
- 'status' => "상태",
- 'updated_at' => "수정일",
- 'created_at' => "작성일",
- 'deleted_at' => "삭제일",
- ],
- 'DEFAULTS' => [
- 'type' => 'Windows',
- 'status' => 'default'
- ],
- "TYPE" => [
- "Windows" => "Windows OS",
- "Linux" => "Linux OS",
- "Security" => "보안용",
- "Virus" => "바이러스용",
- "App" => "어플리케이션",
- ],
- "STATUS" => [
- 'default' => "사용가능",
- "pause" => "일시정지",
- ],
-];
diff --git a/app/Language/en/Equipment/Part/Storage.php b/app/Language/en/Equipment/Part/Storage.php
deleted file mode 100644
index 5e9609a..0000000
--- a/app/Language/en/Equipment/Part/Storage.php
+++ /dev/null
@@ -1,20 +0,0 @@
- "DISK정보",
- 'label' => [
- 'model' => "모델",
- 'price' => "가격",
- 'description' => "설명",
- 'status' => "상태",
- 'updated_at' => "수정일",
- 'created_at' => "작성일",
- 'deleted_at' => "삭제일",
- ],
- 'DEFAULTS' => [
- 'status' => 'default'
- ],
- "STATUS" => [
- 'default' => "사용가능",
- "pause" => "일시정지",
- ],
-];
diff --git a/app/Models/CommonModel.php b/app/Models/CommonModel.php
index 4ef7686..2efcee9 100644
--- a/app/Models/CommonModel.php
+++ b/app/Models/CommonModel.php
@@ -10,8 +10,7 @@ abstract class CommonModel extends Model
protected $table = '';
protected $primaryKey = '';
protected $useAutoIncrement = true;
- // protected $returnType = 'array';
-
+ protected $returnType = 'array';
protected $useSoftDeletes = false;
protected $protectFields = true;
protected $allowedFields = [];
diff --git a/app/Models/Customer/AccountModel.php b/app/Models/Customer/AccountModel.php
index 802be0e..7c3ecf9 100644
--- a/app/Models/Customer/AccountModel.php
+++ b/app/Models/Customer/AccountModel.php
@@ -11,7 +11,6 @@ class AccountModel extends CustomerModel
const TITLE = "title";
protected $table = self::TABLE;
protected $primaryKey = self::PK;
- protected $returnType = AccountEntity::class;
protected $allowedFields = [
"clientinfo_uid",
"status",
@@ -23,6 +22,7 @@ class AccountModel extends CustomerModel
public function __construct()
{
parent::__construct();
+ $this->returnType = AccountEntity::class;
}
public function getFormFieldRule(string $action, string $field): string
{
diff --git a/app/Models/Customer/ClientHistoryModel.php b/app/Models/Customer/ClientHistoryModel.php
deleted file mode 100644
index 8e32e99..0000000
--- a/app/Models/Customer/ClientHistoryModel.php
+++ /dev/null
@@ -1,44 +0,0 @@
- field가 array 입니다.\n" . var_export($field, true));
- }
- switch ($field) {
- case "clientinfo_uid":
- $rule = "required|numeric";
- break;
- case "title":
- $rule = "required|trim|string";
- break;
- default:
- $rule = parent::getFormFieldRule($action, $field);
- break;
- }
- return $rule;
- }
-}
diff --git a/app/Models/Customer/ClientModel.php b/app/Models/Customer/ClientModel.php
index f947fbd..cb66381 100644
--- a/app/Models/Customer/ClientModel.php
+++ b/app/Models/Customer/ClientModel.php
@@ -11,7 +11,6 @@ class ClientModel extends CustomerModel
const TITLE = "name";
protected $table = self::TABLE;
protected $primaryKey = self::PK;
- protected $returnType = ClientEntity::class;
protected $allowedFields = [
"code",
"name",
@@ -27,6 +26,7 @@ class ClientModel extends CustomerModel
public function __construct()
{
parent::__construct();
+ $this->returnType = ClientEntity::class;
}
public function getFormFieldRule(string $action, string $field): string
{
diff --git a/app/Models/Customer/CouponModel.php b/app/Models/Customer/CouponModel.php
index 96beb69..159900a 100644
--- a/app/Models/Customer/CouponModel.php
+++ b/app/Models/Customer/CouponModel.php
@@ -11,7 +11,6 @@ class CouponModel extends CustomerModel
const TITLE = "title";
protected $table = self::TABLE;
protected $primaryKey = self::PK;
- protected $returnType = CouponEntity::class;
protected $allowedFields = [
"clientinfo_uid",
"status",
@@ -22,6 +21,7 @@ class CouponModel extends CustomerModel
public function __construct()
{
parent::__construct();
+ $this->returnType = CouponEntity::class;
}
public function getFormFieldRule(string $action, string $field): string
{
diff --git a/app/Models/Customer/PointModel.php b/app/Models/Customer/PointModel.php
index faa32a2..a6da1a8 100644
--- a/app/Models/Customer/PointModel.php
+++ b/app/Models/Customer/PointModel.php
@@ -11,7 +11,6 @@ class PointModel extends CustomerModel
const TITLE = "title";
protected $table = self::TABLE;
protected $primaryKey = self::PK;
- protected $returnType = PointEntity::class;
protected $allowedFields = [
"clientinfo_uid",
"status",
@@ -22,6 +21,7 @@ class PointModel extends CustomerModel
public function __construct()
{
parent::__construct();
+ $this->returnType = PointEntity::class;
}
public function getFormFieldRule(string $action, string $field): string
{
diff --git a/app/Models/Customer/ServiceHistoryModel.php b/app/Models/Customer/ServiceHistoryModel.php
deleted file mode 100644
index 3e0ee4f..0000000
--- a/app/Models/Customer/ServiceHistoryModel.php
+++ /dev/null
@@ -1,44 +0,0 @@
- field가 array 입니다.\n" . var_export($field, true));
- }
- switch ($field) {
- case "serviceinfo_uid":
- $rule = "required|numeric";
- break;
- case "title":
- $rule = "required|trim|string";
- break;
- default:
- $rule = parent::getFormFieldRule($action, $field);
- break;
- }
- return $rule;
- }
-}
diff --git a/app/Models/Customer/ServiceModel.php b/app/Models/Customer/ServiceModel.php
index 672eb5b..7fb8708 100644
--- a/app/Models/Customer/ServiceModel.php
+++ b/app/Models/Customer/ServiceModel.php
@@ -11,25 +11,22 @@ class ServiceModel extends CustomerModel
const TITLE = "code";
protected $table = self::TABLE;
protected $primaryKey = self::PK;
- protected $returnType = ServiceEntity::class;
protected $allowedFields = [
- "clientinfo_uid",
- "ownerinfo_uid",
"user_uid",
- "switchinfo_uid",
- "codeinfo_uid",
- "code",
- "type",
+ "clientinfo_uid",
+ "clientinfo_name",
"location",
- "raid",
+ "code",
"billing_at",
"start_at",
+ "end_at",
"status",
"updated_at"
];
public function __construct()
{
parent::__construct();
+ $this->returnType = ServiceEntity::class;
}
public function getFormFieldRule(string $action, string $field): string
{
@@ -37,17 +34,10 @@ class ServiceModel extends CustomerModel
throw new \Exception(__FUNCTION__ . "=> field가 array 입니다.\n" . var_export($field, true));
}
switch ($field) {
- case "clientinfo_uid":
- case "ownerinfo_uid":
case "user_uid":
- case "switchinfo_uid":
- case "codeinfo_uid":
+ case "clientinfo_uid":
$rule = "required|numeric";
break;
- case "code":
- $rule = "if_exist|trim|string";
- break;
- case "type":
case "location":
case "status":
$rule = "required|trim|string";
@@ -56,8 +46,8 @@ class ServiceModel extends CustomerModel
case "start_at":
$rule = "required|valid_date";
break;
- case "raid":
- $rule = "if_exist|trim|string";
+ case "end_at":
+ $rule = "if_exist|valid_date";
break;
default:
$rule = parent::getFormFieldRule($action, $field);
diff --git a/app/Models/Customer/ServicePaymentModel.php b/app/Models/Customer/ServicePaymentModel.php
index 7fa5916..b60ccb9 100644
--- a/app/Models/Customer/ServicePaymentModel.php
+++ b/app/Models/Customer/ServicePaymentModel.php
@@ -12,7 +12,6 @@ class ServicePaymentModel extends CustomerModel
const TITLE = "item_type";
protected $table = self::TABLE;
protected $primaryKey = self::PK;
- protected $returnType = ServicePaymentEntity::class;
protected $allowedFields = [
"serviceinfo_uid",
"ownerinfo_uid",
@@ -29,6 +28,7 @@ class ServicePaymentModel extends CustomerModel
public function __construct()
{
parent::__construct();
+ $this->returnType = ServicePaymentEntity::class;
}
public function getFormFieldRule(string $action, string $field): string
{
diff --git a/app/Models/Equipment/Part/DefenceModel.php b/app/Models/Equipment/CSModel.php
similarity index 87%
rename from app/Models/Equipment/Part/DefenceModel.php
rename to app/Models/Equipment/CSModel.php
index bd561f2..9c94d4e 100644
--- a/app/Models/Equipment/Part/DefenceModel.php
+++ b/app/Models/Equipment/CSModel.php
@@ -1,17 +1,16 @@
returnType = CSEntity::class;
}
public function getFormFieldRule(string $action, string $field): string
{
diff --git a/app/Models/Equipment/CodeModel.php b/app/Models/Equipment/CodeModel.php
deleted file mode 100644
index b3ca413..0000000
--- a/app/Models/Equipment/CodeModel.php
+++ /dev/null
@@ -1,43 +0,0 @@
- field가 array 입니다.\n" . var_export($field, true));
- }
- 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 "status":
- $rule = "required|trim|string";
- break;
- default:
- $rule = parent::getFormFieldRule($action, $field);
- break;
- }
- return $rule;
- }
-}
diff --git a/app/Models/Equipment/Part/IpModel.php b/app/Models/Equipment/IpModel.php
similarity index 100%
rename from app/Models/Equipment/Part/IpModel.php
rename to app/Models/Equipment/IpModel.php
diff --git a/app/Models/Equipment/Part/LineModel.php b/app/Models/Equipment/LineModel.php
similarity index 100%
rename from app/Models/Equipment/Part/LineModel.php
rename to app/Models/Equipment/LineModel.php
diff --git a/app/Models/Equipment/Part/DomainModel.php b/app/Models/Equipment/Part/DomainModel.php
deleted file mode 100644
index da47962..0000000
--- a/app/Models/Equipment/Part/DomainModel.php
+++ /dev/null
@@ -1,43 +0,0 @@
- field가 array 입니다.\n" . var_export($field, true));
- }
- switch ($field) {
- case "domain":
- $rule = "required|trim|valid_domain";
- $rule .= in_array($action, ["create", "create_form"]) ? "|is_unique[{$this->table}.{$field}]" : "";
- break;
- case "price":
- $rule = "required|numeric";
- break;
- default:
- $rule = parent::getFormFieldRule($action, $field);
- break;
- }
- return $rule;
- }
-}
diff --git a/app/Models/Equipment/Part/PartModel.php b/app/Models/Equipment/Part/PartModel.php
deleted file mode 100644
index ca36c84..0000000
--- a/app/Models/Equipment/Part/PartModel.php
+++ /dev/null
@@ -1,13 +0,0 @@
- field가 array 입니다.\n" . var_export($field, true));
- }
- switch ($field) {
- case "model":
- $rule = "required|trim|string";
- $rule .= in_array($action, ["create", "create_form"]) ? "|is_unique[{$this->table}.{$field}]" : "";
- break;
- case "price":
- $rule = "required|numeric";
- break;
- default:
- $rule = parent::getFormFieldRule($action, $field);
- break;
- }
- return $rule;
- }
-}
diff --git a/app/Models/Equipment/Part/SoftwareModel.php b/app/Models/Equipment/Part/SoftwareModel.php
deleted file mode 100644
index f473147..0000000
--- a/app/Models/Equipment/Part/SoftwareModel.php
+++ /dev/null
@@ -1,48 +0,0 @@
- field가 array 입니다.\n" . var_export($field, true));
- }
- switch ($field) {
- case "model":
- $rule = "required|trim|string";
- $rule .= in_array($action, ["create", "create_form"]) ? "|is_unique[{$this->table}.{$field}]" : "";
- break;
- case "type":
- $rule = "required|trim|string";
- break;
- case "price":
- $rule = "required|numeric";
- break;
- default:
- $rule = parent::getFormFieldRule($action, $field);
- break;
- }
- return $rule;
- }
-}
diff --git a/app/Models/Equipment/Part/StorageModel.php b/app/Models/Equipment/Part/StorageModel.php
deleted file mode 100644
index 8b09787..0000000
--- a/app/Models/Equipment/Part/StorageModel.php
+++ /dev/null
@@ -1,43 +0,0 @@
- field가 array 입니다.\n" . var_export($field, true));
- }
- switch ($field) {
- case "model":
- $rule = "required|trim|string";
- $rule .= in_array($action, ["create", "create_form"]) ? "|is_unique[{$this->table}.{$field}]" : "";
- break;
- case "price":
- $rule = "required|numeric";
- break;
- default:
- $rule = parent::getFormFieldRule($action, $field);
- break;
- }
- return $rule;
- }
-}
diff --git a/app/Models/Equipment/Part/CpuModel.php b/app/Models/Equipment/PartModel.php
similarity index 79%
rename from app/Models/Equipment/Part/CpuModel.php
rename to app/Models/Equipment/PartModel.php
index 59f4cde..de037eb 100644
--- a/app/Models/Equipment/Part/CpuModel.php
+++ b/app/Models/Equipment/PartModel.php
@@ -1,25 +1,25 @@
returnType = PartEntity::class;
}
final public function getFormFieldRule(string $action, string $field): string
{
diff --git a/app/Models/UserModel.php b/app/Models/UserModel.php
index 719c418..0e24f33 100644
--- a/app/Models/UserModel.php
+++ b/app/Models/UserModel.php
@@ -11,7 +11,6 @@ class UserModel extends CommonModel
const TITLE = "name";
protected $table = self::TABLE;
protected $primaryKey = self::PK;
- protected $returnType = UserEntity::class;
protected $allowedFields = [
"id",
"passwd",
@@ -25,6 +24,7 @@ class UserModel extends CommonModel
public function __construct()
{
parent::__construct();
+ $this->returnType = UserEntity::class;
}
public function getFormFieldRule(string $action, string $field): string
{
diff --git a/app/Services/Auth/AuthService.php b/app/Services/Auth/AuthService.php
index 422215b..0f577ed 100644
--- a/app/Services/Auth/AuthService.php
+++ b/app/Services/Auth/AuthService.php
@@ -5,15 +5,16 @@ namespace App\Services\Auth;
use App\Entities\UserEntity;
use App\Services\CommonService;
use CodeIgniter\Session\Session;
+use CodeIgniter\Model;
// 참고:https://github.com/SyntaxPhoenix/iloclient
abstract class AuthService extends CommonService
{
private ?Session $_session = null;
private $url_stack_name = "url_stack";
- protected function __construct()
+ protected function __construct(Model $model)
{
- parent::__construct();
+ parent::__construct($model);
$this->addClassName('Auth');
}
abstract public function login(array $formDatas): UserEntity;
diff --git a/app/Services/Auth/LocalService.php b/app/Services/Auth/LocalService.php
index 184b8f6..b7cf91f 100644
--- a/app/Services/Auth/LocalService.php
+++ b/app/Services/Auth/LocalService.php
@@ -7,9 +7,9 @@ use App\Models\UserModel;
class LocalService extends AuthService
{
- public function __construct()
+ public function __construct(UserModel $model)
{
- parent::__construct();
+ parent::__construct($model);
$this->addClassName('Local');
}
final public function getModelClass(): UserModel
diff --git a/app/Services/CommonService.php b/app/Services/CommonService.php
index 581343f..d0186dd 100644
--- a/app/Services/CommonService.php
+++ b/app/Services/CommonService.php
@@ -4,15 +4,17 @@ namespace App\Services;
use App\Entities\FormOptionEntity;
use App\Libraries\LogCollector;
+use CodeIgniter\Model;
abstract class CommonService
{
- private $_serviceDatas = [];
private $_model = null;
private $_classNames = [];
- protected function __construct() {}
- abstract public function getModelClass(): mixed;
- abstract public function getEntityClass(): mixed;
+ private $_serviceDatas = [];
+ protected function __construct(Model $model)
+ {
+ $this->_model = $model;
+ }
abstract public function getFormFields(): array;
abstract public function getFilterFields(): array;
abstract public function getBatchJobFields(): array;
@@ -54,7 +56,7 @@ abstract class CommonService
final protected function getModel(): mixed
{
if (!$this->_model) {
- $this->_model = $this->getModelClass();
+ throw new \Exception("Model이 정의되지 않았습니다. " . __METHOD__);
}
return $this->_model;
}
diff --git a/app/Services/Customer/ClientHistoryService.php b/app/Services/Customer/ClientHistoryService.php
deleted file mode 100644
index 61c1ff2..0000000
--- a/app/Services/Customer/ClientHistoryService.php
+++ /dev/null
@@ -1,57 +0,0 @@
-addClassName('ClientHistory');
- }
- public function getModelClass(): ClientHistoryModel
- {
- return new ClientHistoryModel();
- }
- public function getEntityClass(): ClientHistoryEntity
- {
- return new ClientHistoryEntity();
- }
- public function getFormFields(): array
- {
- return [
- "clientinfo_uid",
- "title",
- "description",
- ];
- }
- public function getFilterFields(): array
- {
- return ["clientinfo_uid", 'status'];
- }
- public function getBatchJobFields(): array
- {
- return ['status'];
- }
- public function getIndexFields(): array
- {
- return ['clientinfo_uid', 'title', 'status', 'created_at'];
- }
- //FieldForm관련용
- public function getFormFieldOption(string $field, array $options = []): array
- {
- switch ($field) {
- case 'clientinfo_uid':
- $options = $this->getClientService()->getEntities();
- break;
- default:
- $options = parent::getFormFieldOption($field, $options);
- break;
- }
- return $options;
- }
-}
diff --git a/app/Services/Customer/CustomerService.php b/app/Services/Customer/CustomerService.php
index dd1203c..ef98ee8 100644
--- a/app/Services/Customer/CustomerService.php
+++ b/app/Services/Customer/CustomerService.php
@@ -16,15 +16,17 @@ use App\Services\Equipment\Part\SoftwareService;
use App\Services\Equipment\Part\StorageService;
use App\Services\Equipment\ServerService;
use App\Services\UserService;
+use CodeIgniter\Model;
abstract class CustomerService extends CommonService
{
private ?UserService $_userService = null;
private ?ClientService $_clientService = null;
+ private ?ServerService $_serverService = null;
private $_equipmentService = [];
- protected function __construct()
+ protected function __construct(Model $model)
{
- parent::__construct();
+ parent::__construct($model);
$this->addClassName('Customer');
}
final public function getClientService(): ClientService
@@ -48,6 +50,13 @@ abstract class CustomerService extends CommonService
}
return $this->_serviceService;
}
+ final public function getServerService(): ServerService
+ {
+ if (!$this->_serverService) {
+ $this->_serverService = new ServerService();
+ }
+ return $this->_serverService;
+ }
//ServiceItemController,ServiceController에서 사용
final public function getServiceItemLinkService(string $key): mixed
{
diff --git a/app/Services/Customer/ServiceHistoryService.php b/app/Services/Customer/ServiceHistoryService.php
deleted file mode 100644
index 6296f1c..0000000
--- a/app/Services/Customer/ServiceHistoryService.php
+++ /dev/null
@@ -1,44 +0,0 @@
-addClassName('ServiceHistory');
- }
- public function getModelClass(): ServiceHistoryModel
- {
- return new ServiceHistoryModel();
- }
- public function getEntityClass(): ServiceHistoryEntity
- {
- return new ServiceHistoryEntity();
- }
- public function getFormFields(): array
- {
- return [
- "serviceinfo_uid",
- "title",
- "description",
- ];
- }
- public function getFilterFields(): array
- {
- return ["serviceinfo_uid", 'status'];
- }
- public function getBatchJobFields(): array
- {
- return ['status'];
- }
- public function getIndexFields(): array
- {
- return ['serviceinfo_uid', 'title', 'status', 'created_at'];
- }
- //FieldForm관련용
-}
diff --git a/app/Services/Customer/ServiceService.php b/app/Services/Customer/ServiceService.php
index 5368ada..2e5f62a 100644
--- a/app/Services/Customer/ServiceService.php
+++ b/app/Services/Customer/ServiceService.php
@@ -3,44 +3,22 @@
namespace App\Services\Customer;
use App\Entities\Customer\ServiceEntity;
-use App\Entities\Equipment\CodeEntity;
-
-use App\Entities\Equipment\SwitchEntity;
use App\Models\Customer\ServiceModel;
-use App\Services\Customer\ServiceItemService;
-use App\Services\Equipment\CodeService;
-use App\Services\Equipment\SwitchService;
+
class ServiceService extends CustomerService
{
- private ?CodeService $_codeService = null;
- private ?SwitchService $_switchService = null;
- private ?ServiceItemService $_serviceItemService = null;
private ?ServicePaymentService $_servicePaymentService = null;
private ?string $_searchIP = null;
public function __construct()
{
- parent::__construct();
+ parent::__construct(new ServiceModel());
$this->addClassName('Service');
}
- public function getModelClass(): ServiceModel
- {
- return new ServiceModel();
- }
- public function getEntityClass(): ServiceEntity
- {
- return new ServiceEntity();
- }
public function getFormFields(): array
{
return [
"clientinfo_uid",
- "ownerinfo_uid",
- "type",
- "location",
- "switchinfo_uid",
- "codeinfo_uid",
- "raid",
"billing_at",
"start_at",
"status"
@@ -48,7 +26,7 @@ class ServiceService extends CustomerService
}
public function getFilterFields(): array
{
- return ["clientinfo_uid", 'ownerinfo_uid', 'user_uid', 'type', 'location', 'switchinfo_uid', 'codeinfo_uid', 'raid', 'status'];
+ return ["user_uid", "clientinfo_uid", 'status'];
}
public function getBatchJobFields(): array
{
@@ -56,28 +34,7 @@ class ServiceService extends CustomerService
}
public function getIndexFields(): array
{
- return ['clientinfo_uid', 'ownerinfo_uid', 'type', 'location', 'switchinfo_uid', 'codeinfo_uid', 'raid', 'billing_at', 'start_at', 'updated_at', 'status', 'user_uid'];
- }
- public function getCodeService(): CodeService
- {
- if (!$this->_codeService) {
- $this->_codeService = new CodeService();
- }
- return $this->_codeService;
- }
- public function getSwitchService(): SwitchService
- {
- if (!$this->_switchService) {
- $this->_switchService = new SwitchService();
- }
- return $this->_switchService;
- }
- public function getServiceItemService(): ServiceItemService
- {
- if (!$this->_serviceItemService) {
- $this->_serviceItemService = new ServiceItemService();
- }
- return $this->_serviceItemService;
+ return ['clientinfo_uid', 'location', 'billing_at', 'start_at', 'updated_at', 'status', 'user_uid'];
}
public function getServicePaymentService(): ServicePaymentService
{
@@ -115,11 +72,8 @@ class ServiceService extends CustomerService
case 'user_uid':
$options = $this->getUserService()->getEntities();
break;
- case 'codeinfo_uid':
- $options = $this->getCodeService()->getEntities();
- break;
- case 'switchinfo_uid':
- $options = $this->getSwitchService()->getEntities();
+ case 'clientinfo_uid':
+ $options = $this->getClientService()->getEntities();
break;
default:
$options = parent::getFormFieldOption($field, $options);
@@ -127,26 +81,10 @@ class ServiceService extends CustomerService
}
return $options;
}
- //Service마다 ItemEntities 설정용
- public function setItemEntitiesByService(ServiceEntity $entity): ServiceEntity
- {
- foreach (SERVICE_ITEM_TYPES as $item_type => $label) {
- $itemEntities = $this->getServiceItemService()->getEntities([
- 'serviceinfo_uid' => $entity->getPK(),
- 'item_type' => $item_type
- ]);
- $entity->setItemEntities($item_type, $itemEntities);
- }
- return $entity;
- }
//interval을 기준으로 최근 신규 서비스정보 가져오기
final public function getEntitiesByNewService(int $interval, string $status = DEFAULTS['STATUS']): array
{
- $entities = [];
- foreach ($this->getEntities(sprintf("start_at >= NOW()-INTERVAL {$interval} DAY AND status = '%s'", $status)) as $entity) {
- $entities[$entity->getPK()] = $this->setItemEntitiesByService($entity);
- };
- return $entities;
+ return $this->getEntities(sprintf("start_at >= NOW()-INTERVAL {$interval} DAY AND status = '%s'", $status));
}
//서비스 방식에 따른 서비스별 Count
final public function getTotalCountsByType(): array
@@ -182,10 +120,9 @@ class ServiceService extends CustomerService
}
public function create(array $formDatas): ServiceEntity
{
- //code의 경우 서비스중으로 설정작업
- $this->getCodeService()->setStatus($formDatas['codeinfo_uid'], CodeEntity::STATUS_OCCUPIED);
- //switch의 경우 서비스중으로 설정작업
- $this->getSwitchService()->setStatus($formDatas['switchinfo_uid'], SwitchEntity::STATUS_OCCUPIED);
+ $entity = parent::create($formDatas);
+ //서버경우 서비스중으로 설정작업
+ // $this->getServerService()->setService($entity)ServerEntity::STATUS_OCCUPIED);
return parent::create($formDatas);
}
public function modify(mixed $entity, array $formDatas): ServiceEntity
diff --git a/app/Services/Equipment/CodeService.php b/app/Services/Equipment/CodeService.php
deleted file mode 100644
index 9b10fe4..0000000
--- a/app/Services/Equipment/CodeService.php
+++ /dev/null
@@ -1,60 +0,0 @@
-addClassName('Code');
- }
- public function getModelClass(): CodeModel
- {
- return new CodeModel();
- }
- public function getEntityClass(): CodeEntity
- {
- return new CodeEntity();
- }
- public function getFormFields(): array
- {
- return [
- "code",
- "status",
- ];
- }
- public function getFilterFields(): array
- {
- return ['status'];
- }
- public function getBatchJobFields(): array
- {
- return ['status'];
- }
- public function getIndexFields(): array
- {
- return ['code', 'status'];
- }
- //상태변경
- public function setStatus(string $code, string $status): CodeEntity
- {
- //code의 경우 사용가능/사용중으로 설정작업
- $entity = $this->getEntity($code);
- if (!$entity) {
- throw new \Exception("{$code}에 대한 서버코드정보를 찾을수 없습니다.");
- }
- return $this->getModel()->modify($entity, ['status' => $status]);
- }
- //List 검색용
- //OrderBy 처리
- public function setOrderBy(mixed $field = null, mixed $value = null): void
- {
- $this->getModel()->orderBy('code', 'ASC');
- parent::setOrderBy($field, $value);
- }
-}
diff --git a/app/Services/Equipment/Part/DefenceService.php b/app/Services/Equipment/DefenceService.php
similarity index 100%
rename from app/Services/Equipment/Part/DefenceService.php
rename to app/Services/Equipment/DefenceService.php
diff --git a/app/Services/Equipment/Part/DomainService.php b/app/Services/Equipment/DomainService.php
similarity index 100%
rename from app/Services/Equipment/Part/DomainService.php
rename to app/Services/Equipment/DomainService.php
diff --git a/app/Services/Equipment/Part/IpService.php b/app/Services/Equipment/IpService.php
similarity index 100%
rename from app/Services/Equipment/Part/IpService.php
rename to app/Services/Equipment/IpService.php
diff --git a/app/Services/Equipment/Part/LineService.php b/app/Services/Equipment/LineService.php
similarity index 100%
rename from app/Services/Equipment/Part/LineService.php
rename to app/Services/Equipment/LineService.php
diff --git a/app/Services/Equipment/Part/CpuService.php b/app/Services/Equipment/Part/CpuService.php
deleted file mode 100644
index 72707ee..0000000
--- a/app/Services/Equipment/Part/CpuService.php
+++ /dev/null
@@ -1,49 +0,0 @@
-addClassName('Cpu');
- }
- public function getModelClass(): CpuModel
- {
- return new CpuModel();
- }
- public function getEntityClass(): CpuEntity
- {
- return new CpuEntity();
- }
- final public function getFormFields(): array
- {
- return [
- "model",
- "status",
- ];
- }
- final public function getFilterFields(): array
- {
- return ['status'];
- }
- final public function getBatchJobFields(): array
- {
- return ['status'];
- }
- public function getIndexFields(): array
- {
- return ['model', 'status'];
- }
- //List 검색용
- //OrderBy 처리
- public function setOrderBy(mixed $field = null, mixed $value = null): void
- {
- $this->getModel()->orderBy('model', 'ASC');
- parent::setOrderBy($field, $value);
- }
-}
diff --git a/app/Services/Equipment/Part/RamService.php b/app/Services/Equipment/Part/RamService.php
deleted file mode 100644
index 46f75ae..0000000
--- a/app/Services/Equipment/Part/RamService.php
+++ /dev/null
@@ -1,49 +0,0 @@
-addClassName('Ram');
- }
- public function getModelClass(): RamModel
- {
- return new RamModel();
- }
- public function getEntityClass(): RamEntity
- {
- return new RamEntity();
- }
- final public function getFormFields(): array
- {
- return [
- "model",
- "status",
- ];
- }
- final public function getFilterFields(): array
- {
- return ['status'];
- }
- final public function getBatchJobFields(): array
- {
- return ['status'];
- }
- public function getIndexFields(): array
- {
- return ['model', 'status'];
- }
- //List 검색용
- //OrderBy 처리
- public function setOrderBy(mixed $field = null, mixed $value = null): void
- {
- $this->getModel()->orderBy('model', 'ASC');
- parent::setOrderBy($field, $value);
- }
-}
diff --git a/app/Services/Equipment/Part/SoftwareService.php b/app/Services/Equipment/Part/SoftwareService.php
deleted file mode 100644
index 32372b0..0000000
--- a/app/Services/Equipment/Part/SoftwareService.php
+++ /dev/null
@@ -1,51 +0,0 @@
-addClassName('Software');
- }
- public function getModelClass(): SoftwareModel
- {
- return new SoftwareModel();
- }
- public function getEntityClass(): SoftwareEntity
- {
- return new SoftwareEntity();
- }
- public function getFormFields(): array
- {
- return [
- "type",
- "model",
- "status",
- "description",
- ];
- }
- public function getFilterFields(): array
- {
- return ['type', 'status'];
- }
- public function getBatchJobFields(): array
- {
- return ['type', 'status'];
- }
- public function getIndexFields(): array
- {
- return ['type', 'model', 'status'];
- }
- //List 검색용
- //OrderBy 처리
- public function setOrderBy(mixed $field = null, mixed $value = null): void
- {
- $this->getModel()->orderBy('model', 'ASC');
- parent::setOrderBy($field, $value);
- }
-}
diff --git a/app/Services/Equipment/Part/StorageService.php b/app/Services/Equipment/Part/StorageService.php
deleted file mode 100644
index f84febf..0000000
--- a/app/Services/Equipment/Part/StorageService.php
+++ /dev/null
@@ -1,49 +0,0 @@
-addClassName('Storage');
- }
- public function getModelClass(): StorageModel
- {
- return new StorageModel();
- }
- public function getEntityClass(): StorageEntity
- {
- return new StorageEntity();
- }
- final public function getFormFields(): array
- {
- return [
- "model",
- "status",
- ];
- }
- final public function getFilterFields(): array
- {
- return ['status'];
- }
- final public function getBatchJobFields(): array
- {
- return ['status'];
- }
- public function getIndexFields(): array
- {
- return ['model', 'status'];
- }
- //List 검색용
- //OrderBy 처리
- public function setOrderBy(mixed $field = null, mixed $value = null): void
- {
- $this->getModel()->orderBy('model', 'ASC');
- parent::setOrderBy($field, $value);
- }
-}
diff --git a/app/Services/Equipment/Part/PartService.php b/app/Services/Equipment/PartService.php
similarity index 100%
rename from app/Services/Equipment/Part/PartService.php
rename to app/Services/Equipment/PartService.php
diff --git a/app/Services/UserService.php b/app/Services/UserService.php
index 071e617..1c6d5af 100644
--- a/app/Services/UserService.php
+++ b/app/Services/UserService.php
@@ -9,18 +9,9 @@ class UserService extends CommonService
{
public function __construct()
{
- parent::__construct();
+ parent::__construct(new UserModel());
$this->addClassName('User');
}
- public function getModelClass(): UserModel
- {
- return new UserModel();
- }
- public function getEntityClass(): UserEntity
- {
- return new UserEntity();
- }
-
public function getFormFields(): array
{
return ['id', 'passwd', 'confirmpassword', 'name', 'email', 'mobile', 'role'];