@dssp/dkpi 1.0.0-y.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/KPI-STATISTICS-SERVICE.md +233 -0
- package/_index.html +4 -9
- package/assets/helps/index.md +1 -1
- package/assets/images/project-image.png +0 -0
- package/assets/manifest.json +2 -2
- package/config/config.development.js +2 -1
- package/config/config.production.js +2 -1
- package/kpi-module-service-tests.md +1286 -0
- package/kpi-module-test-report.md +676 -0
- package/kpi-module-unit-test-detailed-report.md +925 -0
- package/kpi-module-unit-tests-detailed.md +1452 -0
- package/openapi/unstable.yaml +2 -2
- package/package.json +58 -54
- package/recalculate-batch.sh +64 -0
- package/recalculate-projects-range.sh +98 -0
- package/schema.graphql +1159 -55
- package/things-factory.config.js +6 -1
- package/translations/en.json +5 -1
- package/translations/ko.json +5 -1
- package/views/auth-page.html +4 -5
- package/views/public/home.html +5 -6
- package/dist-client/bootstrap.d.ts +0 -8
- package/dist-client/bootstrap.js +0 -257
- package/dist-client/bootstrap.js.map +0 -1
- package/dist-client/components/kpi-single-boxplot-chart.d.ts +0 -24
- package/dist-client/components/kpi-single-boxplot-chart.js +0 -317
- package/dist-client/components/kpi-single-boxplot-chart.js.map +0 -1
- package/dist-client/components/sv-pagenation-control.d.ts +0 -18
- package/dist-client/components/sv-pagenation-control.js +0 -142
- package/dist-client/components/sv-pagenation-control.js.map +0 -1
- package/dist-client/entries/public/home.d.ts +0 -8
- package/dist-client/entries/public/home.js +0 -97
- package/dist-client/entries/public/home.js.map +0 -1
- package/dist-client/icons/menu-icons.d.ts +0 -11
- package/dist-client/icons/menu-icons.js +0 -126
- package/dist-client/icons/menu-icons.js.map +0 -1
- package/dist-client/index.d.ts +0 -0
- package/dist-client/index.js +0 -2
- package/dist-client/index.js.map +0 -1
- package/dist-client/menu.d.ts +0 -23
- package/dist-client/menu.js +0 -59
- package/dist-client/menu.js.map +0 -1
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-editor-page.d.ts +0 -58
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-editor-page.js +0 -731
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-editor-page.js.map +0 -1
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-importer.d.ts +0 -23
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-importer.js +0 -76
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-importer.js.map +0 -1
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-list-page.d.ts +0 -69
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-list-page.js +0 -385
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-list-page.js.map +0 -1
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-manual-entry-form.d.ts +0 -12
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-manual-entry-form.js +0 -174
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-manual-entry-form.js.map +0 -1
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-manual-entry-page.d.ts +0 -41
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-manual-entry-page.js +0 -191
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-manual-entry-page.js.map +0 -1
- package/dist-client/pages/kpi-value/kpi-value-importer.d.ts +0 -23
- package/dist-client/pages/kpi-value/kpi-value-importer.js +0 -93
- package/dist-client/pages/kpi-value/kpi-value-importer.js.map +0 -1
- package/dist-client/pages/kpi-value/kpi-value-list-page.d.ts +0 -72
- package/dist-client/pages/kpi-value/kpi-value-list-page.js +0 -465
- package/dist-client/pages/kpi-value/kpi-value-list-page.js.map +0 -1
- package/dist-client/pages/project-complete-tabs/pc-tab1-plan.d.ts +0 -13
- package/dist-client/pages/project-complete-tabs/pc-tab1-plan.js +0 -248
- package/dist-client/pages/project-complete-tabs/pc-tab1-plan.js.map +0 -1
- package/dist-client/pages/project-complete-tabs/pc-tab2-rating.d.ts +0 -10
- package/dist-client/pages/project-complete-tabs/pc-tab2-rating.js +0 -229
- package/dist-client/pages/project-complete-tabs/pc-tab2-rating.js.map +0 -1
- package/dist-client/pages/project-complete-tabs/pc-tab3-upload.d.ts +0 -12
- package/dist-client/pages/project-complete-tabs/pc-tab3-upload.js +0 -213
- package/dist-client/pages/project-complete-tabs/pc-tab3-upload.js.map +0 -1
- package/dist-client/pages/sv-project-complete.d.ts +0 -22
- package/dist-client/pages/sv-project-complete.js +0 -213
- package/dist-client/pages/sv-project-complete.js.map +0 -1
- package/dist-client/pages/sv-project-completed-list.d.ts +0 -24
- package/dist-client/pages/sv-project-completed-list.js +0 -357
- package/dist-client/pages/sv-project-completed-list.js.map +0 -1
- package/dist-client/pages/sv-project-detail.d.ts +0 -13
- package/dist-client/pages/sv-project-detail.js +0 -494
- package/dist-client/pages/sv-project-detail.js.map +0 -1
- package/dist-client/pages/sv-project-list.d.ts +0 -157
- package/dist-client/pages/sv-project-list.js +0 -431
- package/dist-client/pages/sv-project-list.js.map +0 -1
- package/dist-client/pages/sv-user-management.d.ts +0 -5
- package/dist-client/pages/sv-user-management.js +0 -219
- package/dist-client/pages/sv-user-management.js.map +0 -1
- package/dist-client/route.d.ts +0 -1
- package/dist-client/route.js +0 -31
- package/dist-client/route.js.map +0 -1
- package/dist-client/shared/complete-api.d.ts +0 -5
- package/dist-client/shared/complete-api.js +0 -125
- package/dist-client/shared/complete-api.js.map +0 -1
- package/dist-client/shared/func.d.ts +0 -2
- package/dist-client/shared/func.js +0 -22
- package/dist-client/shared/func.js.map +0 -1
- package/dist-client/themes/dark.css +0 -51
- package/dist-client/themes/light.css +0 -51
- package/dist-client/tsconfig.tsbuildinfo +0 -1
- package/dist-client/viewparts/menu-tools.d.ts +0 -54
- package/dist-client/viewparts/menu-tools.js +0 -503
- package/dist-client/viewparts/menu-tools.js.map +0 -1
- package/dist-client/viewparts/user-circle.d.ts +0 -5
- package/dist-client/viewparts/user-circle.js +0 -26
- package/dist-client/viewparts/user-circle.js.map +0 -1
- package/dist-server/index.d.ts +0 -2
- package/dist-server/index.js +0 -6
- package/dist-server/index.js.map +0 -1
- package/dist-server/migrations/index.d.ts +0 -1
- package/dist-server/migrations/index.js +0 -12
- package/dist-server/migrations/index.js.map +0 -1
- package/dist-server/scripts/calculate-kpi-scores.d.ts +0 -10
- package/dist-server/scripts/calculate-kpi-scores.js +0 -271
- package/dist-server/scripts/calculate-kpi-scores.js.map +0 -1
- package/dist-server/scripts/load-grade-data-migration.d.ts +0 -10
- package/dist-server/scripts/load-grade-data-migration.js +0 -194
- package/dist-server/scripts/load-grade-data-migration.js.map +0 -1
- package/dist-server/scripts/propagate-parent-kpi-values.d.ts +0 -10
- package/dist-server/scripts/propagate-parent-kpi-values.js +0 -440
- package/dist-server/scripts/propagate-parent-kpi-values.js.map +0 -1
- package/dist-server/service/index.d.ts +0 -6
- package/dist-server/service/index.js +0 -21
- package/dist-server/service/index.js.map +0 -1
- package/dist-server/service/kpi-metric-value/index.d.ts +0 -4
- package/dist-server/service/kpi-metric-value/index.js +0 -8
- package/dist-server/service/kpi-metric-value/index.js.map +0 -1
- package/dist-server/service/kpi-metric-value/kpi-metric-value-mutation.d.ts +0 -7
- package/dist-server/service/kpi-metric-value/kpi-metric-value-mutation.js +0 -112
- package/dist-server/service/kpi-metric-value/kpi-metric-value-mutation.js.map +0 -1
- package/dist-server/service/kpi-metric-value/kpi-metric-value-query.d.ts +0 -7
- package/dist-server/service/kpi-metric-value/kpi-metric-value-query.js +0 -47
- package/dist-server/service/kpi-metric-value/kpi-metric-value-query.js.map +0 -1
- package/dist-server/service/kpi-value/index.d.ts +0 -3
- package/dist-server/service/kpi-value/index.js +0 -7
- package/dist-server/service/kpi-value/index.js.map +0 -1
- package/dist-server/service/kpi-value/kpi-value-query.d.ts +0 -7
- package/dist-server/service/kpi-value/kpi-value-query.js +0 -47
- package/dist-server/service/kpi-value/kpi-value-query.js.map +0 -1
- package/dist-server/tsconfig.tsbuildinfo +0 -1
package/schema.graphql
CHANGED
|
@@ -3,15 +3,6 @@
|
|
|
3
3
|
# !!! DO NOT MODIFY THIS FILE BY YOURSELF !!!
|
|
4
4
|
# -----------------------------------------------
|
|
5
5
|
|
|
6
|
-
input APIDocCompletionInput {
|
|
7
|
-
code: String!
|
|
8
|
-
language: String
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
type APIDocCompletionOutput {
|
|
12
|
-
message: String
|
|
13
|
-
}
|
|
14
|
-
|
|
15
6
|
"""Represents a pair of access and refresh tokens."""
|
|
16
7
|
type AccessToken {
|
|
17
8
|
"""The access token for API authentication."""
|
|
@@ -847,6 +838,7 @@ type Attachment {
|
|
|
847
838
|
refType: String
|
|
848
839
|
size: String!
|
|
849
840
|
tags: Object
|
|
841
|
+
thumbnail: String
|
|
850
842
|
updatedAt: DateTimeISO!
|
|
851
843
|
updater: User
|
|
852
844
|
}
|
|
@@ -1155,12 +1147,27 @@ type Board {
|
|
|
1155
1147
|
"""A list of play groups that this board is a part of."""
|
|
1156
1148
|
playGroups: [PlayGroup!]
|
|
1157
1149
|
|
|
1150
|
+
"""
|
|
1151
|
+
Sort order for display. Lower values appear first. Supports fractional values for insertion.
|
|
1152
|
+
"""
|
|
1153
|
+
sortOrder: Float
|
|
1154
|
+
|
|
1155
|
+
"""
|
|
1156
|
+
Source ImportSession id (board-import) when this board was generated from a drawing/image import.
|
|
1157
|
+
"""
|
|
1158
|
+
sourceImportSessionId: String
|
|
1159
|
+
|
|
1158
1160
|
"""The state of the board, can be 'draft' or 'released'."""
|
|
1159
1161
|
state: String
|
|
1160
1162
|
|
|
1161
1163
|
"""A base64 encoded thumbnail image of the board."""
|
|
1162
1164
|
thumbnail: String
|
|
1163
1165
|
|
|
1166
|
+
"""
|
|
1167
|
+
Timestamp of the last thumbnail generation. Separate lifecycle from updatedAt; only changes when the thumbnail image itself is regenerated.
|
|
1168
|
+
"""
|
|
1169
|
+
thumbnailUpdatedAt: DateTimeISO
|
|
1170
|
+
|
|
1164
1171
|
"""The type of the board, can be 'main', 'sub', or 'popup'."""
|
|
1165
1172
|
type: String
|
|
1166
1173
|
|
|
@@ -1174,6 +1181,120 @@ type Board {
|
|
|
1174
1181
|
version: Float
|
|
1175
1182
|
}
|
|
1176
1183
|
|
|
1184
|
+
input BoardAIChatInput {
|
|
1185
|
+
"""
|
|
1186
|
+
Component categories to surface (e.g. ["3D", "form"]). Subset filter for groupings exposed in component-schemas.
|
|
1187
|
+
"""
|
|
1188
|
+
categories: [String!]
|
|
1189
|
+
|
|
1190
|
+
"""
|
|
1191
|
+
Component schemas — array of { type, description?, group?, properties? } so the LLM knows valid props per type.
|
|
1192
|
+
"""
|
|
1193
|
+
componentSchemas: JSON
|
|
1194
|
+
|
|
1195
|
+
"""Current BoardModel JSON."""
|
|
1196
|
+
currentBoard: JSON
|
|
1197
|
+
|
|
1198
|
+
"""
|
|
1199
|
+
Component types the LLM is allowed to emit (e.g. ["rect", "label"]). Constrains generation to the current solution.
|
|
1200
|
+
"""
|
|
1201
|
+
knownTypes: [String!]
|
|
1202
|
+
|
|
1203
|
+
"""
|
|
1204
|
+
Max output tokens override per LLM call. Falls back to assistant default when omitted.
|
|
1205
|
+
"""
|
|
1206
|
+
maxTokens: Float
|
|
1207
|
+
|
|
1208
|
+
"""
|
|
1209
|
+
Explicit #mention picks from popup — {token, refid}. User text stays clean (#token only); these picks let server resolve deterministically without exposing refid in the user-visible message. Tokens not in this list fall back to free name/id/type matching.
|
|
1210
|
+
"""
|
|
1211
|
+
mentions: [BoardAIMentionPickInput!]
|
|
1212
|
+
|
|
1213
|
+
"""
|
|
1214
|
+
Conversation history (latest user message at the end). For persisted sessions, only the last user message is appended; older are loaded from DB.
|
|
1215
|
+
"""
|
|
1216
|
+
messages: [BoardAILLMMessageInput!]!
|
|
1217
|
+
|
|
1218
|
+
"""
|
|
1219
|
+
AI model identifier override (e.g. "claude-opus-4-7"). Falls back to the configured default when omitted.
|
|
1220
|
+
"""
|
|
1221
|
+
model: String
|
|
1222
|
+
|
|
1223
|
+
"""
|
|
1224
|
+
Capability scopes the AI is allowed to use (e.g. 'create', 'edit', 'style'). Filters which tools are exposed to the LLM.
|
|
1225
|
+
"""
|
|
1226
|
+
scopes: [String!]
|
|
1227
|
+
|
|
1228
|
+
"""
|
|
1229
|
+
Refids of components currently selected in the modeller (universal numeric handle, things-scene auto-assigned). For "selected" / "선택한" intent. Note: distinct from `id` which is a data-binding name.
|
|
1230
|
+
"""
|
|
1231
|
+
selectedRefids: [Int!]
|
|
1232
|
+
|
|
1233
|
+
"""
|
|
1234
|
+
ChatSession id. Omit for ad-hoc (no persistence). When given, messages/patches are persisted.
|
|
1235
|
+
"""
|
|
1236
|
+
sessionId: String
|
|
1237
|
+
|
|
1238
|
+
"""
|
|
1239
|
+
Sampling temperature override. Falls back to assistant default when omitted.
|
|
1240
|
+
"""
|
|
1241
|
+
temperature: Float
|
|
1242
|
+
}
|
|
1243
|
+
|
|
1244
|
+
type BoardAIChatOutput {
|
|
1245
|
+
"""
|
|
1246
|
+
Ephemeral scene actions (selection/view/mode) — sequence of BoardActionOp. Applied via board-action-execute event on the host. Distinct from `patch` which carries persistent model changes.
|
|
1247
|
+
"""
|
|
1248
|
+
actions: JSON
|
|
1249
|
+
|
|
1250
|
+
"""Persisted ChatMessage id of the AI reply."""
|
|
1251
|
+
assistantMessageId: String
|
|
1252
|
+
|
|
1253
|
+
"""AI client identifier (provider:model)."""
|
|
1254
|
+
clientId: String!
|
|
1255
|
+
|
|
1256
|
+
"""Clarifying question when input is ambiguous."""
|
|
1257
|
+
followUp: String
|
|
1258
|
+
|
|
1259
|
+
"""BoardEditPatch."""
|
|
1260
|
+
patch: JSON
|
|
1261
|
+
|
|
1262
|
+
"""Persisted PatchEntry id (when patch was generated)."""
|
|
1263
|
+
patchId: String
|
|
1264
|
+
|
|
1265
|
+
"""Conversational reply."""
|
|
1266
|
+
reply: String!
|
|
1267
|
+
|
|
1268
|
+
"""Echo of session id (when persisted)."""
|
|
1269
|
+
sessionId: String
|
|
1270
|
+
|
|
1271
|
+
"""
|
|
1272
|
+
Tool usages collected during agentic loop — sequence of {name, arguments, result, kind}. UI fold-able box for transparency / debug.
|
|
1273
|
+
"""
|
|
1274
|
+
toolUsages: JSON
|
|
1275
|
+
|
|
1276
|
+
"""Persisted ChatMessage id of the user input."""
|
|
1277
|
+
userMessageId: String
|
|
1278
|
+
}
|
|
1279
|
+
|
|
1280
|
+
input BoardAILLMMessageInput {
|
|
1281
|
+
"""Message content"""
|
|
1282
|
+
content: String!
|
|
1283
|
+
|
|
1284
|
+
"""Role: 'user' or 'assistant'"""
|
|
1285
|
+
role: String!
|
|
1286
|
+
}
|
|
1287
|
+
|
|
1288
|
+
input BoardAIMentionPickInput {
|
|
1289
|
+
"""
|
|
1290
|
+
Refid explicitly picked from popup. Server uses this for deterministic resolution — bypasses fallback name/id/type matching for this token.
|
|
1291
|
+
"""
|
|
1292
|
+
refid: Int!
|
|
1293
|
+
|
|
1294
|
+
"""Token used by user (e.g. "경광등1" — the part after #)."""
|
|
1295
|
+
token: String!
|
|
1296
|
+
}
|
|
1297
|
+
|
|
1177
1298
|
"""Represents a board that a user has marked as a favorite."""
|
|
1178
1299
|
type BoardFavorite {
|
|
1179
1300
|
"""The timestamp when the board was created."""
|
|
@@ -1209,12 +1330,27 @@ type BoardFavorite {
|
|
|
1209
1330
|
"""A list of play groups that this board is a part of."""
|
|
1210
1331
|
playGroups: [PlayGroup!]
|
|
1211
1332
|
|
|
1333
|
+
"""
|
|
1334
|
+
Sort order for display. Lower values appear first. Supports fractional values for insertion.
|
|
1335
|
+
"""
|
|
1336
|
+
sortOrder: Float
|
|
1337
|
+
|
|
1338
|
+
"""
|
|
1339
|
+
Source ImportSession id (board-import) when this board was generated from a drawing/image import.
|
|
1340
|
+
"""
|
|
1341
|
+
sourceImportSessionId: String
|
|
1342
|
+
|
|
1212
1343
|
"""The state of the board, can be 'draft' or 'released'."""
|
|
1213
1344
|
state: String
|
|
1214
1345
|
|
|
1215
1346
|
"""A base64 encoded thumbnail image of the board."""
|
|
1216
1347
|
thumbnail: String
|
|
1217
1348
|
|
|
1349
|
+
"""
|
|
1350
|
+
Timestamp of the last thumbnail generation. Separate lifecycle from updatedAt; only changes when the thumbnail image itself is regenerated.
|
|
1351
|
+
"""
|
|
1352
|
+
thumbnailUpdatedAt: DateTimeISO
|
|
1353
|
+
|
|
1218
1354
|
"""The type of the board, can be 'main', 'sub', or 'popup'."""
|
|
1219
1355
|
type: String
|
|
1220
1356
|
|
|
@@ -1306,6 +1442,16 @@ type BoardList {
|
|
|
1306
1442
|
total: Int!
|
|
1307
1443
|
}
|
|
1308
1444
|
|
|
1445
|
+
type BoardMetaSuggestion {
|
|
1446
|
+
"""
|
|
1447
|
+
Suggested detailed description — combines user prompt, AI importStrategy narrative, and category distribution stats.
|
|
1448
|
+
"""
|
|
1449
|
+
description: String!
|
|
1450
|
+
|
|
1451
|
+
"""Suggested short board name (collision-free with current domain)."""
|
|
1452
|
+
name: String!
|
|
1453
|
+
}
|
|
1454
|
+
|
|
1309
1455
|
"""Input for updating (patching) an existing board."""
|
|
1310
1456
|
input BoardPatch {
|
|
1311
1457
|
"""The new description for the board."""
|
|
@@ -1514,6 +1660,7 @@ type BuildingInspection {
|
|
|
1514
1660
|
creator: User
|
|
1515
1661
|
deletedAt: DateTimeISO
|
|
1516
1662
|
drawingMarker: String
|
|
1663
|
+
failCount: Float
|
|
1517
1664
|
id: ID!
|
|
1518
1665
|
manager: ProjectManagerOutput
|
|
1519
1666
|
memo: String
|
|
@@ -1582,6 +1729,7 @@ type BuildingInspectionHistory {
|
|
|
1582
1729
|
createdAt: DateTimeISO
|
|
1583
1730
|
creator: User
|
|
1584
1731
|
drawingMarker: String
|
|
1732
|
+
failCount: Float
|
|
1585
1733
|
id: ID!
|
|
1586
1734
|
loggedAt: DateTimeISO
|
|
1587
1735
|
manager: ProjectManagerOutput
|
|
@@ -1611,6 +1759,9 @@ type BuildingInspectionSummary {
|
|
|
1611
1759
|
"""검측 통과 수"""
|
|
1612
1760
|
pass: Int!
|
|
1613
1761
|
|
|
1762
|
+
"""재검측 대기 수 (failCount > 0 인 WAIT/OVERALL_WAIT)"""
|
|
1763
|
+
reWait: Int
|
|
1764
|
+
|
|
1614
1765
|
"""검측 요청 수"""
|
|
1615
1766
|
request: Int!
|
|
1616
1767
|
|
|
@@ -1635,6 +1786,11 @@ type BuildingInspectionSummaryOfLevel {
|
|
|
1635
1786
|
wait: Int!
|
|
1636
1787
|
}
|
|
1637
1788
|
|
|
1789
|
+
input BuildingInspectionsOfBuilding {
|
|
1790
|
+
buildingId: String!
|
|
1791
|
+
limit: Float
|
|
1792
|
+
}
|
|
1793
|
+
|
|
1638
1794
|
input BuildingInspectionsOfBuildingLevel {
|
|
1639
1795
|
buildingLevelId: String!
|
|
1640
1796
|
endDate: String
|
|
@@ -1645,6 +1801,9 @@ input BuildingInspectionsOfBuildingLevel {
|
|
|
1645
1801
|
input BuildingInspectionsOfProject {
|
|
1646
1802
|
limit: Float
|
|
1647
1803
|
projectId: String!
|
|
1804
|
+
|
|
1805
|
+
"""상태 필터 (WAIT, REQUEST, FAIL, RE_WAIT, PASS)"""
|
|
1806
|
+
statusFilter: String
|
|
1648
1807
|
}
|
|
1649
1808
|
|
|
1650
1809
|
"""층 정보"""
|
|
@@ -1692,12 +1851,111 @@ input BuildingPatch {
|
|
|
1692
1851
|
name: String
|
|
1693
1852
|
}
|
|
1694
1853
|
|
|
1695
|
-
|
|
1854
|
+
"""A single chat message in a ChatSession."""
|
|
1855
|
+
type ChatMessage {
|
|
1856
|
+
"""Message content"""
|
|
1696
1857
|
content: String!
|
|
1858
|
+
|
|
1859
|
+
"""Creation timestamp."""
|
|
1860
|
+
createdAt: DateTimeISO
|
|
1861
|
+
|
|
1862
|
+
"""User who triggered this message."""
|
|
1863
|
+
creator: User
|
|
1864
|
+
|
|
1865
|
+
"""Soft delete timestamp."""
|
|
1866
|
+
deletedAt: DateTimeISO
|
|
1867
|
+
id: ID
|
|
1868
|
+
|
|
1869
|
+
"""
|
|
1870
|
+
Id of the message this one is in-response-to / continues. Enables linear / branching / tree structures.
|
|
1871
|
+
"""
|
|
1872
|
+
parentMessageId: String
|
|
1873
|
+
|
|
1874
|
+
"""ImportSession.id this message triggered (if any)."""
|
|
1875
|
+
relatedImportSessionId: String
|
|
1876
|
+
|
|
1877
|
+
"""PatchEntry.id this message triggered (if any)."""
|
|
1878
|
+
relatedPatchId: String
|
|
1879
|
+
|
|
1880
|
+
"""'user' | 'assistant' | 'system'"""
|
|
1881
|
+
role: String!
|
|
1882
|
+
|
|
1883
|
+
"""
|
|
1884
|
+
Tool usage trace — array of {name, arguments, result, kind}. Only on assistant messages.
|
|
1885
|
+
"""
|
|
1886
|
+
toolUsagesJson: JSON
|
|
1887
|
+
|
|
1888
|
+
"""Last update timestamp (relevant once message editing is supported)."""
|
|
1889
|
+
updatedAt: DateTimeISO
|
|
1890
|
+
|
|
1891
|
+
"""Last user to update this message (for future edit support)."""
|
|
1892
|
+
updater: User
|
|
1697
1893
|
}
|
|
1698
1894
|
|
|
1699
|
-
|
|
1700
|
-
|
|
1895
|
+
"""AI 협력 세션 — Board 와 결합. 한 보드에 여러 세션 가능 (thread / 사용자별 / 컨텍스트별 등 미래 확장)."""
|
|
1896
|
+
type ChatSession {
|
|
1897
|
+
aiClientId: String
|
|
1898
|
+
|
|
1899
|
+
"""
|
|
1900
|
+
Connected Board id. Multiple sessions per board allowed (future: threads / per-user / contexts).
|
|
1901
|
+
"""
|
|
1902
|
+
boardId: String
|
|
1903
|
+
createdAt: DateTimeISO
|
|
1904
|
+
|
|
1905
|
+
"""User who created this session."""
|
|
1906
|
+
creator: User
|
|
1907
|
+
domain: Domain
|
|
1908
|
+
id: ID
|
|
1909
|
+
|
|
1910
|
+
"""Compressed summary of older messages (for token saving)."""
|
|
1911
|
+
lastSummary: String
|
|
1912
|
+
|
|
1913
|
+
"""User-given name of this session (tab label / identification)."""
|
|
1914
|
+
name: String
|
|
1915
|
+
updatedAt: DateTimeISO
|
|
1916
|
+
|
|
1917
|
+
"""User who last updated this session."""
|
|
1918
|
+
updater: User
|
|
1919
|
+
}
|
|
1920
|
+
|
|
1921
|
+
"""
|
|
1922
|
+
Participant of a ChatSession — links a User to a session with a role. Foundation for multi-user chat / per-user filtering / member display.
|
|
1923
|
+
"""
|
|
1924
|
+
type ChatSessionParticipant {
|
|
1925
|
+
"""Joined-at timestamp."""
|
|
1926
|
+
createdAt: DateTimeISO
|
|
1927
|
+
|
|
1928
|
+
"""
|
|
1929
|
+
User who created this participant record (typically session owner who invited).
|
|
1930
|
+
"""
|
|
1931
|
+
creator: User
|
|
1932
|
+
|
|
1933
|
+
"""Soft delete (= left session) timestamp."""
|
|
1934
|
+
deletedAt: DateTimeISO
|
|
1935
|
+
|
|
1936
|
+
"""Domain to which this participant belongs."""
|
|
1937
|
+
domain: Domain
|
|
1938
|
+
|
|
1939
|
+
"""Unique participant id."""
|
|
1940
|
+
id: ID!
|
|
1941
|
+
|
|
1942
|
+
"""Last seen / activity timestamp (presence indicator)."""
|
|
1943
|
+
lastSeenAt: DateTimeISO
|
|
1944
|
+
|
|
1945
|
+
"""Role of this participant: owner | member | viewer."""
|
|
1946
|
+
role: String!
|
|
1947
|
+
|
|
1948
|
+
"""The ChatSession this participation belongs to."""
|
|
1949
|
+
session: ChatSession
|
|
1950
|
+
|
|
1951
|
+
"""Last update timestamp (role change / lastSeenAt bump)."""
|
|
1952
|
+
updatedAt: DateTimeISO
|
|
1953
|
+
|
|
1954
|
+
"""Last user to update this participant record (e.g., role change)."""
|
|
1955
|
+
updater: User
|
|
1956
|
+
|
|
1957
|
+
"""The user participating in the session."""
|
|
1958
|
+
user: User
|
|
1701
1959
|
}
|
|
1702
1960
|
|
|
1703
1961
|
type Checklist {
|
|
@@ -1822,9 +2080,11 @@ type ChecklistItem {
|
|
|
1822
2080
|
detailType: String!
|
|
1823
2081
|
id: ID!
|
|
1824
2082
|
inspctionCriteria: String
|
|
2083
|
+
kcsCriteria: String
|
|
1825
2084
|
mainType: String!
|
|
1826
2085
|
name: String
|
|
1827
2086
|
sequence: Int
|
|
2087
|
+
siteSpecCriteria: String
|
|
1828
2088
|
supervisoryConfirmStatus: String
|
|
1829
2089
|
updatedAt: DateTimeISO
|
|
1830
2090
|
updater: User
|
|
@@ -1860,10 +2120,12 @@ type ChecklistItemHistory {
|
|
|
1860
2120
|
detailType: String!
|
|
1861
2121
|
id: ID!
|
|
1862
2122
|
inspctionCriteria: String
|
|
2123
|
+
kcsCriteria: String
|
|
1863
2124
|
loggedAt: DateTimeISO
|
|
1864
2125
|
mainType: String!
|
|
1865
2126
|
name: String
|
|
1866
2127
|
sequence: Float
|
|
2128
|
+
siteSpecCriteria: String
|
|
1867
2129
|
supervisoryConfirmStatus: String
|
|
1868
2130
|
updater: User
|
|
1869
2131
|
}
|
|
@@ -1876,8 +2138,10 @@ type ChecklistItemHistoryList {
|
|
|
1876
2138
|
input ChecklistItemInputType {
|
|
1877
2139
|
detailType: String!
|
|
1878
2140
|
inspctionCriteria: String
|
|
2141
|
+
kcsCriteria: String
|
|
1879
2142
|
mainType: String!
|
|
1880
2143
|
name: String!
|
|
2144
|
+
siteSpecCriteria: String
|
|
1881
2145
|
}
|
|
1882
2146
|
|
|
1883
2147
|
type ChecklistItemList {
|
|
@@ -1929,6 +2193,7 @@ type ChecklistTemplateItem {
|
|
|
1929
2193
|
detailTypeName: String!
|
|
1930
2194
|
id: ID!
|
|
1931
2195
|
inspctionCriteria: String
|
|
2196
|
+
inspctionCriteriaText: String
|
|
1932
2197
|
mainType: String!
|
|
1933
2198
|
name: String!
|
|
1934
2199
|
sequence: Int
|
|
@@ -1948,6 +2213,7 @@ input ChecklistTemplateItemPatch {
|
|
|
1948
2213
|
detailType: String
|
|
1949
2214
|
id: ID
|
|
1950
2215
|
inspctionCriteria: String
|
|
2216
|
+
inspctionCriteriaText: String
|
|
1951
2217
|
mainType: String
|
|
1952
2218
|
name: String
|
|
1953
2219
|
sequence: Int
|
|
@@ -1987,16 +2253,6 @@ input ChecklistTypePatch {
|
|
|
1987
2253
|
mainType: String
|
|
1988
2254
|
}
|
|
1989
2255
|
|
|
1990
|
-
input CodeDecipherInput {
|
|
1991
|
-
code: String!
|
|
1992
|
-
language: String
|
|
1993
|
-
system: String
|
|
1994
|
-
}
|
|
1995
|
-
|
|
1996
|
-
type CodeDecipherOutput {
|
|
1997
|
-
message: String
|
|
1998
|
-
}
|
|
1999
|
-
|
|
2000
2256
|
"""Entity for CommonCode"""
|
|
2001
2257
|
type CommonCode {
|
|
2002
2258
|
createdAt: DateTimeISO
|
|
@@ -2079,6 +2335,11 @@ type Connection {
|
|
|
2079
2335
|
"""Unique identifier for the connection."""
|
|
2080
2336
|
id: ID!
|
|
2081
2337
|
|
|
2338
|
+
"""
|
|
2339
|
+
Inheritance mode for child domains. ISOLATE = per-child instance with isolated session. SHARE = shared parent instance. null = use Connector default (falls back to ISOLATE).
|
|
2340
|
+
"""
|
|
2341
|
+
inheritanceMode: ConnectionInheritanceMode
|
|
2342
|
+
|
|
2082
2343
|
"""The name of the connection."""
|
|
2083
2344
|
name: String!
|
|
2084
2345
|
|
|
@@ -2103,6 +2364,14 @@ type Connection {
|
|
|
2103
2364
|
updater: User
|
|
2104
2365
|
}
|
|
2105
2366
|
|
|
2367
|
+
"""
|
|
2368
|
+
Child domain inheritance mode — ISOLATE: per-child instance with isolated session/credentials. SHARE: single parent instance reused by all children.
|
|
2369
|
+
"""
|
|
2370
|
+
enum ConnectionInheritanceMode {
|
|
2371
|
+
ISOLATE
|
|
2372
|
+
SHARE
|
|
2373
|
+
}
|
|
2374
|
+
|
|
2106
2375
|
"""A paginated list of connections."""
|
|
2107
2376
|
type ConnectionList {
|
|
2108
2377
|
"""The list of connection items."""
|
|
@@ -2134,6 +2403,11 @@ input ConnectionPatch {
|
|
|
2134
2403
|
"""The unique identifier of the connection to update."""
|
|
2135
2404
|
id: ID
|
|
2136
2405
|
|
|
2406
|
+
"""
|
|
2407
|
+
Inheritance mode for child domains. ISOLATE = per-child instance. SHARE = shared parent instance. null = use connector default.
|
|
2408
|
+
"""
|
|
2409
|
+
inheritanceMode: ConnectionInheritanceMode
|
|
2410
|
+
|
|
2137
2411
|
"""The new name for the connection."""
|
|
2138
2412
|
name: String
|
|
2139
2413
|
|
|
@@ -2163,6 +2437,11 @@ type ConnectionState {
|
|
|
2163
2437
|
"""The unique identifier of the connection."""
|
|
2164
2438
|
id: String
|
|
2165
2439
|
|
|
2440
|
+
"""
|
|
2441
|
+
Inheritance mode for child domains. ISOLATE = per-child instance. SHARE = shared parent instance. null = use connector default (falls back to ISOLATE).
|
|
2442
|
+
"""
|
|
2443
|
+
inheritanceMode: ConnectionInheritanceMode
|
|
2444
|
+
|
|
2166
2445
|
"""The name of the connection."""
|
|
2167
2446
|
name: String
|
|
2168
2447
|
|
|
@@ -2210,6 +2489,68 @@ type ConnectorType {
|
|
|
2210
2489
|
taskPrefixes: [String!]
|
|
2211
2490
|
}
|
|
2212
2491
|
|
|
2492
|
+
type ConstructionChecklistTemplate {
|
|
2493
|
+
constructionChecklistTemplateItems: [ConstructionChecklistTemplateItem!]
|
|
2494
|
+
constructionDetailTypeId: String!
|
|
2495
|
+
constructionTypeId: String!
|
|
2496
|
+
createdAt: DateTimeISO
|
|
2497
|
+
creator: User
|
|
2498
|
+
deletedAt: DateTimeISO
|
|
2499
|
+
domain: Domain
|
|
2500
|
+
id: ID!
|
|
2501
|
+
updatedAt: DateTimeISO
|
|
2502
|
+
updater: User
|
|
2503
|
+
}
|
|
2504
|
+
|
|
2505
|
+
type ConstructionChecklistTemplateItem {
|
|
2506
|
+
constructionChecklistTemplate: ConstructionChecklistTemplate
|
|
2507
|
+
createdAt: DateTimeISO
|
|
2508
|
+
creator: User
|
|
2509
|
+
criteriaRequestStatus: CriteriaRequestStatus
|
|
2510
|
+
id: ID!
|
|
2511
|
+
inspctionCriteria: String
|
|
2512
|
+
mainType: String
|
|
2513
|
+
name: String!
|
|
2514
|
+
recommendation1: String
|
|
2515
|
+
recommendation2: String
|
|
2516
|
+
recommendation3: String
|
|
2517
|
+
recommendation4: String
|
|
2518
|
+
recommendation5: String
|
|
2519
|
+
sequence: Int
|
|
2520
|
+
updatedAt: DateTimeISO
|
|
2521
|
+
updater: User
|
|
2522
|
+
}
|
|
2523
|
+
|
|
2524
|
+
type ConstructionChecklistTemplateItemList {
|
|
2525
|
+
items: [ConstructionChecklistTemplateItem!]!
|
|
2526
|
+
total: Int!
|
|
2527
|
+
}
|
|
2528
|
+
|
|
2529
|
+
input ConstructionChecklistTemplateItemPatch {
|
|
2530
|
+
id: ID
|
|
2531
|
+
inspctionCriteria: String
|
|
2532
|
+
mainType: String
|
|
2533
|
+
name: String
|
|
2534
|
+
recommendation1: String
|
|
2535
|
+
recommendation2: String
|
|
2536
|
+
recommendation3: String
|
|
2537
|
+
recommendation4: String
|
|
2538
|
+
recommendation5: String
|
|
2539
|
+
sequence: Int
|
|
2540
|
+
}
|
|
2541
|
+
|
|
2542
|
+
type ConstructionChecklistTemplateList {
|
|
2543
|
+
items: [ConstructionChecklistTemplate!]!
|
|
2544
|
+
total: Int!
|
|
2545
|
+
}
|
|
2546
|
+
|
|
2547
|
+
input ConstructionChecklistTemplatePatch {
|
|
2548
|
+
constructionDetailTypeId: String
|
|
2549
|
+
constructionTypeId: String
|
|
2550
|
+
cuFlag: String
|
|
2551
|
+
id: ID
|
|
2552
|
+
}
|
|
2553
|
+
|
|
2213
2554
|
"""세부 공종 타입"""
|
|
2214
2555
|
type ConstructionDetailType {
|
|
2215
2556
|
constructionType: ConstructionType
|
|
@@ -2244,6 +2585,7 @@ type ConstructionType {
|
|
|
2244
2585
|
domain: Domain
|
|
2245
2586
|
id: ID!
|
|
2246
2587
|
name: String
|
|
2588
|
+
projectType: String
|
|
2247
2589
|
updatedAt: DateTimeISO
|
|
2248
2590
|
updater: User
|
|
2249
2591
|
}
|
|
@@ -2258,6 +2600,7 @@ input ConstructionTypePatch {
|
|
|
2258
2600
|
description: String
|
|
2259
2601
|
id: ID
|
|
2260
2602
|
name: String
|
|
2603
|
+
projectType: String
|
|
2261
2604
|
}
|
|
2262
2605
|
|
|
2263
2606
|
"""Entity for Contact"""
|
|
@@ -2332,6 +2675,11 @@ type Data {
|
|
|
2332
2675
|
The tag name attached to the data, used for filtering and identification.
|
|
2333
2676
|
"""
|
|
2334
2677
|
tag: String!
|
|
2678
|
+
|
|
2679
|
+
"""
|
|
2680
|
+
Server publish timestamp in epoch milliseconds, stamped at delivery. Used by clients to monitor data delivery lag.
|
|
2681
|
+
"""
|
|
2682
|
+
ts: Float
|
|
2335
2683
|
}
|
|
2336
2684
|
|
|
2337
2685
|
"""
|
|
@@ -2500,15 +2848,18 @@ input DataItemPatch {
|
|
|
2500
2848
|
|
|
2501
2849
|
"""type enumeration of a data-item"""
|
|
2502
2850
|
enum DataItemType {
|
|
2851
|
+
audio
|
|
2503
2852
|
boolean
|
|
2504
2853
|
date
|
|
2505
2854
|
datetime
|
|
2506
2855
|
file
|
|
2856
|
+
image
|
|
2507
2857
|
number
|
|
2508
2858
|
radio
|
|
2509
2859
|
select
|
|
2510
2860
|
signature
|
|
2511
2861
|
text
|
|
2862
|
+
video
|
|
2512
2863
|
}
|
|
2513
2864
|
|
|
2514
2865
|
"""
|
|
@@ -3539,6 +3890,27 @@ type DomainList {
|
|
|
3539
3890
|
total: Int
|
|
3540
3891
|
}
|
|
3541
3892
|
|
|
3893
|
+
"""An ownership record binding a User to a Domain (multi-owner support)."""
|
|
3894
|
+
type DomainOwner {
|
|
3895
|
+
"""Domain that the user owns."""
|
|
3896
|
+
domain: Domain!
|
|
3897
|
+
|
|
3898
|
+
"""When the ownership was granted."""
|
|
3899
|
+
grantedAt: DateTimeISO!
|
|
3900
|
+
|
|
3901
|
+
"""User who granted this ownership (audit)."""
|
|
3902
|
+
grantedBy: User
|
|
3903
|
+
|
|
3904
|
+
"""Unique identifier."""
|
|
3905
|
+
id: ID!
|
|
3906
|
+
|
|
3907
|
+
"""Optional reason/memo for granting ownership."""
|
|
3908
|
+
reason: String
|
|
3909
|
+
|
|
3910
|
+
"""User who owns the domain."""
|
|
3911
|
+
user: User!
|
|
3912
|
+
}
|
|
3913
|
+
|
|
3542
3914
|
"""Input type for updating an existing domain entity."""
|
|
3543
3915
|
input DomainPatch {
|
|
3544
3916
|
"""Additional attributes for the domain in key-value pairs."""
|
|
@@ -3976,6 +4348,42 @@ input EnvVarPatch {
|
|
|
3976
4348
|
value: String
|
|
3977
4349
|
}
|
|
3978
4350
|
|
|
4351
|
+
"""Resolved state of an EnvVar key with ancestor closest-wins lookup."""
|
|
4352
|
+
type EnvVarResolution {
|
|
4353
|
+
"""EnvVar id (only when found in any domain)."""
|
|
4354
|
+
envVarId: String
|
|
4355
|
+
hasValue: Boolean!
|
|
4356
|
+
key: String!
|
|
4357
|
+
sourceDomainId: String
|
|
4358
|
+
sourceDomainName: String
|
|
4359
|
+
status: String!
|
|
4360
|
+
|
|
4361
|
+
"""
|
|
4362
|
+
Resolved value when found. Client decides masking based on propertySpec type.
|
|
4363
|
+
"""
|
|
4364
|
+
value: String
|
|
4365
|
+
}
|
|
4366
|
+
|
|
4367
|
+
"""외부 시스템(세움터/올바로/키스콘) 데이터 수집 시나리오 호출 결과"""
|
|
4368
|
+
type ExternalDataCollectionResult {
|
|
4369
|
+
"""
|
|
4370
|
+
시나리오 result 객체 — projectKey: value 맵. 세움터={area, floorAreaRatio, upperFloorCount, lowerFloorCount, structureType, siteType}, 올바로={totalConstructionWasteAmount}, 키스콘={constructionPeriod, constructionCost}. siteType (건축물 용도, 예 APARTMENT_COMPLEX) / structureType (구조형태) 는 BuildingComplex 의 시설유형/구조유형 속성 후보. KISCON 의 "공사유형(신설/증축)" 은 DSSP SiteType (용도분류) 와 다른 도메인이라 매핑 대상 아님.
|
|
4371
|
+
"""
|
|
4372
|
+
data: Object
|
|
4373
|
+
|
|
4374
|
+
"""표시 라벨 (세움터/올바로/키스콘)"""
|
|
4375
|
+
label: String!
|
|
4376
|
+
|
|
4377
|
+
"""성공 시 "완료", 실패 시 에러 메시지"""
|
|
4378
|
+
message: String!
|
|
4379
|
+
|
|
4380
|
+
"""시나리오 실행 성공 여부"""
|
|
4381
|
+
ok: Boolean!
|
|
4382
|
+
|
|
4383
|
+
"""소스 키: saeumteo | allbaro | kiscon"""
|
|
4384
|
+
source: String!
|
|
4385
|
+
}
|
|
4386
|
+
|
|
3979
4387
|
"""Entity for Favorite"""
|
|
3980
4388
|
type Favorite {
|
|
3981
4389
|
createdAt: DateTimeISO
|
|
@@ -3993,6 +4401,48 @@ type FavoriteList {
|
|
|
3993
4401
|
total: Int!
|
|
3994
4402
|
}
|
|
3995
4403
|
|
|
4404
|
+
"""Entity for FieldDocument"""
|
|
4405
|
+
type FieldDocument {
|
|
4406
|
+
aiSummary: String
|
|
4407
|
+
aiSummaryStatus: FieldDocumentSummaryStatus
|
|
4408
|
+
code: String!
|
|
4409
|
+
createdAt: DateTimeISO
|
|
4410
|
+
creator: User
|
|
4411
|
+
deletedAt: DateTimeISO
|
|
4412
|
+
domain: Domain
|
|
4413
|
+
|
|
4414
|
+
"""파일 크기"""
|
|
4415
|
+
fileSize: String
|
|
4416
|
+
|
|
4417
|
+
"""첨부파일 fullpath"""
|
|
4418
|
+
fullpath: String
|
|
4419
|
+
id: ID
|
|
4420
|
+
isFavorite: Boolean
|
|
4421
|
+
name: String!
|
|
4422
|
+
projectId: String!
|
|
4423
|
+
sourceRefId: String
|
|
4424
|
+
sourceType: String
|
|
4425
|
+
updatedAt: DateTimeISO
|
|
4426
|
+
updater: User
|
|
4427
|
+
}
|
|
4428
|
+
|
|
4429
|
+
type FieldDocumentCodeCount {
|
|
4430
|
+
code: String!
|
|
4431
|
+
count: Int!
|
|
4432
|
+
}
|
|
4433
|
+
|
|
4434
|
+
type FieldDocumentList {
|
|
4435
|
+
items: [FieldDocument!]!
|
|
4436
|
+
total: Int!
|
|
4437
|
+
}
|
|
4438
|
+
|
|
4439
|
+
"""AI 문서 요약 요청 상태"""
|
|
4440
|
+
enum FieldDocumentSummaryStatus {
|
|
4441
|
+
FAIL
|
|
4442
|
+
REQUEST
|
|
4443
|
+
SUCCESS
|
|
4444
|
+
}
|
|
4445
|
+
|
|
3996
4446
|
"""Input type for specifying a filter condition in a list query."""
|
|
3997
4447
|
input Filter {
|
|
3998
4448
|
"""The field name to apply the filter on."""
|
|
@@ -4098,14 +4548,68 @@ input GroupPatch {
|
|
|
4098
4548
|
name: String
|
|
4099
4549
|
}
|
|
4100
4550
|
|
|
4101
|
-
input
|
|
4102
|
-
|
|
4103
|
-
|
|
4104
|
-
|
|
4551
|
+
input ImportBoardAsyncInput {
|
|
4552
|
+
"""Apply Stage 4 (data binding)."""
|
|
4553
|
+
applyBinding: Boolean
|
|
4554
|
+
|
|
4555
|
+
"""
|
|
4556
|
+
Attachment id of the source drawing file (uploaded via attachment-base).
|
|
4557
|
+
"""
|
|
4558
|
+
attachmentId: String!
|
|
4559
|
+
|
|
4560
|
+
"""ChatSession id when triggered from board-ai chat."""
|
|
4561
|
+
chatSessionId: String
|
|
4562
|
+
|
|
4563
|
+
"""Flip Y axis (CAD Y-up → scene Y-down)."""
|
|
4564
|
+
flipY: Boolean
|
|
4565
|
+
|
|
4566
|
+
"""Normalize coordinates so minX,minY=0"""
|
|
4567
|
+
normalizeOrigin: Boolean
|
|
4568
|
+
|
|
4569
|
+
"""Adapter parse options (excludeLayers, maxEntities, ...)."""
|
|
4570
|
+
parseOptions: JSON
|
|
4571
|
+
|
|
4572
|
+
"""Scale factor (e.g. 1 for mm:1unit)."""
|
|
4573
|
+
scale: Float
|
|
4574
|
+
|
|
4575
|
+
"""Registry scopes to use (board-import)."""
|
|
4576
|
+
scopes: [String!]
|
|
4577
|
+
|
|
4578
|
+
"""
|
|
4579
|
+
User-provided context / hints about the drawing — passed to VLM as additional guidance. e.g. "fab lithography zone, central rectangles are stockers, thin lines are OHT rails."
|
|
4580
|
+
"""
|
|
4581
|
+
userPrompt: String
|
|
4105
4582
|
}
|
|
4106
4583
|
|
|
4107
|
-
|
|
4108
|
-
|
|
4584
|
+
"""도면 → 보드 변환 작업의 영속 단위 (비동기 진행상태 추적)."""
|
|
4585
|
+
type ImportSession {
|
|
4586
|
+
"""Attachment id (the source drawing file)"""
|
|
4587
|
+
attachmentId: String!
|
|
4588
|
+
|
|
4589
|
+
"""ChatSession id when triggered from chat (board-ai)."""
|
|
4590
|
+
chatSessionId: String
|
|
4591
|
+
completedAt: DateTimeISO
|
|
4592
|
+
createdAt: DateTimeISO
|
|
4593
|
+
creator: User
|
|
4594
|
+
domain: Domain
|
|
4595
|
+
id: ID
|
|
4596
|
+
message: String
|
|
4597
|
+
|
|
4598
|
+
"""Options used (parsed JSON)."""
|
|
4599
|
+
options: JSON
|
|
4600
|
+
|
|
4601
|
+
"""Progress percentage 0..100"""
|
|
4602
|
+
progress: Float!
|
|
4603
|
+
|
|
4604
|
+
"""Result (parsed JSON): { boardModel, stats, warnings }."""
|
|
4605
|
+
result: JSON
|
|
4606
|
+
|
|
4607
|
+
"""queued | parsing | mapping | assembling | binding | completed | failed"""
|
|
4608
|
+
status: String!
|
|
4609
|
+
|
|
4610
|
+
"""Total entities counted (when known)."""
|
|
4611
|
+
totalEntities: Int
|
|
4612
|
+
updatedAt: DateTimeISO
|
|
4109
4613
|
}
|
|
4110
4614
|
|
|
4111
4615
|
"""
|
|
@@ -4281,6 +4785,11 @@ enum IssueStatus {
|
|
|
4281
4785
|
STATUS_B
|
|
4282
4786
|
}
|
|
4283
4787
|
|
|
4788
|
+
"""
|
|
4789
|
+
The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf).
|
|
4790
|
+
"""
|
|
4791
|
+
scalar JSON @specifiedBy(url: "http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf")
|
|
4792
|
+
|
|
4284
4793
|
"""
|
|
4285
4794
|
A field whose value is a JSON Web Token (JWT): https://jwt.io/introduction.
|
|
4286
4795
|
"""
|
|
@@ -4361,6 +4870,11 @@ type Kpi {
|
|
|
4361
4870
|
"""
|
|
4362
4871
|
scoreFormula: String
|
|
4363
4872
|
|
|
4873
|
+
"""
|
|
4874
|
+
value → score 변환 방식. NONE: 미설정, DIRECT: value=score(변환 없음), FORMULA: scoreFormula 수식, LOOKUP: grade table(1D), CUSTOM: 2D 룩업 등 특수 변환.
|
|
4875
|
+
"""
|
|
4876
|
+
scoreType: KpiScoreType
|
|
4877
|
+
|
|
4364
4878
|
"""Current state of the KPI (DRAFT, RELEASED, ARCHIVED)."""
|
|
4365
4879
|
state: String
|
|
4366
4880
|
targetValue: Float
|
|
@@ -4385,6 +4899,11 @@ type Kpi {
|
|
|
4385
4899
|
orgScope: String
|
|
4386
4900
|
): KpiValue
|
|
4387
4901
|
|
|
4902
|
+
"""
|
|
4903
|
+
value 획득 방식. MEASURED: 외부 시스템 수집 측정값, ASSESSED: 감리자 직접 평가(1~5), CALCULATED: formula 자동 계산, COMPOSITE: 다차원 룩업 결과.
|
|
4904
|
+
"""
|
|
4905
|
+
valueType: KpiValueType
|
|
4906
|
+
|
|
4388
4907
|
"""
|
|
4389
4908
|
Version number of the KPI. Increments on each modification. When the KPI is released, a snapshot is saved in kpi-history and the status becomes RELEASED. Editing after release increases the version and sets status to DRAFT.
|
|
4390
4909
|
"""
|
|
@@ -4420,6 +4939,30 @@ type KpiAlert {
|
|
|
4420
4939
|
message: String!
|
|
4421
4940
|
}
|
|
4422
4941
|
|
|
4942
|
+
type KpiComprehensiveStats {
|
|
4943
|
+
avgVal: Float!
|
|
4944
|
+
kpiName: String
|
|
4945
|
+
maxVal: Float!
|
|
4946
|
+
medVal: Float!
|
|
4947
|
+
minVal: Float!
|
|
4948
|
+
projectCount: Int!
|
|
4949
|
+
q1Val: Float!
|
|
4950
|
+
q3Val: Float!
|
|
4951
|
+
}
|
|
4952
|
+
|
|
4953
|
+
type KpiComprehensiveStatsByGeoGroup {
|
|
4954
|
+
address: String
|
|
4955
|
+
avgVal: Float!
|
|
4956
|
+
geoGroup: String
|
|
4957
|
+
kpiName: String
|
|
4958
|
+
maxVal: Float!
|
|
4959
|
+
medVal: Float!
|
|
4960
|
+
minVal: Float!
|
|
4961
|
+
projectCount: Int!
|
|
4962
|
+
q1Val: Float!
|
|
4963
|
+
q3Val: Float!
|
|
4964
|
+
}
|
|
4965
|
+
|
|
4423
4966
|
"""History Entity of Kpi"""
|
|
4424
4967
|
type KpiHistory {
|
|
4425
4968
|
"""Whether this KPI is active (usable) or not."""
|
|
@@ -4498,12 +5041,18 @@ type KpiMetric {
|
|
|
4498
5041
|
"""Unique identifier for this KPI metric."""
|
|
4499
5042
|
id: ID!
|
|
4500
5043
|
|
|
5044
|
+
"""metric 확장 설정(input/kind/source 등). 입력 UI·소스 바인딩 등을 담는 네임스페이스."""
|
|
5045
|
+
meta: Object
|
|
5046
|
+
|
|
4501
5047
|
"""Metric code, unique within the domain, used in KPI formulas."""
|
|
4502
5048
|
name: String!
|
|
4503
5049
|
|
|
4504
5050
|
"""Aggregation period type for this metric."""
|
|
4505
5051
|
periodType: KpiPeriodType!
|
|
4506
5052
|
|
|
5053
|
+
"""목록 표시 순서(오름차순). 미지정(null)은 뒤로 정렬."""
|
|
5054
|
+
rank: Int
|
|
5055
|
+
|
|
4507
5056
|
"""
|
|
4508
5057
|
Cron schedule string for periodic KPI value aggregation (e.g., "0 0 * * *" for daily).
|
|
4509
5058
|
"""
|
|
@@ -4553,15 +5102,21 @@ input KpiMetricPatch {
|
|
|
4553
5102
|
"""데이터 수집 방식"""
|
|
4554
5103
|
collectType: KpiMetricCollectType
|
|
4555
5104
|
cuFlag: String
|
|
4556
|
-
|
|
5105
|
+
dataSet: ObjectRef
|
|
4557
5106
|
description: String
|
|
4558
5107
|
fieldName: String
|
|
4559
5108
|
id: ID
|
|
5109
|
+
|
|
5110
|
+
"""확장 메타(JSON). 입력 위젯 힌트(meta.input) 등. 스키마 변경 없이 확장."""
|
|
5111
|
+
meta: Object
|
|
4560
5112
|
name: String
|
|
4561
5113
|
|
|
4562
5114
|
"""Aggregation period type for this metric."""
|
|
4563
5115
|
periodType: KpiPeriodType
|
|
4564
5116
|
|
|
5117
|
+
"""목록 표시 순서(오름차순). 미지정(null)은 뒤로 정렬."""
|
|
5118
|
+
rank: Int
|
|
5119
|
+
|
|
4565
5120
|
"""
|
|
4566
5121
|
Cron schedule string for periodic KPI value aggregation (e.g., "0 0 * * *" for daily).
|
|
4567
5122
|
"""
|
|
@@ -4596,7 +5151,7 @@ type KpiMetricValue {
|
|
|
4596
5151
|
"""
|
|
4597
5152
|
org: String
|
|
4598
5153
|
periodType: KpiPeriodType!
|
|
4599
|
-
project: Project
|
|
5154
|
+
project: Project
|
|
4600
5155
|
unit: String
|
|
4601
5156
|
updatedAt: DateTimeISO
|
|
4602
5157
|
updater: User
|
|
@@ -4652,6 +5207,13 @@ input KpiMetricValuePatch {
|
|
|
4652
5207
|
valueDate: String
|
|
4653
5208
|
}
|
|
4654
5209
|
|
|
5210
|
+
type KpiMonthlyTrend {
|
|
5211
|
+
avgVal: Float!
|
|
5212
|
+
geoGroup: String
|
|
5213
|
+
projectCount: Int!
|
|
5214
|
+
yearMonth: String!
|
|
5215
|
+
}
|
|
5216
|
+
|
|
4655
5217
|
"""
|
|
4656
5218
|
KPI organization scope mapping entity. Maps business entities to various scope dimensions for KPI analysis using generic reference pattern.
|
|
4657
5219
|
"""
|
|
@@ -4797,6 +5359,9 @@ input KpiPatch {
|
|
|
4797
5359
|
"""
|
|
4798
5360
|
scoreFormula: String
|
|
4799
5361
|
|
|
5362
|
+
"""value → score 변환 방식."""
|
|
5363
|
+
scoreType: KpiScoreType
|
|
5364
|
+
|
|
4800
5365
|
"""Current state of the KPI (DRAFT, RELEASED, ARCHIVED)."""
|
|
4801
5366
|
state: KpiStatus
|
|
4802
5367
|
|
|
@@ -4806,6 +5371,9 @@ input KpiPatch {
|
|
|
4806
5371
|
"""Timezone for the KPI schedule."""
|
|
4807
5372
|
timezone: String
|
|
4808
5373
|
|
|
5374
|
+
"""value 획득 방식."""
|
|
5375
|
+
valueType: KpiValueType
|
|
5376
|
+
|
|
4809
5377
|
"""
|
|
4810
5378
|
Visualization options and metadata for this KPI, such as color, icon, thresholds, unit, decimal places, etc.
|
|
4811
5379
|
"""
|
|
@@ -4833,6 +5401,19 @@ enum KpiPeriodType {
|
|
|
4833
5401
|
YEAR
|
|
4834
5402
|
}
|
|
4835
5403
|
|
|
5404
|
+
type KpiProjectStat {
|
|
5405
|
+
avgVal: Float!
|
|
5406
|
+
categoryName: String
|
|
5407
|
+
kpiName: String!
|
|
5408
|
+
maxVal: Float!
|
|
5409
|
+
medVal: Float!
|
|
5410
|
+
minVal: Float!
|
|
5411
|
+
projectCount: Int!
|
|
5412
|
+
q1Val: Float!
|
|
5413
|
+
q3Val: Float!
|
|
5414
|
+
stddevVal: Float!
|
|
5415
|
+
}
|
|
5416
|
+
|
|
4836
5417
|
"""
|
|
4837
5418
|
Defines the meaning and metadata for each scope level (scope01~05) in KpiOrgScope
|
|
4838
5419
|
"""
|
|
@@ -4929,6 +5510,16 @@ input KpiScopePatch {
|
|
|
4929
5510
|
validationPattern: String
|
|
4930
5511
|
}
|
|
4931
5512
|
|
|
5513
|
+
"""
|
|
5514
|
+
value → score 변환 방식. DIRECT: value=score(변환 없음), FORMULA: scoreFormula 수식 적용, LOOKUP: grade table(1D) 매핑, CUSTOM: 2D 룩업 등 특수 변환.
|
|
5515
|
+
"""
|
|
5516
|
+
enum KpiScoreType {
|
|
5517
|
+
CUSTOM
|
|
5518
|
+
DIRECT
|
|
5519
|
+
FORMULA
|
|
5520
|
+
LOOKUP
|
|
5521
|
+
}
|
|
5522
|
+
|
|
4932
5523
|
"""
|
|
4933
5524
|
KPI Statistics Entity - Stores comprehensive statistical information for KPIs and Categories including central tendency measures (mean, median), dispersion metrics (standard deviation, variance), range indicators (min, max), and percentile distributions (25th, 75th percentiles, IQR). Supports both KPI and Category targets with flexible period-based aggregation (daily, weekly, monthly, yearly). Includes extensible JSON fields for additional metrics and metadata for calculation tracking.
|
|
4934
5525
|
"""
|
|
@@ -5109,7 +5700,7 @@ type KpiValue {
|
|
|
5109
5700
|
project: Project!
|
|
5110
5701
|
|
|
5111
5702
|
"""
|
|
5112
|
-
Performance score calculated from KPI value using scoreFormula or grades lookup table.
|
|
5703
|
+
Performance score calculated from KPI value using scoreFormula or grades lookup table.
|
|
5113
5704
|
"""
|
|
5114
5705
|
score: Float
|
|
5115
5706
|
|
|
@@ -5200,6 +5791,21 @@ input KpiValuePatch {
|
|
|
5200
5791
|
version: Int
|
|
5201
5792
|
}
|
|
5202
5793
|
|
|
5794
|
+
"""
|
|
5795
|
+
value 획득 방식. MEASURED: 외부 시스템 수집 측정값, ASSESSED: 감리자 직접 평가(1~5), CALCULATED: formula 자동 계산, COMPOSITE: 다차원 복합 입력 결과.
|
|
5796
|
+
"""
|
|
5797
|
+
enum KpiValueType {
|
|
5798
|
+
ASSESSED
|
|
5799
|
+
CALCULATED
|
|
5800
|
+
COMPOSITE
|
|
5801
|
+
MEASURED
|
|
5802
|
+
}
|
|
5803
|
+
|
|
5804
|
+
type KpiValuesObject {
|
|
5805
|
+
kpiName: String!
|
|
5806
|
+
value: Float!
|
|
5807
|
+
}
|
|
5808
|
+
|
|
5203
5809
|
"""Visualization type for KPI display (CARD, GAUGE, PROGRESS, etc.)"""
|
|
5204
5810
|
enum KpiVizType {
|
|
5205
5811
|
BADGE
|
|
@@ -5336,6 +5942,33 @@ input ManagerPatch {
|
|
|
5336
5942
|
userId: ID
|
|
5337
5943
|
}
|
|
5338
5944
|
|
|
5945
|
+
input MaterializeImportSessionInput {
|
|
5946
|
+
"""Optional Board description."""
|
|
5947
|
+
description: String
|
|
5948
|
+
|
|
5949
|
+
"""Optional Group id to attach the Board to."""
|
|
5950
|
+
groupId: ID
|
|
5951
|
+
|
|
5952
|
+
"""New Board name."""
|
|
5953
|
+
name: String!
|
|
5954
|
+
|
|
5955
|
+
"""ImportSession id (must be in completed state)."""
|
|
5956
|
+
sessionId: ID!
|
|
5957
|
+
|
|
5958
|
+
"""
|
|
5959
|
+
Base64 thumbnail. If omitted, board-service default empty thumbnail is used.
|
|
5960
|
+
"""
|
|
5961
|
+
thumbnail: String
|
|
5962
|
+
|
|
5963
|
+
"""Board type — 'main' | 'sub' | 'popup'. Default 'main'."""
|
|
5964
|
+
type: String
|
|
5965
|
+
|
|
5966
|
+
"""
|
|
5967
|
+
ImportSession 의 결과 시안 중 하나의 id. 'as-is' / 'scene' / 'auto-fit'. 미지정 시 default variant (보통 'scene') 사용.
|
|
5968
|
+
"""
|
|
5969
|
+
variantId: String
|
|
5970
|
+
}
|
|
5971
|
+
|
|
5339
5972
|
"""Entity for Menu"""
|
|
5340
5973
|
type Menu {
|
|
5341
5974
|
buttons: [MenuButton!]!
|
|
@@ -5714,6 +6347,9 @@ type Mutation {
|
|
|
5714
6347
|
username: String!
|
|
5715
6348
|
): Boolean!
|
|
5716
6349
|
|
|
6350
|
+
"""Add a user as owner of the current domain."""
|
|
6351
|
+
addDomainOwner(reason: String, username: String!): DomainOwner!
|
|
6352
|
+
|
|
5717
6353
|
"""To apply to all building inspection"""
|
|
5718
6354
|
applyToAllBuildingInspection(buildingInspectionId: String!): Boolean!
|
|
5719
6355
|
|
|
@@ -5734,6 +6370,14 @@ type Mutation {
|
|
|
5734
6370
|
"""
|
|
5735
6371
|
attachContact(contactId: String!, id: String!): Employee!
|
|
5736
6372
|
|
|
6373
|
+
"""
|
|
6374
|
+
썸네일이 없는 기존 첨부파일들에 대해 서버에서 썸네일을 일괄 생성한다. 한 호출당 limit 개까지만 처리하며, remaining > 0 이면 반복 호출 필요.
|
|
6375
|
+
"""
|
|
6376
|
+
backfillAttachmentThumbnails(limit: Int = 20): ThumbnailBackfillResult!
|
|
6377
|
+
|
|
6378
|
+
"""AI 주도 보드 모델링 — 자연어 채팅으로 보드 생성·구조편집·스타일링. sessionId 로 영속 컨텍스트."""
|
|
6379
|
+
boardAIChat(input: BoardAIChatInput!): BoardAIChatOutput!
|
|
6380
|
+
|
|
5737
6381
|
"""Bulk create or update KPI org-scope mappings."""
|
|
5738
6382
|
bulkUpsertKpiOrgScopes(
|
|
5739
6383
|
"""Array of org-scope mapping data for bulk upsert."""
|
|
@@ -5763,7 +6407,15 @@ type Mutation {
|
|
|
5763
6407
|
"""
|
|
5764
6408
|
Clones a board from an existing one, potentially into a different domain.
|
|
5765
6409
|
"""
|
|
5766
|
-
cloneBoard(id: String!, patch: BoardPatch!, targetGroupId: String, targetSubdomain: String!): Board!
|
|
6410
|
+
cloneBoard(id: String!, patch: BoardPatch!, targetGroupId: String, targetSubdomain: String!): Board!
|
|
6411
|
+
|
|
6412
|
+
"""Run only 건축물관리대장조회 scenario for project basic info collection."""
|
|
6413
|
+
collectProjectBasicInfo(address: String, projectId: String!): ExternalDataCollectionResult!
|
|
6414
|
+
|
|
6415
|
+
"""
|
|
6416
|
+
Run external data collection scenarios per system, returning per-system result.
|
|
6417
|
+
"""
|
|
6418
|
+
collectProjectExternalData(projectId: String!): [ExternalDataCollectionResult!]!
|
|
5767
6419
|
|
|
5768
6420
|
"""Establishes a live connection to a configured endpoint."""
|
|
5769
6421
|
connectConnection(name: String!): Connection!
|
|
@@ -5822,6 +6474,16 @@ type Mutation {
|
|
|
5822
6474
|
"""Create Daily Worklog by projectId+date"""
|
|
5823
6475
|
createBuildingInspectionDailyWorklog(patch: BuildingInspectionDailyWorklogNew!): BuildingInspectionDailyWorklog!
|
|
5824
6476
|
|
|
6477
|
+
"""
|
|
6478
|
+
Always create a new AI chat session for a board (no idempotent reuse). For multi-session UX — 새 탭 열기.
|
|
6479
|
+
"""
|
|
6480
|
+
createChatSession(
|
|
6481
|
+
boardId: String!
|
|
6482
|
+
|
|
6483
|
+
"""Optional name (defaults to auto-generated `세션 N`)."""
|
|
6484
|
+
name: String
|
|
6485
|
+
): ChatSession!
|
|
6486
|
+
|
|
5825
6487
|
"""To create new ChecklistItemComment"""
|
|
5826
6488
|
createChecklistItemComment(checklistItemComment: NewChecklistItemComment!): ChecklistItemComment!
|
|
5827
6489
|
|
|
@@ -5898,6 +6560,12 @@ type Mutation {
|
|
|
5898
6560
|
"""To create new Favorite"""
|
|
5899
6561
|
createFavorite(favorite: NewFavorite!): Favorite!
|
|
5900
6562
|
|
|
6563
|
+
"""현장 문서 생성"""
|
|
6564
|
+
createFieldDocument(patch: NewFieldDocument!): FieldDocument!
|
|
6565
|
+
|
|
6566
|
+
"""현장 문서 다건 생성"""
|
|
6567
|
+
createFieldDocuments(patches: [NewFieldDocument!]!): [FieldDocument!]!
|
|
6568
|
+
|
|
5901
6569
|
"""To create new Font"""
|
|
5902
6570
|
createFont(font: NewFont!): Font!
|
|
5903
6571
|
|
|
@@ -6003,6 +6671,9 @@ type Mutation {
|
|
|
6003
6671
|
"""프로젝트 생성"""
|
|
6004
6672
|
createProject(project: NewProject!): Project!
|
|
6005
6673
|
|
|
6674
|
+
"""프로젝트 체크리스트 생성"""
|
|
6675
|
+
createProjectChecklist(constructionDetailTypeId: String!, constructionTypeId: String!, items: [ProjectChecklistItemInput!]!, name: String!, projectId: String!, siteSpecPdfUrl: String): ProjectChecklist!
|
|
6676
|
+
|
|
6006
6677
|
"""To create new ProjectReport"""
|
|
6007
6678
|
createProjectReport(projectReport: NewProjectReport!): ProjectReport!
|
|
6008
6679
|
|
|
@@ -6169,6 +6840,12 @@ type Mutation {
|
|
|
6169
6840
|
"""Deletes multiple connections by their names."""
|
|
6170
6841
|
deleteConnections(names: [String!]!): Boolean!
|
|
6171
6842
|
|
|
6843
|
+
"""공종 체크리스트 템플릿 아이템 삭제"""
|
|
6844
|
+
deleteConstructionChecklistTemplateItems(ids: [String!]!): Boolean!
|
|
6845
|
+
|
|
6846
|
+
"""공종 기반 체크리스트 템플릿 삭제"""
|
|
6847
|
+
deleteConstructionChecklistTemplates(ids: [String!]!): Boolean!
|
|
6848
|
+
|
|
6172
6849
|
"""To delete multiple ConstructionDetailTypes"""
|
|
6173
6850
|
deleteConstructionDetailTypes(ids: [String!]!): Boolean!
|
|
6174
6851
|
|
|
@@ -6294,6 +6971,9 @@ type Mutation {
|
|
|
6294
6971
|
"""To delete Favorite"""
|
|
6295
6972
|
deleteFavorite(routing: String!): Boolean!
|
|
6296
6973
|
|
|
6974
|
+
"""현장 문서 삭제"""
|
|
6975
|
+
deleteFieldDocuments(ids: [String!]!): Boolean!
|
|
6976
|
+
|
|
6297
6977
|
"""To delete Font"""
|
|
6298
6978
|
deleteFont(id: String!): Boolean!
|
|
6299
6979
|
|
|
@@ -6456,6 +7136,9 @@ type Mutation {
|
|
|
6456
7136
|
"""To delete Project"""
|
|
6457
7137
|
deleteProject(id: String!): Boolean!
|
|
6458
7138
|
|
|
7139
|
+
"""프로젝트 체크리스트 삭제"""
|
|
7140
|
+
deleteProjectChecklists(ids: [String!]!): Boolean!
|
|
7141
|
+
|
|
6459
7142
|
"""To delete ProjectReport"""
|
|
6460
7143
|
deleteProjectReport(id: String!): Boolean!
|
|
6461
7144
|
|
|
@@ -6553,6 +7236,9 @@ type Mutation {
|
|
|
6553
7236
|
"""To delete multiple WorkerTypes"""
|
|
6554
7237
|
deleteWorkerTypes(ids: [String!]!): Boolean!
|
|
6555
7238
|
|
|
7239
|
+
"""프로젝트 테넌트 강등 (Domain soft-delete, Project.code 보존)"""
|
|
7240
|
+
demoteProjectTenant(projectId: String!): Boolean!
|
|
7241
|
+
|
|
6556
7242
|
"""
|
|
6557
7243
|
Detaches an existing contact from an employee. The employee is identified by their ID.
|
|
6558
7244
|
"""
|
|
@@ -6629,6 +7315,9 @@ type Mutation {
|
|
|
6629
7315
|
attributes: [AttributeSetPatch!]!
|
|
6630
7316
|
): Boolean!
|
|
6631
7317
|
|
|
7318
|
+
"""도면 → 보드 변환을 비동기로 시작. 즉시 ImportSession 반환, 백그라운드에서 처리."""
|
|
7319
|
+
importBoardAsync(input: ImportBoardAsyncInput!): ImportSession!
|
|
7320
|
+
|
|
6632
7321
|
"""Imports multiple boards from JSON files."""
|
|
6633
7322
|
importBoards(files: [Upload!]!, groupId: String!, overwrite: Boolean!): [Board!]!
|
|
6634
7323
|
|
|
@@ -6772,6 +7461,14 @@ type Mutation {
|
|
|
6772
7461
|
|
|
6773
7462
|
"""Removes one or more boards from a play group."""
|
|
6774
7463
|
leavePlayGroup(boardIds: [String!]!, id: String!): PlayGroup!
|
|
7464
|
+
|
|
7465
|
+
"""
|
|
7466
|
+
완료된 ImportSession 의 결과 boardModel 을 새 Board entity 로 영속화한다. 검수 단계 (사용자/AI 가 import 결과를 확인 후 명시적으로 호출) 에서 사용. Board.state="draft" 로 생성되므로 release mutation 으로 별도 발행 필요.
|
|
7467
|
+
"""
|
|
7468
|
+
materializeImportSession(input: MaterializeImportSessionInput!): Board!
|
|
7469
|
+
|
|
7470
|
+
"""문서 폴더 이동"""
|
|
7471
|
+
moveFieldDocuments(ids: [String!]!, targetCode: String!): Boolean!
|
|
6775
7472
|
multipleUpload(files: [Upload!]!): [Attachment!]!
|
|
6776
7473
|
|
|
6777
7474
|
"""
|
|
@@ -6779,12 +7476,23 @@ type Mutation {
|
|
|
6779
7476
|
"""
|
|
6780
7477
|
pickActivityInstance(id: String!): ActivityThread
|
|
6781
7478
|
|
|
7479
|
+
"""프로젝트를 테넌트로 승격 (관리번호 발번 + project 카테고리 Domain 생성)"""
|
|
7480
|
+
promoteProjectToTenant(projectId: String!): Project!
|
|
7481
|
+
|
|
6782
7482
|
"""기존 KPI Value 인스턴스를 현재 formula/metric 값으로 재계산"""
|
|
6783
7483
|
recalculateKpiValue(id: String!): KpiValue!
|
|
6784
7484
|
|
|
7485
|
+
"""Recalculate project KPI without finalizing (interim)."""
|
|
7486
|
+
recalculateProjectKpi(projectId: String!): Boolean!
|
|
7487
|
+
|
|
6785
7488
|
"""Recalculate scores for all KpiValues of a specific KPI"""
|
|
6786
7489
|
recalculateScoresForKpi(kpiId: String!): Boolean!
|
|
6787
7490
|
|
|
7491
|
+
"""
|
|
7492
|
+
Record a patch from user direct edit. Adds a system message so AI sees the change next turn.
|
|
7493
|
+
"""
|
|
7494
|
+
recordDirectPatch(ops: JSON!, sessionId: String!, summary: String): PatchEntry!
|
|
7495
|
+
|
|
6788
7496
|
"""Record a metric value by metric name, value, meta, and org."""
|
|
6789
7497
|
recordKpiMetricValue(
|
|
6790
7498
|
"""Extended or non-numeric information (JSON)."""
|
|
@@ -6836,8 +7544,17 @@ type Mutation {
|
|
|
6836
7544
|
|
|
6837
7545
|
"""Release a KPI and create a version history."""
|
|
6838
7546
|
releaseKpi(id: String!): Kpi!
|
|
7547
|
+
|
|
7548
|
+
"""Remove a user from the owners of the current domain."""
|
|
7549
|
+
removeDomainOwner(reason: String, username: String!): Boolean!
|
|
7550
|
+
|
|
7551
|
+
"""Rename a ChatSession (tab label)."""
|
|
7552
|
+
renameChatSession(name: String!, sessionId: String!): Boolean!
|
|
6839
7553
|
renewApplicationAccessToken(id: String!, scope: String!): AccessToken!
|
|
6840
7554
|
|
|
7555
|
+
"""Reorders a board between two adjacent boards by ID."""
|
|
7556
|
+
reorderBoard(id: String!, nextId: String, prevId: String): Boolean!
|
|
7557
|
+
|
|
6841
7558
|
"""Sets the custom playback order for boards in a play group."""
|
|
6842
7559
|
reorderPlayGroup(boardIds: [String!]!, id: String!): PlayGroup!
|
|
6843
7560
|
|
|
@@ -6858,6 +7575,9 @@ type Mutation {
|
|
|
6858
7575
|
"""Revert a KPI to a specific historical version."""
|
|
6859
7576
|
revertKpiVersion(id: String!, version: Float!): Kpi!
|
|
6860
7577
|
|
|
7578
|
+
"""Mark a patch as reverted (does not undo, only flags)."""
|
|
7579
|
+
revertPatch(patchId: String!): Boolean!
|
|
7580
|
+
|
|
6861
7581
|
"""
|
|
6862
7582
|
Runs a new scenario instance once and returns the result after it finishes.
|
|
6863
7583
|
"""
|
|
@@ -6877,6 +7597,11 @@ type Mutation {
|
|
|
6877
7597
|
"""To start ActivityThread"""
|
|
6878
7598
|
startActivityThread(id: String!, output: Object, reason: String): ActivityThread
|
|
6879
7599
|
|
|
7600
|
+
"""
|
|
7601
|
+
Start (or get existing) AI chat session for a board. Idempotent — returns first existing or creates one.
|
|
7602
|
+
"""
|
|
7603
|
+
startBoardAISession(boardId: String!): ChatSession!
|
|
7604
|
+
|
|
6880
7605
|
"""
|
|
6881
7606
|
Starts automated data collection scheduling for the specified dataset. This mutation registers a cron-based schedule that automatically triggers data collection tasks according to the dataset configuration.
|
|
6882
7607
|
"""
|
|
@@ -6922,6 +7647,14 @@ type Mutation {
|
|
|
6922
7647
|
synchronizePrivilegeMaster(privilege: NewPrivilege!): Boolean!
|
|
6923
7648
|
terminateContract(partnerName: String!): Boolean!
|
|
6924
7649
|
|
|
7650
|
+
"""즐겨찾기 토글"""
|
|
7651
|
+
toggleFieldDocumentFavorite(id: String!): FieldDocument!
|
|
7652
|
+
|
|
7653
|
+
"""
|
|
7654
|
+
Presence heartbeat — bump current user's lastSeenAt in the session (online indicator).
|
|
7655
|
+
"""
|
|
7656
|
+
touchPresence(sessionId: String!): Boolean!
|
|
7657
|
+
|
|
6925
7658
|
"""
|
|
6926
7659
|
Transfers domain ownership to another user. Use this mutation to assign the owner role to a different user within the domain.
|
|
6927
7660
|
"""
|
|
@@ -7076,7 +7809,7 @@ type Mutation {
|
|
|
7076
7809
|
updateKpiMetricValuesCumulative(patches: [KpiMetricValuePatch!]!): [KpiMetricValue!]!
|
|
7077
7810
|
|
|
7078
7811
|
"""To modify multiple sentiment KpiMetricValues' value"""
|
|
7079
|
-
updateKpiMetricValuesSentiment(
|
|
7812
|
+
updateKpiMetricValuesSentiment(attachment: NewAttachment!): Attachment
|
|
7080
7813
|
|
|
7081
7814
|
"""Update a scope dimension definition"""
|
|
7082
7815
|
updateKpiScope(id: String!, patch: KpiScopePatch!): KpiScope!
|
|
@@ -7150,6 +7883,12 @@ type Mutation {
|
|
|
7150
7883
|
"""Updates multiple connections at once."""
|
|
7151
7884
|
updateMultipleConnection(patches: [ConnectionPatch!]!): [Connection!]!
|
|
7152
7885
|
|
|
7886
|
+
"""공종 기반 체크리스트 템플릿 생성/수정"""
|
|
7887
|
+
updateMultipleConstructionChecklistTemplate(patches: [ConstructionChecklistTemplatePatch!]!): [ConstructionChecklistTemplate!]!
|
|
7888
|
+
|
|
7889
|
+
"""공종 체크리스트 템플릿 아이템 일괄 저장"""
|
|
7890
|
+
updateMultipleConstructionChecklistTemplateItems(constructionChecklistTemplateId: String!, patches: [ConstructionChecklistTemplateItemPatch!]!): [ConstructionChecklistTemplateItem!]!
|
|
7891
|
+
|
|
7153
7892
|
"""To modify multiple ConstructionDetailTypes' information"""
|
|
7154
7893
|
updateMultipleConstructionDetailType(constructionTypeId: String!, patches: [ConstructionDetailTypePatch!]!): [ConstructionDetailType!]!
|
|
7155
7894
|
|
|
@@ -7345,6 +8084,9 @@ type Mutation {
|
|
|
7345
8084
|
"""프로젝트 업데이트 (중복 사용 금지)"""
|
|
7346
8085
|
updateProject(project: ProjectPatch!): Project!
|
|
7347
8086
|
|
|
8087
|
+
"""프로젝트 체크리스트 수정"""
|
|
8088
|
+
updateProjectChecklist(id: String!, items: [ProjectChecklistItemInput!]!, name: String!, siteSpecPdfUrl: String): ProjectChecklist!
|
|
8089
|
+
|
|
7348
8090
|
"""프로젝트 도면 업데이트"""
|
|
7349
8091
|
updateProjectPlan(project: ProjectPatch!): Project!
|
|
7350
8092
|
|
|
@@ -7428,6 +8170,9 @@ type Mutation {
|
|
|
7428
8170
|
|
|
7429
8171
|
"""프로젝트 공정표 업로드"""
|
|
7430
8172
|
uploadProjectScheduleTable(param: UploadProjectScheduleTable!): Boolean!
|
|
8173
|
+
|
|
8174
|
+
"""공종+세부공종 조합으로 find-or-create"""
|
|
8175
|
+
upsertConstructionChecklistTemplate(constructionDetailTypeId: String!, constructionTypeId: String!): ConstructionChecklistTemplate!
|
|
7431
8176
|
}
|
|
7432
8177
|
|
|
7433
8178
|
input NewActionPlan {
|
|
@@ -7673,6 +8418,11 @@ input NewConnection {
|
|
|
7673
8418
|
"""The endpoint URL or address for the new connection."""
|
|
7674
8419
|
endpoint: String
|
|
7675
8420
|
|
|
8421
|
+
"""
|
|
8422
|
+
Inheritance mode for child domains. ISOLATE = per-child instance. SHARE = shared parent instance. null = use connector default.
|
|
8423
|
+
"""
|
|
8424
|
+
inheritanceMode: ConnectionInheritanceMode
|
|
8425
|
+
|
|
7676
8426
|
"""The name for the new connection."""
|
|
7677
8427
|
name: String!
|
|
7678
8428
|
|
|
@@ -7983,6 +8733,17 @@ input NewFavorite {
|
|
|
7983
8733
|
routing: String!
|
|
7984
8734
|
}
|
|
7985
8735
|
|
|
8736
|
+
input NewFieldDocument {
|
|
8737
|
+
"""AI 브리핑 힌트용 분류 문자열 (대 · 중 · 소분류)"""
|
|
8738
|
+
category: String
|
|
8739
|
+
code: String!
|
|
8740
|
+
file: Upload
|
|
8741
|
+
name: String!
|
|
8742
|
+
projectId: String!
|
|
8743
|
+
sourceRefId: String
|
|
8744
|
+
sourceType: String
|
|
8745
|
+
}
|
|
8746
|
+
|
|
7986
8747
|
input NewFont {
|
|
7987
8748
|
active: Boolean
|
|
7988
8749
|
files: [Upload!]
|
|
@@ -8047,6 +8808,9 @@ input NewKpi {
|
|
|
8047
8808
|
"""
|
|
8048
8809
|
scoreFormula: String
|
|
8049
8810
|
|
|
8811
|
+
"""value → score 변환 방식."""
|
|
8812
|
+
scoreType: KpiScoreType
|
|
8813
|
+
|
|
8050
8814
|
"""Current state of the KPI (DRAFT, RELEASED, ARCHIVED)."""
|
|
8051
8815
|
state: KpiStatus
|
|
8052
8816
|
|
|
@@ -8056,6 +8820,9 @@ input NewKpi {
|
|
|
8056
8820
|
"""Timezone for the KPI schedule."""
|
|
8057
8821
|
timezone: String
|
|
8058
8822
|
|
|
8823
|
+
"""value 획득 방식."""
|
|
8824
|
+
valueType: KpiValueType
|
|
8825
|
+
|
|
8059
8826
|
"""
|
|
8060
8827
|
Visualization options and metadata for this KPI, such as color, icon, thresholds, unit, decimal places, etc.
|
|
8061
8828
|
"""
|
|
@@ -8080,8 +8847,8 @@ input NewKpiMetric {
|
|
|
8080
8847
|
"""데이터 수집 방식"""
|
|
8081
8848
|
collectType: KpiMetricCollectType
|
|
8082
8849
|
|
|
8083
|
-
"""
|
|
8084
|
-
|
|
8850
|
+
"""Source dataset for this metric."""
|
|
8851
|
+
dataSet: ObjectRef
|
|
8085
8852
|
|
|
8086
8853
|
"""User-friendly name or description of the metric."""
|
|
8087
8854
|
description: String
|
|
@@ -8089,12 +8856,18 @@ input NewKpiMetric {
|
|
|
8089
8856
|
"""Name of the field in the dataset this metric maps to."""
|
|
8090
8857
|
fieldName: String
|
|
8091
8858
|
|
|
8859
|
+
"""확장 메타(JSON). 입력 위젯 힌트(meta.input) 등. 스키마 변경 없이 확장."""
|
|
8860
|
+
meta: Object
|
|
8861
|
+
|
|
8092
8862
|
"""Metric code, unique within the domain, used in KPI formulas."""
|
|
8093
8863
|
name: String!
|
|
8094
8864
|
|
|
8095
8865
|
"""Aggregation period type for this metric."""
|
|
8096
8866
|
periodType: KpiPeriodType
|
|
8097
8867
|
|
|
8868
|
+
"""목록 표시 순서(오름차순). 미지정(null)은 뒤로 정렬."""
|
|
8869
|
+
rank: Int
|
|
8870
|
+
|
|
8098
8871
|
"""
|
|
8099
8872
|
Cron schedule string for periodic KPI value aggregation (e.g., "0 0 * * *" for daily).
|
|
8100
8873
|
"""
|
|
@@ -9230,6 +10003,26 @@ type PasswordRule {
|
|
|
9230
10003
|
useTightPattern: Boolean
|
|
9231
10004
|
}
|
|
9232
10005
|
|
|
10006
|
+
"""One board edit operation history (cascade-deleted with ChatSession)."""
|
|
10007
|
+
type PatchEntry {
|
|
10008
|
+
"""AI confidence 0..1 (null for user-direct)."""
|
|
10009
|
+
confidence: Float
|
|
10010
|
+
createdAt: DateTimeISO
|
|
10011
|
+
id: ID
|
|
10012
|
+
|
|
10013
|
+
"""BoardEditOp[] (parsed JSON array)."""
|
|
10014
|
+
opsJson: JSON!
|
|
10015
|
+
|
|
10016
|
+
"""Whether this patch was reverted."""
|
|
10017
|
+
reverted: Boolean!
|
|
10018
|
+
|
|
10019
|
+
"""'ai' | 'user-direct' | 'import'"""
|
|
10020
|
+
source: String!
|
|
10021
|
+
|
|
10022
|
+
"""Short human summary of this patch."""
|
|
10023
|
+
summary: String
|
|
10024
|
+
}
|
|
10025
|
+
|
|
9233
10026
|
"""Logs the request and response payloads for API interactions."""
|
|
9234
10027
|
type PayloadLog {
|
|
9235
10028
|
"""The timestamp when the log entry was created."""
|
|
@@ -9494,7 +10287,9 @@ input ProfileInput {
|
|
|
9494
10287
|
"""프로젝트"""
|
|
9495
10288
|
type Project {
|
|
9496
10289
|
buildingComplex: BuildingComplex
|
|
9497
|
-
|
|
10290
|
+
buildingUsage: String
|
|
10291
|
+
code: String
|
|
10292
|
+
completeReport: Attachment
|
|
9498
10293
|
createdAt: DateTimeISO
|
|
9499
10294
|
creator: User
|
|
9500
10295
|
deletedAt: DateTimeISO
|
|
@@ -9506,6 +10301,7 @@ type Project {
|
|
|
9506
10301
|
inputType: String
|
|
9507
10302
|
inspPassRate: Float
|
|
9508
10303
|
kpi: Float
|
|
10304
|
+
kpiValues: [KpiValuesObject!]!
|
|
9509
10305
|
mainPhoto: Attachment
|
|
9510
10306
|
name: String!
|
|
9511
10307
|
postalCode: String
|
|
@@ -9514,16 +10310,68 @@ type Project {
|
|
|
9514
10310
|
robotProgressRate: Float
|
|
9515
10311
|
rootTasks: [Task!]
|
|
9516
10312
|
scheduleTable: Attachment
|
|
10313
|
+
sectorType: String
|
|
10314
|
+
siteSpecPdfUrl: String
|
|
9517
10315
|
startDate: String
|
|
9518
10316
|
state: String!
|
|
9519
10317
|
structuralSafetyRate: Float
|
|
9520
10318
|
tasks: [Task!]
|
|
10319
|
+
|
|
10320
|
+
"""활성 테넌트 Domain (extType=project). 미승격 또는 강등 상태이면 null"""
|
|
10321
|
+
tenantDomain: Domain
|
|
9521
10322
|
totalProgress: Float
|
|
9522
10323
|
updatedAt: DateTimeISO
|
|
9523
10324
|
updater: User
|
|
9524
10325
|
weeklyProgress: Float
|
|
9525
10326
|
}
|
|
9526
10327
|
|
|
10328
|
+
type ProjectChecklist {
|
|
10329
|
+
constructionDetailTypeId: String!
|
|
10330
|
+
constructionTypeId: String!
|
|
10331
|
+
createdAt: DateTimeISO
|
|
10332
|
+
creator: User
|
|
10333
|
+
deletedAt: DateTimeISO
|
|
10334
|
+
domain: Domain
|
|
10335
|
+
id: ID!
|
|
10336
|
+
name: String!
|
|
10337
|
+
projectChecklistItems: [ProjectChecklistItem!]
|
|
10338
|
+
projectId: String!
|
|
10339
|
+
updatedAt: DateTimeISO
|
|
10340
|
+
updater: User
|
|
10341
|
+
}
|
|
10342
|
+
|
|
10343
|
+
type ProjectChecklistItem {
|
|
10344
|
+
createdAt: DateTimeISO
|
|
10345
|
+
creator: User
|
|
10346
|
+
id: ID!
|
|
10347
|
+
inspctionCriteria: String
|
|
10348
|
+
kcsCriteria: String
|
|
10349
|
+
mainType: String
|
|
10350
|
+
name: String!
|
|
10351
|
+
projectChecklist: ProjectChecklist
|
|
10352
|
+
sequence: Int
|
|
10353
|
+
siteSpecCriteria: String
|
|
10354
|
+
updatedAt: DateTimeISO
|
|
10355
|
+
updater: User
|
|
10356
|
+
}
|
|
10357
|
+
|
|
10358
|
+
input ProjectChecklistItemInput {
|
|
10359
|
+
inspctionCriteria: String
|
|
10360
|
+
mainType: String
|
|
10361
|
+
name: String!
|
|
10362
|
+
sequence: Int
|
|
10363
|
+
}
|
|
10364
|
+
|
|
10365
|
+
type ProjectChecklistItemList {
|
|
10366
|
+
items: [ProjectChecklistItem!]!
|
|
10367
|
+
total: Int!
|
|
10368
|
+
}
|
|
10369
|
+
|
|
10370
|
+
type ProjectChecklistList {
|
|
10371
|
+
items: [ProjectChecklist!]!
|
|
10372
|
+
total: Int!
|
|
10373
|
+
}
|
|
10374
|
+
|
|
9527
10375
|
type ProjectList {
|
|
9528
10376
|
"""프로젝트 리스트 항목들"""
|
|
9529
10377
|
items: [Project!]!
|
|
@@ -9545,12 +10393,18 @@ input ProjectPatch {
|
|
|
9545
10393
|
"""연관된 건물 복합체 정보 (선택 사항)"""
|
|
9546
10394
|
buildingComplex: BuildingComplexPatch
|
|
9547
10395
|
|
|
10396
|
+
"""건물 용도 (RESIDENTIAL: 주거, NON_RESIDENTIAL: 비주거)"""
|
|
10397
|
+
buildingUsage: String
|
|
10398
|
+
|
|
9548
10399
|
"""프로젝트 문서 네이밍"""
|
|
9549
10400
|
documentNaming: String
|
|
9550
10401
|
|
|
9551
10402
|
"""프로젝트 준공일정"""
|
|
9552
10403
|
endDate: String
|
|
9553
10404
|
|
|
10405
|
+
"""지역 구분 코드 (시군구 식별, 통계 그룹핑용)"""
|
|
10406
|
+
geoGroup: String
|
|
10407
|
+
|
|
9554
10408
|
"""수정할 프로젝트의 ID"""
|
|
9555
10409
|
id: String!
|
|
9556
10410
|
|
|
@@ -9564,7 +10418,10 @@ input ProjectPatch {
|
|
|
9564
10418
|
mainPhotoUpload: Upload
|
|
9565
10419
|
|
|
9566
10420
|
"""프로젝트 이름"""
|
|
9567
|
-
name: String
|
|
10421
|
+
name: String
|
|
10422
|
+
|
|
10423
|
+
"""우편 코드 (5자리)"""
|
|
10424
|
+
postalCode: String
|
|
9568
10425
|
|
|
9569
10426
|
"""로봇 작업 대수"""
|
|
9570
10427
|
robotCount: Int
|
|
@@ -9572,9 +10429,18 @@ input ProjectPatch {
|
|
|
9572
10429
|
"""로봇 작업 진행율 (%)"""
|
|
9573
10430
|
robotProgressRate: Float
|
|
9574
10431
|
|
|
10432
|
+
"""발주 유형 (PUBLIC: 공공, PRIVATE: 민간)"""
|
|
10433
|
+
sectorType: String
|
|
10434
|
+
|
|
10435
|
+
"""현장 시방서 PDF URL (https 전체 URL)"""
|
|
10436
|
+
siteSpecPdfUrl: String
|
|
10437
|
+
|
|
9575
10438
|
"""프로젝트 착공일정"""
|
|
9576
10439
|
startDate: String
|
|
9577
10440
|
|
|
10441
|
+
"""프로젝트 상태 (ONGOING/COMPLETED)"""
|
|
10442
|
+
state: ProjectState
|
|
10443
|
+
|
|
9578
10444
|
"""구조 안전도 (%)"""
|
|
9579
10445
|
structuralSafetyRate: Float
|
|
9580
10446
|
|
|
@@ -9626,6 +10492,12 @@ enum ProjectReportStatus {
|
|
|
9626
10492
|
STATUS_B
|
|
9627
10493
|
}
|
|
9628
10494
|
|
|
10495
|
+
"""프로젝트 상태 (ONGOING=10 진행중, COMPLETED=20 완료)"""
|
|
10496
|
+
enum ProjectState {
|
|
10497
|
+
COMPLETED
|
|
10498
|
+
ONGOING
|
|
10499
|
+
}
|
|
10500
|
+
|
|
9629
10501
|
"""
|
|
9630
10502
|
Describes a single property for a component or a step, used for UI rendering and configuration.
|
|
9631
10503
|
"""
|
|
@@ -9659,8 +10531,6 @@ type PropertySpec {
|
|
|
9659
10531
|
}
|
|
9660
10532
|
|
|
9661
10533
|
type Query {
|
|
9662
|
-
APIDocCompletion(input: APIDocCompletionInput!): APIDocCompletionOutput!
|
|
9663
|
-
|
|
9664
10534
|
"""To fetch a ActionPlan"""
|
|
9665
10535
|
actionPlan(id: String!): ActionPlan
|
|
9666
10536
|
|
|
@@ -10009,8 +10879,14 @@ type Query {
|
|
|
10009
10879
|
sortings: [Sorting!]
|
|
10010
10880
|
): AuthProviderList!
|
|
10011
10881
|
|
|
10012
|
-
"""
|
|
10013
|
-
board
|
|
10882
|
+
"""
|
|
10883
|
+
Finds a single board by its ID. If cachedUpdatedAt matches, model is omitted.
|
|
10884
|
+
"""
|
|
10885
|
+
board(
|
|
10886
|
+
"""Client cache timestamp — if matches, model field is omitted"""
|
|
10887
|
+
cachedUpdatedAt: String
|
|
10888
|
+
id: String!
|
|
10889
|
+
): Board!
|
|
10014
10890
|
|
|
10015
10891
|
"""Finds a single board by its name."""
|
|
10016
10892
|
boardByName(name: String!): Board
|
|
@@ -10087,6 +10963,11 @@ type Query {
|
|
|
10087
10963
|
sortings: [Sorting!]
|
|
10088
10964
|
): BoardList!
|
|
10089
10965
|
|
|
10966
|
+
"""
|
|
10967
|
+
Retrieves boards that have been updated or soft-deleted since the given timestamp.
|
|
10968
|
+
"""
|
|
10969
|
+
boardsUpdatedSince(since: DateTimeISO!): [Board!]!
|
|
10970
|
+
|
|
10090
10971
|
"""To fetch a building"""
|
|
10091
10972
|
building(id: String!): Building
|
|
10092
10973
|
|
|
@@ -10097,9 +10978,15 @@ type Query {
|
|
|
10097
10978
|
buildingInspection(id: String!): BuildingInspection
|
|
10098
10979
|
buildingInspectionDailyWorklogByProjectIdAndDate(date: String!, projectId: String!): BuildingInspectionDailyWorklog
|
|
10099
10980
|
|
|
10981
|
+
"""To fetch BuildingInspection Date Summary of Building"""
|
|
10982
|
+
buildingInspectionDateSummaryOfBuilding(buildingId: String!, endDate: String!, startDate: String!): [BuildingInspectionSummary!]
|
|
10983
|
+
|
|
10100
10984
|
"""To fetch a BuildingInspection Summary"""
|
|
10101
10985
|
buildingInspectionDateSummaryOfLevelAndPeriod(buildingLevelId: String!, endDate: String!, startDate: String!): [BuildingInspectionSummary!]
|
|
10102
10986
|
|
|
10987
|
+
"""To fetch BuildingInspection Date Summary of Project"""
|
|
10988
|
+
buildingInspectionDateSummaryOfProject(endDate: String!, projectId: String!, startDate: String!): [BuildingInspectionSummary!]
|
|
10989
|
+
|
|
10103
10990
|
"""To fetch multiple BuildingInspections"""
|
|
10104
10991
|
buildingInspectionHistories(
|
|
10105
10992
|
"""An array of filter conditions to apply to the list query."""
|
|
@@ -10118,6 +11005,9 @@ type Query {
|
|
|
10118
11005
|
"""To fetch a BuildingInspectionHistory"""
|
|
10119
11006
|
buildingInspectionHistory(id: String!): BuildingInspectionHistory
|
|
10120
11007
|
|
|
11008
|
+
"""To fetch BuildingInspection Summary of Building"""
|
|
11009
|
+
buildingInspectionSummaryOfBuilding(buildingId: String!): BuildingInspectionSummary
|
|
11010
|
+
|
|
10121
11011
|
"""To fetch a BuildingInspection Summary"""
|
|
10122
11012
|
buildingInspectionSummaryOfBuildingLevel(buildingLevelId: String!): BuildingInspectionSummary
|
|
10123
11013
|
|
|
@@ -10139,6 +11029,9 @@ type Query {
|
|
|
10139
11029
|
sortings: [Sorting!]
|
|
10140
11030
|
): BuildingInspectionList!
|
|
10141
11031
|
|
|
11032
|
+
"""To fetch BuildingInspections of Building"""
|
|
11033
|
+
buildingInspectionsOfBuilding(params: BuildingInspectionsOfBuilding!): BuildingInspectionList!
|
|
11034
|
+
|
|
10142
11035
|
"""To fetch multiple BuildingInspections"""
|
|
10143
11036
|
buildingInspectionsOfBuildingLevel(params: BuildingInspectionsOfBuildingLevel!): BuildingInspectionList!
|
|
10144
11037
|
|
|
@@ -10147,7 +11040,28 @@ type Query {
|
|
|
10147
11040
|
|
|
10148
11041
|
"""To fetch a building level"""
|
|
10149
11042
|
buildingLevel(id: String!): BuildingLevel
|
|
10150
|
-
|
|
11043
|
+
|
|
11044
|
+
"""List chat messages of a session, oldest first."""
|
|
11045
|
+
chatMessages(limit: Int = 100, offset: Int = 0, sessionId: String!): [ChatMessage!]!
|
|
11046
|
+
|
|
11047
|
+
"""List patch entries of a session, newest first."""
|
|
11048
|
+
chatPatches(limit: Int = 100, sessionId: String!): [PatchEntry!]!
|
|
11049
|
+
|
|
11050
|
+
"""Get AI chat session by id."""
|
|
11051
|
+
chatSession(id: String!): ChatSession
|
|
11052
|
+
|
|
11053
|
+
"""
|
|
11054
|
+
Get AI chat session by board id (returns first match — backward compat single-session lookup).
|
|
11055
|
+
"""
|
|
11056
|
+
chatSessionByBoard(boardId: String!): ChatSession
|
|
11057
|
+
|
|
11058
|
+
"""List participants of a ChatSession (members / owner)."""
|
|
11059
|
+
chatSessionParticipants(sessionId: String!): [ChatSessionParticipant!]!
|
|
11060
|
+
|
|
11061
|
+
"""
|
|
11062
|
+
List all AI chat sessions for a board (oldest first). Multi-session support — UI 탭으로 표시.
|
|
11063
|
+
"""
|
|
11064
|
+
chatSessionsByBoard(boardId: String!): [ChatSession!]!
|
|
10151
11065
|
|
|
10152
11066
|
"""
|
|
10153
11067
|
Checks if the system is configured to provide a default password for new users.
|
|
@@ -10376,6 +11290,36 @@ type Query {
|
|
|
10376
11290
|
"""Fetches a list of all available connector types."""
|
|
10377
11291
|
connectors: ConnectorList!
|
|
10378
11292
|
|
|
11293
|
+
"""공종 체크리스트 템플릿 아이템 목록"""
|
|
11294
|
+
constructionChecklistTemplateItems(
|
|
11295
|
+
"""An array of filter conditions to apply to the list query."""
|
|
11296
|
+
filters: [Filter!]
|
|
11297
|
+
|
|
11298
|
+
"""Inherited value type for the list query."""
|
|
11299
|
+
inherited: InheritedValueType
|
|
11300
|
+
|
|
11301
|
+
"""Pagination options for the list query."""
|
|
11302
|
+
pagination: Pagination
|
|
11303
|
+
|
|
11304
|
+
"""Sorting options for the list query."""
|
|
11305
|
+
sortings: [Sorting!]
|
|
11306
|
+
): ConstructionChecklistTemplateItemList!
|
|
11307
|
+
|
|
11308
|
+
"""공종 기반 체크리스트 템플릿 목록"""
|
|
11309
|
+
constructionChecklistTemplates(
|
|
11310
|
+
"""An array of filter conditions to apply to the list query."""
|
|
11311
|
+
filters: [Filter!]
|
|
11312
|
+
|
|
11313
|
+
"""Inherited value type for the list query."""
|
|
11314
|
+
inherited: InheritedValueType
|
|
11315
|
+
|
|
11316
|
+
"""Pagination options for the list query."""
|
|
11317
|
+
pagination: Pagination
|
|
11318
|
+
|
|
11319
|
+
"""Sorting options for the list query."""
|
|
11320
|
+
sortings: [Sorting!]
|
|
11321
|
+
): ConstructionChecklistTemplateList!
|
|
11322
|
+
|
|
10379
11323
|
"""To fetch multiple ConstructionDetailTypes"""
|
|
10380
11324
|
constructionDetailTypes(
|
|
10381
11325
|
"""An array of filter conditions to apply to the list query."""
|
|
@@ -10426,6 +11370,12 @@ type Query {
|
|
|
10426
11370
|
"""Sorting options for the list query."""
|
|
10427
11371
|
sortings: [Sorting!]
|
|
10428
11372
|
): ContactList!
|
|
11373
|
+
|
|
11374
|
+
"""현재 테넌트 컨텍스트(extType=project)의 프로젝트. subdomain(=Project.code) 으로 조회."""
|
|
11375
|
+
currentProject: Project
|
|
11376
|
+
|
|
11377
|
+
"""프로젝트 타입 조회"""
|
|
11378
|
+
currentProjectType: String!
|
|
10429
11379
|
customers: [Domain!]!
|
|
10430
11380
|
dailyWorklogDatesOfProject(endDate: String!, projectId: String!, startDate: String!): [BuildingInspectionDailyWorklog!]!
|
|
10431
11381
|
|
|
@@ -10784,8 +11734,6 @@ type Query {
|
|
|
10784
11734
|
"""Sorting options for the list query."""
|
|
10785
11735
|
sortings: [Sorting!]
|
|
10786
11736
|
): [DynamicDataSummary!]!
|
|
10787
|
-
decipherCode(input: CodeDecipherInput!): CodeDecipherOutput!
|
|
10788
|
-
decipherErrorCode(input: CodeDecipherInput!): CodeDecipherOutput!
|
|
10789
11737
|
|
|
10790
11738
|
"""To fetch a Department"""
|
|
10791
11739
|
department(id: String!): Department
|
|
@@ -10843,11 +11791,24 @@ type Query {
|
|
|
10843
11791
|
sortings: [Sorting!]
|
|
10844
11792
|
): DomainLinkList!
|
|
10845
11793
|
|
|
11794
|
+
"""List owners of the current domain."""
|
|
11795
|
+
domainOwners: [DomainOwner!]!
|
|
11796
|
+
|
|
10846
11797
|
"""
|
|
10847
11798
|
Fetches the list of available domain types from configuration. Only superusers are granted this privilege.
|
|
10848
11799
|
"""
|
|
10849
11800
|
domainTypes: [String!]!
|
|
10850
11801
|
|
|
11802
|
+
"""
|
|
11803
|
+
List users in the current domain for `@` mention popup. board-ai 권한이면 누구나 멘션용 검색 가능 (관리자 전용 users() 와 별도).
|
|
11804
|
+
"""
|
|
11805
|
+
domainUsersForMention(
|
|
11806
|
+
limit: Int = 50
|
|
11807
|
+
|
|
11808
|
+
"""Substring to match against name/email (case-insensitive). Empty → all."""
|
|
11809
|
+
query: String
|
|
11810
|
+
): [User!]!
|
|
11811
|
+
|
|
10851
11812
|
"""
|
|
10852
11813
|
Fetches all domain entities with pagination and filtering options. Only superusers are granted this privilege.
|
|
10853
11814
|
"""
|
|
@@ -10974,6 +11935,11 @@ type Query {
|
|
|
10974
11935
|
"""To fetch a EntityMetadata"""
|
|
10975
11936
|
entityMetadata(name: String!): EntityMetadata!
|
|
10976
11937
|
envVar(id: String!): EnvVar
|
|
11938
|
+
|
|
11939
|
+
"""
|
|
11940
|
+
Resolves a batch of EnvVar keys with ancestor closest-wins inheritance.
|
|
11941
|
+
"""
|
|
11942
|
+
envVarResolutions(keys: [String!]!): [EnvVarResolution!]!
|
|
10977
11943
|
envVars(
|
|
10978
11944
|
"""An array of filter conditions to apply to the list query."""
|
|
10979
11945
|
filters: [Filter!]
|
|
@@ -11024,6 +11990,15 @@ type Query {
|
|
|
11024
11990
|
"""Fetches the current state of a single connection by its name."""
|
|
11025
11991
|
fetchConnectionState(name: String!): ConnectionState!
|
|
11026
11992
|
|
|
11993
|
+
"""단건 문서 상세 조회"""
|
|
11994
|
+
fieldDocument(id: String!): FieldDocument
|
|
11995
|
+
|
|
11996
|
+
"""프로젝트별 분류 코드당 문서 수"""
|
|
11997
|
+
fieldDocumentCountsByProject(projectId: String!): [FieldDocumentCodeCount!]!
|
|
11998
|
+
|
|
11999
|
+
"""소분류 코드별 문서 목록 조회"""
|
|
12000
|
+
fieldDocumentsByCode(code: String!, projectId: String!): FieldDocumentList!
|
|
12001
|
+
|
|
11027
12002
|
"""To fetch a Font"""
|
|
11028
12003
|
font(id: String!): Font!
|
|
11029
12004
|
|
|
@@ -11067,8 +12042,12 @@ type Query {
|
|
|
11067
12042
|
|
|
11068
12043
|
"""To query whether I have the given permission"""
|
|
11069
12044
|
hasPrivilege(category: String!, privilege: String!): Boolean!
|
|
11070
|
-
|
|
11071
|
-
|
|
12045
|
+
|
|
12046
|
+
"""Get import session progress."""
|
|
12047
|
+
importSession(id: String!): ImportSession
|
|
12048
|
+
|
|
12049
|
+
"""List recent import sessions for a chat session."""
|
|
12050
|
+
importSessionsByChatSession(chatSessionId: String!): [ImportSession!]!
|
|
11072
12051
|
|
|
11073
12052
|
"""BuildingInspection By ChecklistItemId"""
|
|
11074
12053
|
inspectionByChecklistItemId: BuildingInspection!
|
|
@@ -11132,6 +12111,9 @@ type Query {
|
|
|
11132
12111
|
invitation(email: EmailAddress!, reference: String!, type: String!): Invitation!
|
|
11133
12112
|
invitations(reference: String!, type: String!): InvitationList!
|
|
11134
12113
|
|
|
12114
|
+
"""Check if a user is an owner of the current domain."""
|
|
12115
|
+
isDomainOwner(username: String!): Boolean!
|
|
12116
|
+
|
|
11135
12117
|
"""To fetch a Issue"""
|
|
11136
12118
|
issue(id: String!): Issue
|
|
11137
12119
|
|
|
@@ -11177,7 +12159,7 @@ type Query {
|
|
|
11177
12159
|
id: String!
|
|
11178
12160
|
): KpiMetricValue
|
|
11179
12161
|
|
|
11180
|
-
"""To fetch multiple KpiMetricValues"""
|
|
12162
|
+
"""To fetch multiple KpiMetricValues (cross-domain admin view)"""
|
|
11181
12163
|
kpiMetricValues(
|
|
11182
12164
|
"""An array of filter conditions to apply to the list query."""
|
|
11183
12165
|
filters: [Filter!]
|
|
@@ -11249,6 +12231,11 @@ type Query {
|
|
|
11249
12231
|
searchTerm: String
|
|
11250
12232
|
): [String!]!
|
|
11251
12233
|
|
|
12234
|
+
"""
|
|
12235
|
+
Get KPI stats aggregated from project data with optional sectorType/buildingUsage filters
|
|
12236
|
+
"""
|
|
12237
|
+
kpiProjectStats(buildingUsage: String, endYearMonth: String, kpiNamePattern: String, sectorType: String, startYearMonth: String): [KpiProjectStat!]!
|
|
12238
|
+
|
|
11252
12239
|
"""Fetch a scope dimension definition by ID"""
|
|
11253
12240
|
kpiScope(id: String!): KpiScope
|
|
11254
12241
|
|
|
@@ -11309,6 +12296,29 @@ type Query {
|
|
|
11309
12296
|
sortings: [Sorting!]
|
|
11310
12297
|
): KpiValueList!
|
|
11311
12298
|
|
|
12299
|
+
"""Get KPI box plot statistics for Y-category KPIs by geo group"""
|
|
12300
|
+
kpiYValueComprehensiveStatsByGeoGroup(geoGroup: String): [KpiComprehensiveStatsByGeoGroup!]!
|
|
12301
|
+
|
|
12302
|
+
"""Get Y-level KPI statistics by geo_group code (sigungu)"""
|
|
12303
|
+
kpiYValueStatsByGeoGroup(buildingUsage: String, endYearMonth: String, geoGroup: String!, sectorType: String, startYearMonth: String): [KpiComprehensiveStats!]!
|
|
12304
|
+
|
|
12305
|
+
"""Get KPI statistics for Y-category KPIs by specific metro area"""
|
|
12306
|
+
kpiYValueStatsByMetroArea(buildingUsage: String, endYearMonth: String, metroArea: String!, sectorType: String, startYearMonth: String): [KpiComprehensiveStats!]!
|
|
12307
|
+
|
|
12308
|
+
"""Get KPI box plot statistics for Z-category KPIs by metro area"""
|
|
12309
|
+
kpiZValueComprehensiveStatsByGeoGroup(buildingUsage: String, endYearMonth: String, geoGroup: String, kpiName: String, sectorType: String, startYearMonth: String): [KpiComprehensiveStatsByGeoGroup!]!
|
|
12310
|
+
|
|
12311
|
+
"""Get monthly KPI trend for Z-category KPIs by metro area"""
|
|
12312
|
+
kpiZValueMonthlyTrendByGeoGroup(buildingUsage: String, endYearMonth: String, kpiName: String, sectorType: String, startYearMonth: String): [KpiMonthlyTrend!]!
|
|
12313
|
+
|
|
12314
|
+
"""
|
|
12315
|
+
Get monthly KPI trend for Z-category KPIs for a specific sigungu (geo_group code)
|
|
12316
|
+
"""
|
|
12317
|
+
kpiZValueMonthlyTrendBySigungu(buildingUsage: String, endYearMonth: String, geoGroup: String!, kpiName: String, sectorType: String, startYearMonth: String): [KpiMonthlyTrend!]!
|
|
12318
|
+
|
|
12319
|
+
"""Get KPI statistics by sigungu (geo_group code) level"""
|
|
12320
|
+
kpiZValueStatsBySigungu(buildingUsage: String, endYearMonth: String, kpiName: String, sectorType: String, startYearMonth: String): [KpiComprehensiveStatsByGeoGroup!]!
|
|
12321
|
+
|
|
11312
12322
|
"""To fetch multiple Kpis"""
|
|
11313
12323
|
kpis(
|
|
11314
12324
|
"""An array of filter conditions to apply to the list query."""
|
|
@@ -11337,6 +12347,23 @@ type Query {
|
|
|
11337
12347
|
rootId: String
|
|
11338
12348
|
): [Kpi!]!
|
|
11339
12349
|
|
|
12350
|
+
"""
|
|
12351
|
+
Fetch latest-version KpiValues only — one row per (domain, kpi, valueDate, kpiOrgScope).
|
|
12352
|
+
"""
|
|
12353
|
+
latestKpiValues(
|
|
12354
|
+
"""An array of filter conditions to apply to the list query."""
|
|
12355
|
+
filters: [Filter!]
|
|
12356
|
+
|
|
12357
|
+
"""Inherited value type for the list query."""
|
|
12358
|
+
inherited: InheritedValueType
|
|
12359
|
+
|
|
12360
|
+
"""Pagination options for the list query."""
|
|
12361
|
+
pagination: Pagination
|
|
12362
|
+
|
|
12363
|
+
"""Sorting options for the list query."""
|
|
12364
|
+
sortings: [Sorting!]
|
|
12365
|
+
): KpiValueList!
|
|
12366
|
+
|
|
11340
12367
|
"""To fetch a LiteMenu"""
|
|
11341
12368
|
liteMenu(id: String!): LiteMenu!
|
|
11342
12369
|
|
|
@@ -11785,6 +12812,36 @@ type Query {
|
|
|
11785
12812
|
"""To fetch Project"""
|
|
11786
12813
|
projectByBuildingLevelId(buildingLevelId: String!): Project!
|
|
11787
12814
|
|
|
12815
|
+
"""프로젝트 체크리스트 아이템 목록"""
|
|
12816
|
+
projectChecklistItems(
|
|
12817
|
+
"""An array of filter conditions to apply to the list query."""
|
|
12818
|
+
filters: [Filter!]
|
|
12819
|
+
|
|
12820
|
+
"""Inherited value type for the list query."""
|
|
12821
|
+
inherited: InheritedValueType
|
|
12822
|
+
|
|
12823
|
+
"""Pagination options for the list query."""
|
|
12824
|
+
pagination: Pagination
|
|
12825
|
+
|
|
12826
|
+
"""Sorting options for the list query."""
|
|
12827
|
+
sortings: [Sorting!]
|
|
12828
|
+
): ProjectChecklistItemList!
|
|
12829
|
+
|
|
12830
|
+
"""프로젝트 체크리스트 목록"""
|
|
12831
|
+
projectChecklists(
|
|
12832
|
+
"""An array of filter conditions to apply to the list query."""
|
|
12833
|
+
filters: [Filter!]
|
|
12834
|
+
|
|
12835
|
+
"""Inherited value type for the list query."""
|
|
12836
|
+
inherited: InheritedValueType
|
|
12837
|
+
|
|
12838
|
+
"""Pagination options for the list query."""
|
|
12839
|
+
pagination: Pagination
|
|
12840
|
+
|
|
12841
|
+
"""Sorting options for the list query."""
|
|
12842
|
+
sortings: [Sorting!]
|
|
12843
|
+
): ProjectChecklistList!
|
|
12844
|
+
|
|
11788
12845
|
"""To fetch a ProjectReport"""
|
|
11789
12846
|
projectReport(id: String!): ProjectReport
|
|
11790
12847
|
|
|
@@ -11803,6 +12860,11 @@ type Query {
|
|
|
11803
12860
|
sortings: [Sorting!]
|
|
11804
12861
|
): ProjectReportList!
|
|
11805
12862
|
|
|
12863
|
+
"""
|
|
12864
|
+
To fetch KpiValues by project group with X prefix kpi names (latest valueDate only)
|
|
12865
|
+
"""
|
|
12866
|
+
projectXKpiValues(projectId: String!): [KpiValue!]!
|
|
12867
|
+
|
|
11806
12868
|
"""프로젝트 리스트"""
|
|
11807
12869
|
projects(
|
|
11808
12870
|
"""An array of filter conditions to apply to the list query."""
|
|
@@ -11992,6 +13054,14 @@ type Query {
|
|
|
11992
13054
|
sortings: [Sorting!]
|
|
11993
13055
|
): StepList!
|
|
11994
13056
|
|
|
13057
|
+
"""
|
|
13058
|
+
도메인 안에서 충돌하지 않는 Board name + 상세 description 제안. name 은 짧고 심플 (30자 이내, 충돌 회피 (n) suffix), description 은 자세히 (사용자 prompt + AI importStrategy + 카테고리 분포 통계 합성).
|
|
13059
|
+
"""
|
|
13060
|
+
suggestBoardMeta(input: SuggestBoardNameInput!): BoardMetaSuggestion!
|
|
13061
|
+
|
|
13062
|
+
"""@deprecated suggestBoardMeta 사용 권장. 단순 string name 만 반환하는 구버전 query."""
|
|
13063
|
+
suggestBoardName(input: SuggestBoardNameInput!): String!
|
|
13064
|
+
|
|
11995
13065
|
"""To fetch the list of activities that I can report on"""
|
|
11996
13066
|
supervisableActivities(
|
|
11997
13067
|
"""An array of filter conditions to apply to the list query."""
|
|
@@ -12126,6 +13196,12 @@ type Query {
|
|
|
12126
13196
|
sortings: [Sorting!]
|
|
12127
13197
|
): ActivityThreadList!
|
|
12128
13198
|
|
|
13199
|
+
"""Get KPI box plot statistics for Y-category KPIs for all projects"""
|
|
13200
|
+
totalKpiYValueComprehensiveStats(buildingUsage: String, endYearMonth: String, sectorType: String, startYearMonth: String): [KpiComprehensiveStats!]!
|
|
13201
|
+
|
|
13202
|
+
"""Get KPI box plot statistics for Z-category KPIs for all projects"""
|
|
13203
|
+
totalKpiZValueComprehensiveStats(buildingUsage: String, endYearMonth: String, sectorType: String, startYearMonth: String): [KpiComprehensiveStats!]!
|
|
13204
|
+
|
|
12129
13205
|
"""Fetches a user by their email address within the current domain."""
|
|
12130
13206
|
user(
|
|
12131
13207
|
"""The email address of the user to fetch."""
|
|
@@ -12906,6 +13982,16 @@ type Subscription {
|
|
|
12906
13982
|
"""Subscribes to real-time updates for a specific board."""
|
|
12907
13983
|
board(id: String!): Board!
|
|
12908
13984
|
|
|
13985
|
+
"""
|
|
13986
|
+
Subscribes to board edit patches (AI or user-direct) for real-time collaboration on a board.
|
|
13987
|
+
"""
|
|
13988
|
+
boardPatchActivity(boardId: String!): PatchEntry!
|
|
13989
|
+
|
|
13990
|
+
"""
|
|
13991
|
+
Subscribes to chat messages (user / assistant / system) of a session for real-time group chat.
|
|
13992
|
+
"""
|
|
13993
|
+
chatMessageActivity(sessionId: String!): ChatMessage!
|
|
13994
|
+
|
|
12909
13995
|
"""Subscribes to log messages from connections."""
|
|
12910
13996
|
connectionLog(level: String): Log!
|
|
12911
13997
|
|
|
@@ -12932,6 +14018,16 @@ type Subscription {
|
|
|
12932
14018
|
scenarioQueueState: ScenarioQueueState!
|
|
12933
14019
|
}
|
|
12934
14020
|
|
|
14021
|
+
input SuggestBoardNameInput {
|
|
14022
|
+
"""명시 hint. session 정보보다 우선. 사용자가 직접 적은 메모를 기반으로 추천받고 싶을 때."""
|
|
14023
|
+
hint: String
|
|
14024
|
+
|
|
14025
|
+
"""
|
|
14026
|
+
ImportSession id — 있으면 거기서 userPrompt / VLM reasoning / attachment.name 추출.
|
|
14027
|
+
"""
|
|
14028
|
+
sessionId: ID
|
|
14029
|
+
}
|
|
14030
|
+
|
|
12935
14031
|
"""Entity for Supervisor"""
|
|
12936
14032
|
type Supervisor {
|
|
12937
14033
|
active: Boolean
|
|
@@ -13233,6 +14329,21 @@ input ThemePatch {
|
|
|
13233
14329
|
value: Object
|
|
13234
14330
|
}
|
|
13235
14331
|
|
|
14332
|
+
"""썸네일 백필 결과"""
|
|
14333
|
+
type ThumbnailBackfillResult {
|
|
14334
|
+
"""이번 호출에서 처리 시도한 첨부 개수"""
|
|
14335
|
+
attempted: Int!
|
|
14336
|
+
|
|
14337
|
+
"""실패(생성 실패/콘텐츠 없음 등) 개수"""
|
|
14338
|
+
failed: Int!
|
|
14339
|
+
|
|
14340
|
+
"""이번 처리 후에도 남아있는 썸네일 미생성 후보 개수 (대략치). 0 이면 완료"""
|
|
14341
|
+
remaining: Int!
|
|
14342
|
+
|
|
14343
|
+
"""썸네일 생성·저장 성공 개수"""
|
|
14344
|
+
succeeded: Int!
|
|
14345
|
+
}
|
|
14346
|
+
|
|
13236
14347
|
input UpdateBuildingInspection {
|
|
13237
14348
|
drawingMarker: String
|
|
13238
14349
|
id: String!
|
|
@@ -13244,6 +14355,7 @@ input UpdateBuildingInspectionSubmitType {
|
|
|
13244
14355
|
checklistItem: [ChecklistItemSubmitInputType!]!
|
|
13245
14356
|
id: String!
|
|
13246
14357
|
memo: String
|
|
14358
|
+
requestDate: String
|
|
13247
14359
|
}
|
|
13248
14360
|
|
|
13249
14361
|
input UpdateTaskChecklistSubmitType {
|
|
@@ -13500,12 +14612,4 @@ input WorkerTypePatch {
|
|
|
13500
14612
|
description: String
|
|
13501
14613
|
id: ID
|
|
13502
14614
|
name: String
|
|
13503
|
-
}
|
|
13504
|
-
|
|
13505
|
-
input i18nCompletionInput {
|
|
13506
|
-
json: String!
|
|
13507
|
-
}
|
|
13508
|
-
|
|
13509
|
-
type i18nCompletionOutput {
|
|
13510
|
-
message: String
|
|
13511
14615
|
}
|