dbms_init...1

This commit is contained in:
최준흠 2025-05-26 17:50:29 +09:00
parent a3495e708c
commit 0464a2904a
42 changed files with 1016 additions and 220 deletions

View File

@ -4,9 +4,9 @@
"settings": {
"width": 4000,
"height": 4000,
"scrollTop": -1509.6709,
"scrollLeft": -462.1479,
"zoomLevel": 0.76,
"scrollTop": -2838.7381,
"scrollLeft": -1765.3486,
"zoomLevel": 0.82,
"show": 511,
"database": 4,
"databaseName": "",
@ -57,7 +57,8 @@
"XywAFAP3s5Xl6G-3txHTH",
"kHLWAzQmZ3CCs0KpilqZ7",
"x7rn2-q2i7C6Lin0XwIR_",
"DKSom-hQqNhI1z7FqSa6Y"
"DKSom-hQqNhI1z7FqSa6Y",
"QmgAf0ZVXXxPIZ-HUgQlY"
],
"relationshipIds": [
"gAVYXWnBSnCw-0ieO4Mil",
@ -84,7 +85,9 @@
"J7H72NkdPg1gZdSAur4la",
"7aO23DPo-ueZ6G-9dCKXu",
"2yh_-sL8npRIpX_JwH3Vl",
"c9fmyTtPkeRt6aHosMiSQ"
"c9fmyTtPkeRt6aHosMiSQ",
"U2nR5f47vV7PnW-80gxhR",
"iQCazIDeUufmN-nNXDo5I"
],
"indexIds": [],
"memoIds": []
@ -264,15 +267,15 @@
"AlvBDBVGfLoVcNjd__kFZ"
],
"ui": {
"x": 1192.032,
"y": 1455.8365,
"x": 1156.7379,
"y": 1717.6012,
"zIndex": 2,
"widthName": 60,
"widthComment": 60,
"color": ""
},
"meta": {
"updateAt": 1748229167728,
"updateAt": 1748244309373,
"createAt": 1745819764137
}
},
@ -305,15 +308,15 @@
"8ZPjmeG3NoO6C0icGibJP"
],
"ui": {
"x": 1208.9179,
"y": 2611.3424,
"x": 1167.7414,
"y": 2846.6365,
"zIndex": 2,
"widthName": 68,
"widthComment": 89,
"color": ""
},
"meta": {
"updateAt": 1748229244424,
"updateAt": 1748244321138,
"createAt": 1745819764138
}
},
@ -351,15 +354,15 @@
"liJON6hIBB9aS-pQgM0Q6"
],
"ui": {
"x": 2523.531,
"y": 975.4882,
"x": 1781.6193,
"y": 1161.13,
"zIndex": 2,
"widthName": 60,
"widthComment": 60,
"color": ""
},
"meta": {
"updateAt": 1748229375830,
"updateAt": 1748244616364,
"createAt": 1745819764138
}
},
@ -394,15 +397,15 @@
"R-UjmO-S2UeQdddVNwH5M"
],
"ui": {
"x": 1182.4307,
"y": 1141.8961,
"x": 1150.0778,
"y": 1433.0726,
"zIndex": 2,
"widthName": 60,
"widthComment": 60,
"color": ""
},
"meta": {
"updateAt": 1748229170568,
"updateAt": 1748244376705,
"createAt": 1745819764138
}
},
@ -657,15 +660,15 @@
"mwVYv9PaJFpoxYvTRJ223"
],
"ui": {
"x": 1197.3716,
"y": 1822.7912,
"x": 1162.0777,
"y": 2078.6735,
"zIndex": 495,
"widthName": 60,
"widthComment": 60,
"color": ""
},
"meta": {
"updateAt": 1748229213260,
"updateAt": 1748244312026,
"createAt": 1746783410914
}
},
@ -702,15 +705,15 @@
"pzEFysMFfI2J8uB8YHXxA"
],
"ui": {
"x": 1206.5028,
"y": 2922.629,
"x": 1168.2675,
"y": 3160.8644,
"zIndex": 796,
"widthName": 64,
"widthComment": 60,
"color": ""
},
"meta": {
"updateAt": 1748229254375,
"updateAt": 1748244322259,
"createAt": 1747374666215
}
},
@ -740,15 +743,15 @@
"K_QGLeRYAUneRz7KBswho"
],
"ui": {
"x": 1200.3245,
"y": 2082.5248,
"x": 1167.9716,
"y": 2347.2306,
"zIndex": 1036,
"widthName": 60,
"widthComment": 60,
"color": ""
},
"meta": {
"updateAt": 1748229224412,
"updateAt": 1748244314623,
"createAt": 1747808112554
}
},
@ -775,15 +778,15 @@
"ixmBlLhmVt4et6tZEwLPC"
],
"ui": {
"x": 1206.5149,
"y": 2350.4325,
"x": 1168.2797,
"y": 2597.4913,
"zIndex": 1118,
"widthName": 60,
"widthComment": 60,
"color": ""
},
"meta": {
"updateAt": 1748229235528,
"updateAt": 1748244316485,
"createAt": 1747808548333
}
},
@ -853,15 +856,15 @@
"6T7sNUPqpTPJm6TI7Qbbe"
],
"ui": {
"x": 1214.1526,
"y": 3284.386,
"x": 1190.6231,
"y": 3513.7977,
"zIndex": 1276,
"widthName": 63,
"widthComment": 65,
"color": ""
},
"meta": {
"updateAt": 1748229267465,
"updateAt": 1748244325173,
"createAt": 1748218895681
}
},
@ -891,15 +894,15 @@
"W3wh0h5zKLtV6LmBly1fv"
],
"ui": {
"x": 193.0917,
"y": 1518.7496,
"x": 312.4465,
"y": 1499.3948,
"zIndex": 1306,
"widthName": 60,
"widthComment": 60,
"color": ""
},
"meta": {
"updateAt": 1748229306138,
"updateAt": 1748244855192,
"createAt": 1748223128194
}
},
@ -1007,15 +1010,15 @@
"Ho9aHOXhQNaQYcJdaMz98"
],
"ui": {
"x": 184.6859,
"y": 1202.4731,
"x": 300.8149,
"y": 1196.0215,
"zIndex": 1446,
"widthName": 64,
"widthComment": 74,
"color": ""
},
"meta": {
"updateAt": 1748229119647,
"updateAt": 1748244860938,
"createAt": 1748224348554
}
},
@ -1044,15 +1047,15 @@
"0b3XIZcKMDp_3uSOXHEH4"
],
"ui": {
"x": 185.3818,
"y": 887.9307,
"x": 311.1883,
"y": 875.0275,
"zIndex": 1593,
"widthName": 67,
"widthComment": 89,
"color": ""
},
"meta": {
"updateAt": 1748229116873,
"updateAt": 1748244862354,
"createAt": 1748226446838
}
},
@ -1073,15 +1076,15 @@
"8qAFg1S4o6WBlSMD-ehm1"
],
"ui": {
"x": 2530.3659,
"y": 1320.2421,
"x": 2574.7156,
"y": 1905.5362,
"zIndex": 1650,
"widthName": 100,
"widthComment": 65,
"color": ""
},
"meta": {
"updateAt": 1748229369917,
"updateAt": 1748244460026,
"createAt": 1748227846189
}
},
@ -1102,15 +1105,15 @@
"HVV8J5AkMnozP0S65BeS2"
],
"ui": {
"x": 2545.6855,
"y": 1632.2914,
"x": 2578.0383,
"y": 2141.1149,
"zIndex": 1683,
"widthName": 109,
"widthComment": 77,
"color": ""
},
"meta": {
"updateAt": 1748229366062,
"updateAt": 1748244338061,
"createAt": 1748228149005
}
},
@ -1131,15 +1134,15 @@
"kP95mIVWhIRaVVvCLTXSH"
],
"ui": {
"x": 2543.5995,
"y": 1975.5922,
"x": 2584.776,
"y": 2390.2982,
"zIndex": 1720,
"widthName": 110,
"widthComment": 81,
"color": ""
},
"meta": {
"updateAt": 1748229362549,
"updateAt": 1748244345309,
"createAt": 1748228343657
}
},
@ -1160,15 +1163,15 @@
"5hericEusqGgI1pg0jFc1"
],
"ui": {
"x": 2551.0909,
"y": 2244.407,
"x": 2592.2675,
"y": 2650.2895,
"zIndex": 1741,
"widthName": 111,
"widthComment": 80,
"color": ""
},
"meta": {
"updateAt": 1748229359366,
"updateAt": 1748244351015,
"createAt": 1748228440581
}
},
@ -1189,15 +1192,15 @@
"4yuH6ZQUnURnk_U6roXVl"
],
"ui": {
"x": 2566.4476,
"y": 2805.6594,
"x": 2581.4628,
"y": 3241.8824,
"zIndex": 1763,
"widthName": 132,
"widthComment": 79,
"color": ""
},
"meta": {
"updateAt": 1748229353582,
"updateAt": 1748244557895,
"createAt": 1748228523646
}
},
@ -1218,15 +1221,15 @@
"bLPLRDM9p3TWgZqOehkRR"
],
"ui": {
"x": 2570.5649,
"y": 2562.7184,
"x": 2591.1532,
"y": 2930.3654,
"zIndex": 1797,
"widthName": 135,
"widthComment": 101,
"color": ""
},
"meta": {
"updateAt": 1748229356135,
"updateAt": 1748244356258,
"createAt": 1748228685683
}
},
@ -1247,17 +1250,47 @@
"AWwG30rhbOSU6Euyee2Px"
],
"ui": {
"x": 2562.3299,
"y": 3088.0124,
"x": 2577.0359,
"y": 3435.0712,
"zIndex": 1822,
"widthName": 130,
"widthComment": 91,
"color": ""
},
"meta": {
"updateAt": 1748229350758,
"updateAt": 1748244244345,
"createAt": 1748228820879
}
},
"QmgAf0ZVXXxPIZ-HUgQlY": {
"id": "QmgAf0ZVXXxPIZ-HUgQlY",
"name": "serverinfos_lineinfos",
"comment": "서버_회선정보",
"columnIds": [
"kvxrJ63HuwXmC2zmgeXcY",
"uBMa2GHVEzoB58E-Rcl48",
"wXfA2J6YcI6ySX_4McNS2",
"aWrqV1qsSd5-Kp5nVsyhL"
],
"seqColumnIds": [
"kvxrJ63HuwXmC2zmgeXcY",
"uBMa2GHVEzoB58E-Rcl48",
"wXfA2J6YcI6ySX_4McNS2",
"QEGZd3nUz4vcfEKE1xenI",
"aWrqV1qsSd5-Kp5nVsyhL"
],
"ui": {
"x": 2574.4317,
"y": 1687.4416,
"zIndex": 1861,
"widthName": 109,
"widthComment": 79,
"color": ""
},
"meta": {
"updateAt": 1748245019054,
"createAt": 1748244397324
}
}
},
"tableColumnEntities": {
@ -7660,6 +7693,106 @@
"updateAt": 1748228901285,
"createAt": 1748228892140
}
},
"kvxrJ63HuwXmC2zmgeXcY": {
"id": "kvxrJ63HuwXmC2zmgeXcY",
"tableId": "QmgAf0ZVXXxPIZ-HUgQlY",
"name": "uid",
"comment": "",
"dataType": "INT",
"default": "",
"options": 15,
"ui": {
"keys": 1,
"widthName": 60,
"widthComment": 60,
"widthDataType": 60,
"widthDefault": 60
},
"meta": {
"updateAt": 1748244444356,
"createAt": 1748244414364
}
},
"aWrqV1qsSd5-Kp5nVsyhL": {
"id": "aWrqV1qsSd5-Kp5nVsyhL",
"tableId": "QmgAf0ZVXXxPIZ-HUgQlY",
"name": "created_at",
"comment": "",
"dataType": "TIMESTAMP",
"default": "CURRENT_TIMESTAMP",
"options": 8,
"ui": {
"keys": 0,
"widthName": 60,
"widthComment": 60,
"widthDataType": 65,
"widthDefault": 122
},
"meta": {
"updateAt": 1748244414365,
"createAt": 1748244414365
}
},
"uBMa2GHVEzoB58E-Rcl48": {
"id": "uBMa2GHVEzoB58E-Rcl48",
"tableId": "QmgAf0ZVXXxPIZ-HUgQlY",
"name": "serverinfo_uid",
"comment": "",
"dataType": "INT",
"default": "",
"options": 8,
"ui": {
"keys": 2,
"widthName": 76,
"widthComment": 60,
"widthDataType": 60,
"widthDefault": 60
},
"meta": {
"updateAt": 1748244510684,
"createAt": 1748244473142
}
},
"QEGZd3nUz4vcfEKE1xenI": {
"id": "QEGZd3nUz4vcfEKE1xenI",
"tableId": "QmgAf0ZVXXxPIZ-HUgQlY",
"name": "lineinfo_uid",
"comment": "",
"dataType": "INT",
"default": "",
"options": 8,
"ui": {
"keys": 0,
"widthName": 63,
"widthComment": 60,
"widthDataType": 60,
"widthDefault": 60
},
"meta": {
"updateAt": 1748244516870,
"createAt": 1748244494577
}
},
"wXfA2J6YcI6ySX_4McNS2": {
"id": "wXfA2J6YcI6ySX_4McNS2",
"tableId": "QmgAf0ZVXXxPIZ-HUgQlY",
"name": "lineinfo_uid",
"comment": "",
"dataType": "INT",
"default": "",
"options": 8,
"ui": {
"keys": 2,
"widthName": 63,
"widthComment": 60,
"widthDataType": 60,
"widthDefault": 60
},
"meta": {
"updateAt": 1748244634796,
"createAt": 1748244625113
}
}
},
"relationshipEntities": {
@ -7785,8 +7918,8 @@
"columnIds": [
"7B0zaLoZnOoMNW8OHZlrQ"
],
"x": 2523.531,
"y": 1179.4882,
"x": 1781.6193,
"y": 1365.13,
"direction": 1
},
"end": {
@ -7794,8 +7927,8 @@
"columnIds": [
"f7_MGvRjkwL1xkCWrAgDR"
],
"x": 1680.4307,
"y": 1203.8961,
"x": 1648.0778,
"y": 1495.0726,
"direction": 2
},
"meta": {
@ -7822,8 +7955,8 @@
"columnIds": [
"5KRw8TtT2nLqpYfKFOBwe"
],
"x": 2523.531,
"y": 1043.4882,
"x": 1781.6193,
"y": 1229.13,
"direction": 1
},
"meta": {
@ -7934,8 +8067,8 @@
"columnIds": [
"4ZPfgU2ooMQksUvTVE3DH"
],
"x": 703.0917,
"y": 1580.7496,
"x": 822.4465,
"y": 1561.3948,
"direction": 2
},
"meta": {
@ -7953,9 +8086,9 @@
"columnIds": [
"DX0y0VIZ430hVZbT_pmKl"
],
"x": 448.0917,
"y": 1766.7496,
"direction": 8
"x": 312.4465,
"y": 1623.3948,
"direction": 1
},
"end": {
"tableId": "UuZoDcFNrKD0iTjVkA2Ew",
@ -7981,8 +8114,8 @@
"columnIds": [
"DX0y0VIZ430hVZbT_pmKl"
],
"x": 703.0917,
"y": 1704.7496,
"x": 822.4465,
"y": 1685.3948,
"direction": 2
},
"end": {
@ -8018,8 +8151,8 @@
"columnIds": [
"s6Juv5DV5R4Yc_nxRzyQG"
],
"x": 718.6859,
"y": 1326.4731,
"x": 834.8149000000001,
"y": 1320.0215,
"direction": 2
},
"meta": {
@ -8046,8 +8179,8 @@
"columnIds": [
"8TLeYhxU1ZWII8eSABTTP"
],
"x": 699.3818,
"y": 1011.9307,
"x": 825.1883,
"y": 999.0275,
"direction": 2
},
"meta": {
@ -8065,8 +8198,8 @@
"columnIds": [
"Id0h8QbOdlhPj9P1zTm5o"
],
"x": 1680.4307,
"y": 1327.8961,
"x": 1648.0778,
"y": 1619.0726,
"direction": 2
},
"end": {
@ -8074,8 +8207,8 @@
"columnIds": [
"woS0kjRSXcXN1L79VN2ix"
],
"x": 2530.3659,
"y": 1358.2421,
"x": 2574.7156,
"y": 1943.5362,
"direction": 1
},
"meta": {
@ -8093,8 +8226,8 @@
"columnIds": [
"F9EPb6nsDx6Tf3GG8rvP1"
],
"x": 1689.032,
"y": 1478.6936428571428,
"x": 1653.7379,
"y": 1777.6012,
"direction": 2
},
"end": {
@ -8102,8 +8235,8 @@
"columnIds": [
"067vdUFESzj48PGB_QLjg"
],
"x": 2530.3659,
"y": 1434.2421,
"x": 2574.7156,
"y": 2019.5362,
"direction": 1
},
"meta": {
@ -8121,8 +8254,8 @@
"columnIds": [
"F9EPb6nsDx6Tf3GG8rvP1"
],
"x": 1689.032,
"y": 1524.4079285714286,
"x": 1653.7379,
"y": 1817.6012,
"direction": 2
},
"end": {
@ -8130,8 +8263,8 @@
"columnIds": [
"B6XMwBsjXzUg7Glny_NkC"
],
"x": 2545.6855,
"y": 1670.2914,
"x": 2578.0383,
"y": 2179.1149,
"direction": 1
},
"meta": {
@ -8149,8 +8282,8 @@
"columnIds": [
"Jh6e_-9QYe1Tqve0PE3kT"
],
"x": 1694.3716,
"y": 1934.7912,
"x": 1659.0777,
"y": 2190.6735,
"direction": 2
},
"end": {
@ -8158,8 +8291,8 @@
"columnIds": [
"CBCTA2-9kJYGl-jsoO1w6"
],
"x": 2545.6855,
"y": 1746.2914,
"x": 2578.0383,
"y": 2255.1149,
"direction": 1
},
"meta": {
@ -8177,8 +8310,8 @@
"columnIds": [
"F9EPb6nsDx6Tf3GG8rvP1"
],
"x": 1689.032,
"y": 1570.1222142857143,
"x": 1653.7379,
"y": 1857.6012,
"direction": 2
},
"end": {
@ -8186,8 +8319,8 @@
"columnIds": [
"0UhqQkNDg3DHug5zXFJEY"
],
"x": 2543.5995,
"y": 2013.5922,
"x": 2584.776,
"y": 2428.2982,
"direction": 1
},
"meta": {
@ -8205,8 +8338,8 @@
"columnIds": [
"203b3hUKUQ_Gu5wKShBgZ"
],
"x": 1697.3245,
"y": 2194.5248,
"x": 1664.9716,
"y": 2459.2306,
"direction": 2
},
"end": {
@ -8214,8 +8347,8 @@
"columnIds": [
"Bg-Tx0N2d0uSzyhPkhyck"
],
"x": 2543.5995,
"y": 2089.5922,
"x": 2584.776,
"y": 2504.2982,
"direction": 1
},
"meta": {
@ -8233,8 +8366,8 @@
"columnIds": [
"F9EPb6nsDx6Tf3GG8rvP1"
],
"x": 1689.032,
"y": 1615.8365000000001,
"x": 1653.7379,
"y": 1897.6012,
"direction": 2
},
"end": {
@ -8242,8 +8375,8 @@
"columnIds": [
"STLYnqCG56zLLyNnfgnqR"
],
"x": 2551.0909,
"y": 2282.407,
"x": 2592.2675,
"y": 2688.2895,
"direction": 1
},
"meta": {
@ -8261,8 +8394,8 @@
"columnIds": [
"WaCB3uNZYFReAPiBqQ97v"
],
"x": 1703.5149,
"y": 2462.4325,
"x": 1665.2797,
"y": 2709.4913,
"direction": 2
},
"end": {
@ -8270,8 +8403,8 @@
"columnIds": [
"thCqAUxooyOoqA0o8Cr1S"
],
"x": 2551.0909,
"y": 2358.407,
"x": 2592.2675,
"y": 2764.2895,
"direction": 1
},
"meta": {
@ -8289,8 +8422,8 @@
"columnIds": [
"F9EPb6nsDx6Tf3GG8rvP1"
],
"x": 1689.032,
"y": 1707.2650714285717,
"x": 1653.7379,
"y": 1977.6012,
"direction": 2
},
"end": {
@ -8298,8 +8431,8 @@
"columnIds": [
"PhV2kPOROFN2Paxn0Q3KK"
],
"x": 2566.4476,
"y": 2843.6594,
"x": 2581.4628,
"y": 3279.8824,
"direction": 1
},
"meta": {
@ -8317,8 +8450,8 @@
"columnIds": [
"zBz4vBOZSIA8vKmfqXckO"
],
"x": 1709.5028,
"y": 3082.629,
"x": 1671.2675,
"y": 3320.8644,
"direction": 2
},
"end": {
@ -8326,8 +8459,8 @@
"columnIds": [
"JVNCmWuI_UAnZEGZUbBQv"
],
"x": 2566.4476,
"y": 2919.6594,
"x": 2581.4628,
"y": 3355.8824,
"direction": 1
},
"meta": {
@ -8345,8 +8478,8 @@
"columnIds": [
"F9EPb6nsDx6Tf3GG8rvP1"
],
"x": 1689.032,
"y": 1661.550785714286,
"x": 1653.7379,
"y": 1937.6012,
"direction": 2
},
"end": {
@ -8354,8 +8487,8 @@
"columnIds": [
"OqPMHX5b1-Qct8xqaypd1"
],
"x": 2570.5649,
"y": 2600.7184,
"x": 2591.1532,
"y": 2968.3654,
"direction": 1
},
"meta": {
@ -8373,8 +8506,8 @@
"columnIds": [
"2HB01q46-mugMjuOz85YG"
],
"x": 1705.9179,
"y": 2747.3424,
"x": 1664.7414,
"y": 2982.6365,
"direction": 2
},
"end": {
@ -8382,8 +8515,8 @@
"columnIds": [
"Wjix1VNvwEfcogjAdEgc2"
],
"x": 2570.5649,
"y": 2676.7184,
"x": 2591.1532,
"y": 3044.3654,
"direction": 1
},
"meta": {
@ -8401,8 +8534,8 @@
"columnIds": [
"F9EPb6nsDx6Tf3GG8rvP1"
],
"x": 1689.032,
"y": 1752.9793571428575,
"x": 1653.7379,
"y": 2017.6012,
"direction": 2
},
"end": {
@ -8410,8 +8543,8 @@
"columnIds": [
"CCtqlfF2lD-XJILWNJMGC"
],
"x": 2562.3299,
"y": 3126.0124,
"x": 2577.0359,
"y": 3473.0712,
"direction": 1
},
"meta": {
@ -8429,8 +8562,8 @@
"columnIds": [
"XnNj7H0bnTxo_NuZm7BOs"
],
"x": 1711.1526,
"y": 3396.386,
"x": 1687.6231,
"y": 3625.7977,
"direction": 2
},
"end": {
@ -8438,14 +8571,98 @@
"columnIds": [
"XRRh5KRH2WqKryhsba-KG"
],
"x": 2562.3299,
"y": 3202.0124,
"x": 2577.0359,
"y": 3549.0712,
"direction": 1
},
"meta": {
"updateAt": 1748228892140,
"createAt": 1748228892140
}
},
"U2nR5f47vV7PnW-80gxhR": {
"id": "U2nR5f47vV7PnW-80gxhR",
"identification": false,
"relationshipType": 16,
"startRelationshipType": 2,
"start": {
"tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
"columnIds": [
"F9EPb6nsDx6Tf3GG8rvP1"
],
"x": 1653.7379,
"y": 1737.6012,
"direction": 2
},
"end": {
"tableId": "QmgAf0ZVXXxPIZ-HUgQlY",
"columnIds": [
"uBMa2GHVEzoB58E-Rcl48"
],
"x": 2574.4317,
"y": 1801.4416,
"direction": 1
},
"meta": {
"updateAt": 1748244473142,
"createAt": 1748244473142
}
},
"Mr60Ap-s6BOS6MfpynPF8": {
"id": "Mr60Ap-s6BOS6MfpynPF8",
"identification": false,
"relationshipType": 16,
"startRelationshipType": 2,
"start": {
"tableId": "ZLEpY5EjuZV21718zf-Y1",
"columnIds": [
"Id0h8QbOdlhPj9P1zTm5o"
],
"x": 1648.0778,
"y": 1557.0726000000002,
"direction": 2
},
"end": {
"tableId": "QmgAf0ZVXXxPIZ-HUgQlY",
"columnIds": [
"QEGZd3nUz4vcfEKE1xenI"
],
"x": 2574.4317,
"y": 1725.4416,
"direction": 1
},
"meta": {
"updateAt": 1748244494577,
"createAt": 1748244494577
}
},
"iQCazIDeUufmN-nNXDo5I": {
"id": "iQCazIDeUufmN-nNXDo5I",
"identification": false,
"relationshipType": 16,
"startRelationshipType": 2,
"start": {
"tableId": "doERb3lIVeBW_D0NtNYX8",
"columnIds": [
"7B0zaLoZnOoMNW8OHZlrQ"
],
"x": 2297.6193000000003,
"y": 1297.13,
"direction": 2
},
"end": {
"tableId": "QmgAf0ZVXXxPIZ-HUgQlY",
"columnIds": [
"wXfA2J6YcI6ySX_4McNS2"
],
"x": 2574.4317,
"y": 1725.4416,
"direction": 1
},
"meta": {
"updateAt": 1748244625114,
"createAt": 1748244625114
}
}
},
"indexEntities": {},

View File

@ -0,0 +1,11 @@
<?php
namespace App\Entities\Equipment;
use App\Models\Equipment\DomainModel;
class DomainEntity extends EquipmentEntity
{
const PK = DomainModel::PK;
const TITLE = DomainModel::TITLE;
}

View File

@ -8,7 +8,7 @@ class CpuEntity extends LinkEntity
{
const PK = CpuModel::PK;
const TITLE = CpuModel::TITLE;
public function getPartInfoUID(): string
public function getAdapterInfoUID(): string
{
return $this->attributes['cpuinfo_uid'];
}

View File

@ -0,0 +1,15 @@
<?php
namespace App\Entities\Equipment\Link;
use App\Models\Equipment\Link\DefenceModel;
class DefenceEntity extends LinkEntity
{
const PK = DefenceModel::PK;
const TITLE = DefenceModel::TITLE;
public function getAdapterInfoUID(): string
{
return $this->attributes['defenceinfo_uid'];
}
}

View File

@ -8,7 +8,7 @@ class DiskEntity extends LinkEntity
{
const PK = DiskModel::PK;
const TITLE = DiskModel::TITLE;
public function getPartInfoUID(): string
public function getAdapterInfoUID(): string
{
return $this->attributes['diskinfo_uid'];
}

View File

@ -0,0 +1,15 @@
<?php
namespace App\Entities\Equipment\Link;
use App\Models\Equipment\Link\DomainModel;
class DomainEntity extends LinkEntity
{
const PK = DomainModel::PK;
const TITLE = DomainModel::TITLE;
public function getAdapterInfoUID(): string
{
return $this->attributes['domaininfo_uid'];
}
}

View File

@ -0,0 +1,15 @@
<?php
namespace App\Entities\Equipment\Link;
use App\Models\Equipment\Link\IpModel;
class IpEntity extends LinkEntity
{
const PK = IpModel::PK;
const TITLE = IpModel::TITLE;
public function getAdapterInfoUID(): string
{
return $this->attributes['ipinfo_uid'];
}
}

View File

@ -0,0 +1,15 @@
<?php
namespace App\Entities\Equipment\Link;
use App\Models\Equipment\Link\LineModel;
class LineEntity extends LinkEntity
{
const PK = LineModel::PK;
const TITLE = LineModel::TITLE;
public function getAdapterInfoUID(): string
{
return $this->attributes['lineinfo_uid'];
}
}

View File

@ -11,7 +11,7 @@ abstract class LinkEntity extends EquipmentEntity
{
parent::__construct($data);
}
abstract public function getPartInfoUID(): string;
abstract public function getAdapterInfoUID(): string;
final public function getServiceInfoUID(): string
{
return $this->attributes['serverinfo_uid'];

View File

@ -8,7 +8,7 @@ class RamEntity extends LinkEntity
{
const PK = RamModel::PK;
const TITLE = RamModel::TITLE;
public function getPartInfoUID(): string
public function getAdapterInfoUID(): string
{
return $this->attributes['raminfo_uid'];
}

View File

@ -0,0 +1,15 @@
<?php
namespace App\Entities\Equipment\Link;
use App\Models\Equipment\Link\SoftwareModel;
class SoftwareEntity extends LinkEntity
{
const PK = SoftwareModel::PK;
const TITLE = SoftwareModel::TITLE;
public function getAdapterInfoUID(): string
{
return $this->attributes['softwareininfo_uid'];
}
}

View File

@ -11,4 +11,8 @@ abstract class PartEntity extends EquipmentEntity
{
parent::__construct($data);
}
public function getTitle(): string
{
return parent::getTitle() . " [" . number_format($this->attributes['price']) . "원]";
}
}

View File

@ -0,0 +1,16 @@
<?php
namespace App\Helpers\Equipment\Link;
use App\Models\Equipment\Link\DefenceModel;
use CodeIgniter\HTTP\IncomingRequest;
class DefenceHelper extends LinkHelper
{
protected ?IncomingRequest $request = null;
public function __construct(?IncomingRequest $request = null)
{
parent::__construct($request);
$this->setTitleField(field: DefenceModel::TITLE);
}
}

View File

@ -0,0 +1,16 @@
<?php
namespace App\Helpers\Equipment\Link;
use App\Models\Equipment\Link\DomainModel;
use CodeIgniter\HTTP\IncomingRequest;
class DomainHelper extends LinkHelper
{
protected ?IncomingRequest $request = null;
public function __construct(?IncomingRequest $request = null)
{
parent::__construct($request);
$this->setTitleField(field: DomainModel::TITLE);
}
}

View File

@ -0,0 +1,16 @@
<?php
namespace App\Helpers\Equipment\Link;
use App\Models\Equipment\Link\IpModel;
use CodeIgniter\HTTP\IncomingRequest;
class IpHelper extends LinkHelper
{
protected ?IncomingRequest $request = null;
public function __construct(?IncomingRequest $request = null)
{
parent::__construct($request);
$this->setTitleField(field: IpModel::TITLE);
}
}

View File

@ -0,0 +1,16 @@
<?php
namespace App\Helpers\Equipment\Link;
use App\Models\Equipment\Link\LineModel;
use CodeIgniter\HTTP\IncomingRequest;
class LineHelper extends LinkHelper
{
protected ?IncomingRequest $request = null;
public function __construct(?IncomingRequest $request = null)
{
parent::__construct($request);
$this->setTitleField(field: LineModel::TITLE);
}
}

View File

@ -0,0 +1,16 @@
<?php
namespace App\Helpers\Equipment\Link;
use App\Models\Equipment\Link\SoftwareModel;
use CodeIgniter\HTTP\IncomingRequest;
class SoftwareHelper extends LinkHelper
{
protected ?IncomingRequest $request = null;
public function __construct(?IncomingRequest $request = null)
{
parent::__construct($request);
$this->setTitleField(field: SoftwareModel::TITLE);
}
}

View File

@ -2,16 +2,8 @@
return [
'title' => "CPU연결정보",
'label' => [
'billing_type' => "청구유형",
'serviceinfo_uid' => "서비스",
'serverinfo_uid' => "서버",
'cpuinfo_uid' => "CPU",
'amount' => "금액",
'updated_at' => "수정일",
'created_at' => "작성일",
],
"BILLING_TYPE" => [
"month" => "월별",
"onetime" => "일회성",
],
];

View File

@ -0,0 +1,9 @@
<?php
return [
'title' => "방어연결정보",
'label' => [
'serverinfo_uid' => "서버",
'defenceinfo_uid' => "방어",
'created_at' => "작성일",
],
];

View File

@ -2,16 +2,8 @@
return [
'title' => "Disk연결정보",
'label' => [
'billing_type' => "청구유형",
'serviceinfo_uid' => "서비스",
'serverinfo_uid' => "서버",
'diskinfo_uid' => "Disk",
'amount' => "금액",
'updated_at' => "수정일",
'diskinfo_uid' => "DISK",
'created_at' => "작성일",
],
"BILLING_TYPE" => [
"month" => "월별",
"onetime" => "일회성",
],
];

View File

@ -0,0 +1,9 @@
<?php
return [
'title' => "Domain연결정보",
'label' => [
'serverinfo_uid' => "서버",
'domaininfo_uid' => "Domain",
'created_at' => "작성일",
],
];

View File

@ -0,0 +1,9 @@
<?php
return [
'title' => "IP연결정보",
'label' => [
'serverinfo_uid' => "서버",
'ipinfo_uid' => "IP",
'created_at' => "작성일",
],
];

View File

@ -0,0 +1,9 @@
<?php
return [
'title' => "Line연결정보",
'label' => [
'serverinfo_uid' => "서버",
'lineinfo_uid' => "회선",
'created_at' => "작성일",
],
];

View File

@ -2,16 +2,8 @@
return [
'title' => "Ram연결정보",
'label' => [
'billing_type' => "청구유형",
'serviceinfo_uid' => "서비스",
'serverinfo_uid' => "서버",
'raminfo_uid' => "RAM",
'amount' => "금액",
'updated_at' => "수정일",
'created_at' => "작성일",
],
"BILLING_TYPE" => [
"month" => "월별",
"onetime" => "일회성",
],
];

View File

@ -0,0 +1,9 @@
<?php
return [
'title' => "Software연결정보",
'label' => [
'serverinfo_uid' => "서버",
'softwareinfo_uid' => "Software",
'created_at' => "작성일",
],
];

View File

@ -0,0 +1,57 @@
<?php
namespace App\Models\Equipment;
use App\Entities\Equipment\DomainEntity;
class DomainModel extends EquipmentModel
{
const TABLE = "lineinfo";
const PK = "uid";
const TITLE = "title";
protected $table = self::TABLE;
protected $primaryKey = self::PK;
protected $returnType = DomainEntity::class;
protected $allowedFields = [
"domain",
"price",
"status",
"updated_at"
];
public function __construct()
{
parent::__construct();
}
public function getFieldRule(string $action, string $field): string
{
if (is_array($field)) {
throw new \Exception(__FUNCTION__ . "=> field가 array 입니다.\n" . var_export($field, true));
}
switch ($field) {
case "domain":
$rule = "required|trim|string";
break;
case "price":
$rule = "required|numeric";
break;
default:
$rule = parent::getFieldRule($action, $field);
break;
}
return $rule;
}
protected function convertEntityData(string $field, array $formDatas, mixed $entity): mixed
{
switch ($field) {
case 'clientinfo_uid':
if (array_key_exists($field, $formDatas) && $formDatas[$field] !== '') {
$entity->$field = $formDatas[$field];
}
break;
default:
$entity = parent::convertEntityData($field, $formDatas, $entity);
break;
}
return $entity;
}
}

View File

@ -0,0 +1,24 @@
<?php
namespace App\Models\Equipment\Link;
use App\Entities\Equipment\Link\DefenceEntity;
class DefenceModel extends LinkModel
{
const TABLE = "serverinfos_domaininfos";
const PK = "uid";
const TITLE = "uid";
protected $table = self::TABLE;
protected $primaryKey = self::PK;
protected $returnType = DefenceEntity::class;
protected $allowedFields = [
"serverinfo_uid",
"defenceinfo_uid",
"updated_at",
];
public function __construct()
{
parent::__construct();
}
}

View File

@ -0,0 +1,24 @@
<?php
namespace App\Models\Equipment\Link;
use App\Entities\Equipment\Link\DomainEntity;
class DomainModel extends LinkModel
{
const TABLE = "serverinfos_domaininfos";
const PK = "uid";
const TITLE = "uid";
protected $table = self::TABLE;
protected $primaryKey = self::PK;
protected $returnType = DomainEntity::class;
protected $allowedFields = [
"serverinfo_uid",
"domaininfo_uid",
"updated_at",
];
public function __construct()
{
parent::__construct();
}
}

View File

@ -0,0 +1,24 @@
<?php
namespace App\Models\Equipment\Link;
use App\Entities\Equipment\Link\IpEntity;
class IpModel extends LinkModel
{
const TABLE = "serverinfos_ipinfos";
const PK = "uid";
const TITLE = "uid";
protected $table = self::TABLE;
protected $primaryKey = self::PK;
protected $returnType = IpEntity::class;
protected $allowedFields = [
"serverinfo_uid",
"ipinfo_uid",
"updated_at",
];
public function __construct()
{
parent::__construct();
}
}

View File

@ -0,0 +1,24 @@
<?php
namespace App\Models\Equipment\Link;
use App\Entities\Equipment\Link\LineEntity;
class LineModel extends LinkModel
{
const TABLE = "serverinfos_lineinfos";
const PK = "uid";
const TITLE = "uid";
protected $table = self::TABLE;
protected $primaryKey = self::PK;
protected $returnType = LineEntity::class;
protected $allowedFields = [
"serverinfo_uid",
"lineinfo_uid",
"updated_at",
];
public function __construct()
{
parent::__construct();
}
}

View File

@ -0,0 +1,24 @@
<?php
namespace App\Models\Equipment\Link;
use App\Entities\Equipment\Link\SoftwareEntity;
class SoftwareModel extends LinkModel
{
const TABLE = "serverinfos_softwareinfos";
const PK = "uid";
const TITLE = "uid";
protected $table = self::TABLE;
protected $primaryKey = self::PK;
protected $returnType = SoftwareEntity::class;
protected $allowedFields = [
"serverinfo_uid",
"softwareinfo_uid",
"updated_at",
];
public function __construct()
{
parent::__construct();
}
}

View File

@ -0,0 +1,44 @@
<?php
namespace App\Services\Equipment;
use App\Entities\Equipment\DomainEntity;
use App\Models\Equipment\DomainModel;
use CodeIgniter\HTTP\IncomingRequest;
class DomainService extends EquipmentService
{
protected ?IncomingRequest $request = null;
public function __construct(?IncomingRequest $request = null)
{
parent::__construct($request);
$this->addClassName('Domain');
}
public function getModelClass(): DomainModel
{
return new DomainModel();
}
public function getEntityClass(): DomainEntity
{
return new DomainEntity();
}
public function getFields(): array
{
return [
"clientinfo_uid",
"type",
"title",
"bandwith",
"start_at",
"status",
];
}
public function getFilterFields(): array
{
return ["clientinfo_uid", "type", 'status',];
}
public function getBatchJobFields(): array
{
return ['status'];
}
}

View File

@ -6,7 +6,7 @@ use CodeIgniter\HTTP\IncomingRequest;
use App\Entities\Equipment\Link\CpuEntity;
use App\Models\Equipment\Link\CpuModel;
use App\Services\Equipment\Part\CpuService as PartService;
use App\Services\Equipment\Part\CpuService as AdapterService;
class CpuService extends LinkService
{
@ -24,23 +24,12 @@ class CpuService extends LinkService
{
return new CpuEntity();
}
protected function getPartService(): PartService
protected function getAdapterService(): AdapterService
{
return new PartService();
return new AdapterService();
}
public function getFields(): array
protected function getAdapterField(): string
{
return [
"serverinfo_uid",
"cpuinfo_uid",
];
}
public function getFilterFields(): array
{
return ["serverinfo_uid", "cpuinfo_uid"];
}
public function getBatchJobFields(): array
{
return [];
return "cpuinfo_uid";
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Services\Equipment\Link;
use CodeIgniter\HTTP\IncomingRequest;
use App\Entities\Equipment\Link\DefenceEntity;
use App\Models\Equipment\Link\DefenceModel;
use App\Services\Equipment\DefenceService as AdapterService;
class DefenceService extends LinkService
{
protected ?IncomingRequest $request = null;
public function __construct(?IncomingRequest $request = null)
{
parent::__construct($request);
$this->addClassName('Defence');
}
public function getModelClass(): DefenceModel
{
return new DefenceModel;
}
public function getEntityClass(): DefenceEntity
{
return new DefenceEntity();
}
protected function getAdapterService(): AdapterService
{
return new AdapterService();
}
protected function getAdapterField(): string
{
return "defenceinfo_uid";
}
}

View File

@ -6,7 +6,7 @@ use CodeIgniter\HTTP\IncomingRequest;
use App\Entities\Equipment\Link\DiskEntity;
use App\Models\Equipment\Link\DiskModel;
use App\Services\Equipment\Part\DiskService as PartService;
use App\Services\Equipment\Part\DiskService as AdapterService;
class DiskService extends LinkService
{
@ -24,25 +24,12 @@ class DiskService extends LinkService
{
return new DiskEntity();
}
protected function getPartService(): PartService
protected function getAdapterService(): AdapterService
{
return new PartService();
return new AdapterService();
}
public function getFields(): array
protected function getAdapterField(): string
{
return [
"serverinfo_uid",
"diskinfo_uid",
];
}
public function getFilterFields(): array
{
return ["serverinfo_uid", "diskinfo_uid"];
}
public function getBatchJobFields(): array
{
return [];
return "diskinfo_uid";
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Services\Equipment\Link;
use CodeIgniter\HTTP\IncomingRequest;
use App\Entities\Equipment\Link\DomainEntity;
use App\Models\Equipment\Link\DomainModel;
use App\Services\Equipment\DomainService as AdapterService;
class DomainService extends LinkService
{
protected ?IncomingRequest $request = null;
public function __construct(?IncomingRequest $request = null)
{
parent::__construct($request);
$this->addClassName('Domain');
}
public function getModelClass(): DomainModel
{
return new DomainModel;
}
public function getEntityClass(): DomainEntity
{
return new DomainEntity();
}
protected function getAdapterService(): AdapterService
{
return new AdapterService();
}
protected function getAdapterField(): string
{
return "domaininfo_uid";
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Services\Equipment\Link;
use CodeIgniter\HTTP\IncomingRequest;
use App\Entities\Equipment\Link\IpEntity;
use App\Models\Equipment\Link\IpModel;
use App\Services\Equipment\IpService as AdapterService;
class IpService extends LinkService
{
protected ?IncomingRequest $request = null;
public function __construct(?IncomingRequest $request = null)
{
parent::__construct($request);
$this->addClassName('Ip');
}
public function getModelClass(): IpModel
{
return new IpModel;
}
public function getEntityClass(): IpEntity
{
return new IpEntity();
}
protected function getAdapterService(): AdapterService
{
return new AdapterService();
}
protected function getAdapterField(): string
{
return "ipinfo_uid";
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Services\Equipment\Link;
use CodeIgniter\HTTP\IncomingRequest;
use App\Entities\Equipment\Link\LineEntity;
use App\Models\Equipment\Link\LineModel;
use App\Services\Equipment\LineService as AdapterService;
class LineService extends LinkService
{
protected ?IncomingRequest $request = null;
public function __construct(?IncomingRequest $request = null)
{
parent::__construct($request);
$this->addClassName('Line');
}
public function getModelClass(): LineModel
{
return new LineModel;
}
public function getEntityClass(): LineEntity
{
return new LineEntity();
}
protected function getAdapterService(): AdapterService
{
return new AdapterService();
}
protected function getAdapterField(): string
{
return "lineinfo_uid";
}
}

View File

@ -15,13 +15,30 @@ abstract class LinkService extends EquipmentService
parent::__construct($request);
$this->addClassName('Link');
}
abstract protected function getPartService();
abstract protected function getAdapterService(): mixed;
abstract protected function getAdapterField(): string;
final public function getPartEntities(ServerEntity $serverEntity): array
{
$entities = [];
foreach ($this->getEntities(['serverinfo_uid' => $serverEntity->getPK()]) as $entity) {
$entities[] = $this->getPartService()->getEntity($entity->getPartInfoUID());
$entities[] = $this->getAdapterService()->getEntity($entity->getPartInfoUID());
}
return $entities;
}
public function getFields(): array
{
return [
"serverinfo_uid",
$this->getAdapterField(),
];
}
public function getFilterFields(): array
{
return ["serverinfo_uid", $this->getAdapterField()];
}
public function getBatchJobFields(): array
{
return [];
}
}

View File

@ -6,7 +6,7 @@ use CodeIgniter\HTTP\IncomingRequest;
use App\Entities\Equipment\Link\RamEntity;
use App\Models\Equipment\Link\RamModel;
use App\Services\Equipment\Part\RamService as PartService;
use App\Services\Equipment\Part\RamService as AdapterService;
class RamService extends LinkService
{
@ -24,25 +24,12 @@ class RamService extends LinkService
{
return new RamEntity();
}
protected function getPartService(): PartService
protected function getAdapterService(): AdapterService
{
return new PartService();
return new AdapterService();
}
public function getFields(): array
protected function getAdapterField(): string
{
return [
"serverinfo_uid",
"raminfo_uid",
];
}
public function getFilterFields(): array
{
return ["serverinfo_uid", "raminfo_uid"];
}
public function getBatchJobFields(): array
{
return [];
return "raminfo_uid";
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Services\Equipment\Link;
use CodeIgniter\HTTP\IncomingRequest;
use App\Entities\Equipment\Link\SoftwareEntity;
use App\Models\Equipment\Link\SoftwareModel;
use App\Services\Equipment\SoftwareService as AdapterService;
class SoftwareService extends LinkService
{
protected ?IncomingRequest $request = null;
public function __construct(?IncomingRequest $request = null)
{
parent::__construct($request);
$this->addClassName('Software');
}
public function getModelClass(): SoftwareModel
{
return new SoftwareModel;
}
public function getEntityClass(): SoftwareEntity
{
return new SoftwareEntity();
}
protected function getAdapterService(): AdapterService
{
return new AdapterService();
}
protected function getAdapterField(): string
{
return "softwareinfo_uid";
}
}

View File

@ -35,13 +35,25 @@
function closeBootstrapModal() {
var modalElement = document.getElementById('index_action_form'); // 모달의 실제 DOM 요소 가져오기
var modalInstance = bootstrap.Modal.getInstance(modalElement); // 모달 인스턴스 가져오기
// 먼저 모달을 호출한 페이지를 리로드
// window.location.reload();
if (modalInstance) {
modalInstance.hide(); // 모달 닫기 (hide() 메서드 사용)
} else {
console.error("Modal instance not found.");
}
// iframe src를 초기화하거나 완전히 제거
const iframe = document.getElementById('form-container');
iframe.remove(); // DOM에서 완전히 제거
// 새 iframe 다시 생성 (깨끗한 상태로 초기화)
const newIframe = document.createElement('iframe');
newIframe.id = 'form-container';
newIframe.src = 'about:blank';
newIframe.width = '100%';
newIframe.frameBorder = '0';
newIframe.allowFullscreen = true;
// body에 다시 추가
document.querySelector('#index_action_form .modal-body').appendChild(newIframe);
// 부모창만 리로드
window.location.reload();
}
var index_action_form = document.getElementById('index_action_form');