@dssp/project 1.0.0-alpha.2 → 1.0.0-alpha.5

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.
Files changed (135) hide show
  1. package/dist-client/pages/lib/select2-component.js +1 -1
  2. package/dist-client/pages/lib/select2-component.js.map +1 -1
  3. package/dist-client/pages/lib/waether.js.map +1 -1
  4. package/dist-client/pages/project/component/project-update-header.js.map +1 -1
  5. package/dist-client/pages/project/popup/popup-plan-upload.js.map +1 -1
  6. package/dist-client/pages/project/popup/popup-project-create.js.map +1 -1
  7. package/dist-client/pages/project/popup/popup-schedule-upload.js.map +1 -1
  8. package/dist-client/pages/project/project-completed-list.js +0 -1
  9. package/dist-client/pages/project/project-completed-list.js.map +1 -1
  10. package/dist-client/pages/project/project-detail.js.map +1 -1
  11. package/dist-client/pages/project/project-list.js +9 -8
  12. package/dist-client/pages/project/project-list.js.map +1 -1
  13. package/dist-client/pages/project/project-plan-management.js.map +1 -1
  14. package/dist-client/pages/project/project-schedule-list.js.map +1 -1
  15. package/dist-client/pages/project/project-schedule.js.map +1 -1
  16. package/dist-client/pages/project/project-setting-list.js +25 -24
  17. package/dist-client/pages/project/project-setting-list.js.map +1 -1
  18. package/dist-client/pages/project/project-update.js.map +1 -1
  19. package/dist-client/pages/resource/construction-detail-type-popup.js.map +1 -1
  20. package/dist-client/pages/resource/construction-type-management.js.map +1 -1
  21. package/dist-client/pages/resource/inspection-drawing-type-management.js.map +1 -1
  22. package/dist-client/pages/resource/inspection-part-popup.js.map +1 -1
  23. package/dist-client/pages/resource/resource-importer.js.map +1 -1
  24. package/dist-client/pages/resource/resource-list-page.js.map +1 -1
  25. package/dist-client/pages/resource/worker-type-management.js.map +1 -1
  26. package/dist-client/pages/task/task-importer.js.map +1 -1
  27. package/dist-client/pages/task/task-list-page.js.map +1 -1
  28. package/dist-client/pages/task-resource/task-resource-importer.js.map +1 -1
  29. package/dist-client/pages/task-resource/task-resource-list-page.js.map +1 -1
  30. package/dist-client/route.js.map +1 -1
  31. package/dist-client/tsconfig.tsbuildinfo +1 -1
  32. package/dist-server/controllers/export-tasks.js +1 -2
  33. package/dist-server/controllers/export-tasks.js.map +1 -1
  34. package/dist-server/controllers/import-task.js +1 -2
  35. package/dist-server/controllers/import-task.js.map +1 -1
  36. package/dist-server/controllers/parse-excel.d.ts +0 -2
  37. package/dist-server/controllers/parse-excel.js +1 -2
  38. package/dist-server/controllers/parse-excel.js.map +1 -1
  39. package/dist-server/middlewares/index.js +1 -2
  40. package/dist-server/middlewares/index.js.map +1 -1
  41. package/dist-server/migrations/1723861466413-seed-roles.js.map +1 -1
  42. package/dist-server/migrations/1723861466414-seed-codes.js.map +1 -1
  43. package/dist-server/migrations/1723861476419-seed-resources.js.map +1 -1
  44. package/dist-server/migrations/1723861478420-seed-/bsample-project.js.map +1 -1
  45. package/dist-server/migrations/1723861478421-seed-/bsample-tasks.js.map +1 -1
  46. package/dist-server/service/construction-detail-type/construction-detail-type-mutation.js +2 -2
  47. package/dist-server/service/construction-detail-type/construction-detail-type-mutation.js.map +1 -1
  48. package/dist-server/service/construction-detail-type/construction-detail-type-query.js +2 -2
  49. package/dist-server/service/construction-detail-type/construction-detail-type-query.js.map +1 -1
  50. package/dist-server/service/construction-detail-type/construction-detail-type-type.js +4 -4
  51. package/dist-server/service/construction-detail-type/construction-detail-type-type.js.map +1 -1
  52. package/dist-server/service/construction-detail-type/construction-detail-type.js +2 -2
  53. package/dist-server/service/construction-detail-type/construction-detail-type.js.map +1 -1
  54. package/dist-server/service/construction-type/construction-type-mutation.js +2 -2
  55. package/dist-server/service/construction-type/construction-type-mutation.js.map +1 -1
  56. package/dist-server/service/construction-type/construction-type-query.js +2 -2
  57. package/dist-server/service/construction-type/construction-type-query.js.map +1 -1
  58. package/dist-server/service/construction-type/construction-type-type.js +4 -4
  59. package/dist-server/service/construction-type/construction-type-type.js.map +1 -1
  60. package/dist-server/service/construction-type/construction-type.js +2 -2
  61. package/dist-server/service/construction-type/construction-type.js.map +1 -1
  62. package/dist-server/service/index.d.ts +1 -0
  63. package/dist-server/service/index.js +1 -0
  64. package/dist-server/service/index.js.map +1 -1
  65. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-mutation.js +2 -2
  66. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-mutation.js.map +1 -1
  67. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-query.js +2 -2
  68. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-query.js.map +1 -1
  69. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-type.js +4 -4
  70. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-type.js.map +1 -1
  71. package/dist-server/service/inspection-drawing-type/inspection-drawing-type.js +2 -2
  72. package/dist-server/service/inspection-drawing-type/inspection-drawing-type.js.map +1 -1
  73. package/dist-server/service/inspection-part/inspection-part-mutation.js +2 -2
  74. package/dist-server/service/inspection-part/inspection-part-mutation.js.map +1 -1
  75. package/dist-server/service/inspection-part/inspection-part-query.js +2 -2
  76. package/dist-server/service/inspection-part/inspection-part-query.js.map +1 -1
  77. package/dist-server/service/inspection-part/inspection-part-type.js +4 -4
  78. package/dist-server/service/inspection-part/inspection-part-type.js.map +1 -1
  79. package/dist-server/service/inspection-part/inspection-part.js +2 -2
  80. package/dist-server/service/inspection-part/inspection-part.js.map +1 -1
  81. package/dist-server/service/manager/index.d.ts +2 -0
  82. package/dist-server/service/manager/index.js +3 -1
  83. package/dist-server/service/manager/index.js.map +1 -1
  84. package/dist-server/service/manager/manager-mutation.js +2 -2
  85. package/dist-server/service/manager/manager-mutation.js.map +1 -1
  86. package/dist-server/service/manager/manager-query.js +3 -3
  87. package/dist-server/service/manager/manager-query.js.map +1 -1
  88. package/dist-server/service/manager/manager-type.js +4 -4
  89. package/dist-server/service/manager/manager-type.js.map +1 -1
  90. package/dist-server/service/manager/manager.js +2 -2
  91. package/dist-server/service/manager/manager.js.map +1 -1
  92. package/dist-server/service/project/project-mutation.js +7 -12
  93. package/dist-server/service/project/project-mutation.js.map +1 -1
  94. package/dist-server/service/project/project-query.d.ts +1 -0
  95. package/dist-server/service/project/project-query.js +14 -3
  96. package/dist-server/service/project/project-query.js.map +1 -1
  97. package/dist-server/service/project/project-type.js +8 -8
  98. package/dist-server/service/project/project-type.js.map +1 -1
  99. package/dist-server/service/project/project.d.ts +4 -0
  100. package/dist-server/service/project/project.js +9 -4
  101. package/dist-server/service/project/project.js.map +1 -1
  102. package/dist-server/service/resource/resource-mutation.js +2 -2
  103. package/dist-server/service/resource/resource-mutation.js.map +1 -1
  104. package/dist-server/service/resource/resource-query.js +2 -2
  105. package/dist-server/service/resource/resource-query.js.map +1 -1
  106. package/dist-server/service/resource/resource-type.js +6 -6
  107. package/dist-server/service/resource/resource-type.js.map +1 -1
  108. package/dist-server/service/resource/resource.js +3 -3
  109. package/dist-server/service/resource/resource.js.map +1 -1
  110. package/dist-server/service/task/task-mutation.js +2 -2
  111. package/dist-server/service/task/task-mutation.js.map +1 -1
  112. package/dist-server/service/task/task-query.js +4 -4
  113. package/dist-server/service/task/task-query.js.map +1 -1
  114. package/dist-server/service/task/task-type.js +10 -10
  115. package/dist-server/service/task/task-type.js.map +1 -1
  116. package/dist-server/service/task/task.js +7 -8
  117. package/dist-server/service/task/task.js.map +1 -1
  118. package/dist-server/service/task-resource/task-resource-mutation.js +2 -2
  119. package/dist-server/service/task-resource/task-resource-mutation.js.map +1 -1
  120. package/dist-server/service/task-resource/task-resource-query.js +2 -2
  121. package/dist-server/service/task-resource/task-resource-query.js.map +1 -1
  122. package/dist-server/service/task-resource/task-resource-type.js +6 -6
  123. package/dist-server/service/task-resource/task-resource-type.js.map +1 -1
  124. package/dist-server/service/task-resource/task-resource.js +2 -2
  125. package/dist-server/service/task-resource/task-resource.js.map +1 -1
  126. package/dist-server/service/worker-type/worker-type-mutation.js +2 -2
  127. package/dist-server/service/worker-type/worker-type-mutation.js.map +1 -1
  128. package/dist-server/service/worker-type/worker-type-query.js +2 -2
  129. package/dist-server/service/worker-type/worker-type-query.js.map +1 -1
  130. package/dist-server/service/worker-type/worker-type-type.js +4 -4
  131. package/dist-server/service/worker-type/worker-type-type.js.map +1 -1
  132. package/dist-server/service/worker-type/worker-type.js +2 -2
  133. package/dist-server/service/worker-type/worker-type.js.map +1 -1
  134. package/dist-server/tsconfig.tsbuildinfo +1 -1
  135. package/package.json +4 -3
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateExcel = void 0;
3
+ exports.generateExcel = generateExcel;
4
4
  const exceljs_1 = require("exceljs");
5
5
  function createGanttChart(tasks, worksheet, level = 0) {
6
6
  tasks.forEach(task => {
@@ -26,5 +26,4 @@ async function generateExcel(tasks) {
26
26
  createGanttChart(tasks, worksheet);
27
27
  return await workbook.xlsx.writeBuffer();
28
28
  }
29
- exports.generateExcel = generateExcel;
30
29
  //# sourceMappingURL=export-tasks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"export-tasks.js","sourceRoot":"","sources":["../../server/controllers/export-tasks.ts"],"names":[],"mappings":";;;AAAA,qCAA6C;AAS7C,SAAS,gBAAgB,CAAC,KAAa,EAAE,SAAoB,EAAE,QAAgB,CAAC;IAC9E,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACnB,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;QAEvE,GAAG,CAAC,YAAY,GAAG,KAAK,CAAA;QAExB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7C,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;SACtD;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,KAAa;IAC/C,MAAM,QAAQ,GAAG,IAAI,kBAAQ,EAAE,CAAA;IAC/B,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;IAEtD,SAAS,CAAC,UAAU,CAAC,iBAAiB,GAAG;QACvC,YAAY,EAAE,KAAK;QACnB,YAAY,EAAE,KAAK;KACpB,CAAA;IAED,SAAS,CAAC,OAAO,GAAG;QAClB,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;QAC/C,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE;QACrD,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;KAClD,CAAA;IAED,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAElC,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;AAC1C,CAAC;AAlBD,sCAkBC","sourcesContent":["import { Workbook, Worksheet } from 'exceljs'\n\nexport interface Task {\n name: string\n startDate: Date\n endDate: Date\n subtasks?: Task[]\n}\n\nfunction createGanttChart(tasks: Task[], worksheet: Worksheet, level: number = 0) {\n tasks.forEach(task => {\n const row = worksheet.addRow([task.name, task.startDate, task.endDate])\n\n row.outlineLevel = level\n\n if (task.subtasks && task.subtasks.length > 0) {\n createGanttChart(task.subtasks, worksheet, level + 1)\n }\n })\n}\n\nexport async function generateExcel(tasks: Task[]) {\n const workbook = new Workbook()\n const worksheet = workbook.addWorksheet('Gantt Chart')\n\n worksheet.properties.outlineProperties = {\n summaryBelow: false,\n summaryRight: false\n }\n\n worksheet.columns = [\n { header: 'Task Name', key: 'name', width: 30 },\n { header: 'Start Date', key: 'startDate', width: 20 },\n { header: 'End Date', key: 'endDate', width: 20 }\n ]\n\n createGanttChart(tasks, worksheet)\n\n return await workbook.xlsx.writeBuffer()\n}\n"]}
1
+ {"version":3,"file":"export-tasks.js","sourceRoot":"","sources":["../../server/controllers/export-tasks.ts"],"names":[],"mappings":";;AAqBA,sCAkBC;AAvCD,qCAA6C;AAS7C,SAAS,gBAAgB,CAAC,KAAa,EAAE,SAAoB,EAAE,QAAgB,CAAC;IAC9E,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACnB,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;QAEvE,GAAG,CAAC,YAAY,GAAG,KAAK,CAAA;QAExB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;QACvD,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,KAAa;IAC/C,MAAM,QAAQ,GAAG,IAAI,kBAAQ,EAAE,CAAA;IAC/B,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;IAEtD,SAAS,CAAC,UAAU,CAAC,iBAAiB,GAAG;QACvC,YAAY,EAAE,KAAK;QACnB,YAAY,EAAE,KAAK;KACpB,CAAA;IAED,SAAS,CAAC,OAAO,GAAG;QAClB,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;QAC/C,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE;QACrD,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;KAClD,CAAA;IAED,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAElC,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;AAC1C,CAAC","sourcesContent":["import { Workbook, Worksheet } from 'exceljs'\n\nexport interface Task {\n name: string\n startDate: Date\n endDate: Date\n subtasks?: Task[]\n}\n\nfunction createGanttChart(tasks: Task[], worksheet: Worksheet, level: number = 0) {\n tasks.forEach(task => {\n const row = worksheet.addRow([task.name, task.startDate, task.endDate])\n\n row.outlineLevel = level\n\n if (task.subtasks && task.subtasks.length > 0) {\n createGanttChart(task.subtasks, worksheet, level + 1)\n }\n })\n}\n\nexport async function generateExcel(tasks: Task[]) {\n const workbook = new Workbook()\n const worksheet = workbook.addWorksheet('Gantt Chart')\n\n worksheet.properties.outlineProperties = {\n summaryBelow: false,\n summaryRight: false\n }\n\n worksheet.columns = [\n { header: 'Task Name', key: 'name', width: 30 },\n { header: 'Start Date', key: 'startDate', width: 20 },\n { header: 'End Date', key: 'endDate', width: 20 }\n ]\n\n createGanttChart(tasks, worksheet)\n\n return await workbook.xlsx.writeBuffer()\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.importTasks = void 0;
3
+ exports.importTasks = importTasks;
4
4
  const shell_1 = require("@things-factory/shell");
5
5
  const task_1 = require("../service/task/task");
6
6
  const task_resource_1 = require("../service/task-resource/task-resource");
@@ -110,5 +110,4 @@ async function importTasks(project, tasks, context) {
110
110
  await importTaskData(rootTask);
111
111
  }
112
112
  }
113
- exports.importTasks = importTasks;
114
113
  //# sourceMappingURL=import-task.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"import-task.js","sourceRoot":"","sources":["../../server/controllers/import-task.ts"],"names":[],"mappings":"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","sourcesContent":["import { getRepository } from '@things-factory/shell'\n\nimport { Project } from '../service/project/project'\nimport { Task, TaskType } from '../service/task/task'\nimport { TaskResource } from '../service/task-resource/task-resource'\nimport { Resource } from '../service/resource/resource'\nimport { RawTask } from './types'\n\nfunction excelSerialToJSDate(serial) {\n const excelEpoch = new Date(1899, 11, 30) // Excel epoch (30th December 1899)\n const days = Math.floor(serial) // Get the number of days\n const milliseconds = (serial - days) * 86400 * 1000 // Convert the fractional day part to milliseconds\n\n const jsDate = new Date(excelEpoch.getTime() + days * 86400 * 1000 + milliseconds)\n return jsDate\n}\n\nexport async function importTasks(project: Project, tasks: RawTask[], context: ResolverContext) {\n const { domain, user, tx } = context.state\n\n const taskRepository = getRepository(Task, tx)\n const resourceRepository = getRepository(Resource, tx)\n const taskResourceRepository = getRepository(TaskResource, tx)\n\n // 1. 기존 태스크와 리소스를 Soft Delete\n await taskRepository.softDelete({ project: { id: project.id } })\n\n // 2. 태스크 임포트\n const importTaskData = async (rawTask: RawTask, parent?: Task) => {\n if (rawTask.children && rawTask.children.length > 0) {\n rawTask.type = TaskType.GROUP\n } else {\n rawTask.type = TaskType.TASK\n }\n\n // 유효성 검사\n if (!rawTask.title || !rawTask.code || (rawTask.type == TaskType.TASK && (rawTask.duration ?? null) === null)) {\n throw new Error(`Task '${rawTask.code}' is missing required fields.`)\n }\n\n if (rawTask.type == TaskType.TASK) {\n // 시작일, 종료일 계산\n var startDate: Date = new Date(rawTask.startDate)\n\n var endDate\n if (!startDate && rawTask.dependsOn) {\n const dependsOnTask = await taskRepository.findOne({ where: { code: rawTask.dependsOn, project: { id: project.id } } })\n if (dependsOnTask && dependsOnTask.endDate) {\n startDate = new Date(dependsOnTask.endDate)\n startDate.setDate(startDate.getDate() + 1)\n } else {\n // TODO handler error\n // throw new Error(`Task '${rawTask.code}' depends on a task '${rawTask.dependsOn}' that doesn't have a valid end date.`)\n }\n }\n\n if (!startDate) {\n throw new Error(`Task '${rawTask.code}' must have either a start date or a valid dependency.`)\n }\n\n const duration = rawTask.duration\n endDate = new Date(startDate)\n endDate.setDate(startDate.getDate() + duration - 1)\n }\n\n // 태스크 생성 및 저장\n var task: Task = await taskRepository.save({\n code: rawTask.code,\n name: rawTask.title,\n type: rawTask.type,\n startDate,\n endDate,\n project,\n parent,\n duration: rawTask.duration,\n dependsOn: rawTask.dependsOn,\n progress: rawTask.progress,\n tags: rawTask.tags,\n style: rawTask.style,\n updater: user,\n creator: user\n })\n\n // 리소스 생성 및 저장\n if (rawTask.resources) {\n for (const resource of rawTask.resources) {\n const resourceType = await resourceRepository.findOne({ where: { domain: { id: domain.id }, name: resource.type } })\n if (resourceType) {\n await taskResourceRepository.save({\n task,\n resource: resourceType,\n quantity: resource.allocated\n })\n } else {\n throw new Error(`unknown resource type: ${resource.type}`)\n }\n }\n }\n\n // 자식 태스크 처리\n if (rawTask.children && rawTask.children.length > 0) {\n let lastEndDate = null\n let lastStartDate = null\n for (const childTask of rawTask.children) {\n const subtask = await importTaskData(childTask, task)\n\n lastEndDate = !lastEndDate ? subtask.endDate : lastEndDate > subtask.endDate ? lastEndDate : subtask.endDate\n lastStartDate = !lastStartDate ? subtask.startDate : lastStartDate < subtask.startDate ? lastStartDate : subtask.startDate\n }\n\n // 그룹 태스크의 기간(duration)을 계산합니다.\n const calculatedDuration =\n lastEndDate && lastStartDate\n ? Math.ceil((lastEndDate.getTime() - lastStartDate.getTime()) / (1000 * 60 * 60 * 24)) + 1\n : 0\n\n task = await taskRepository.findOne({ where: { id: task.id } })\n\n return await taskRepository.save({\n ...task,\n startDate: lastStartDate,\n endDate: lastEndDate,\n duration: calculatedDuration\n })\n }\n\n return task\n }\n\n // 루트 태스크들 임포트\n for (const rootTask of tasks) {\n await importTaskData(rootTask)\n }\n}\n"]}
1
+ {"version":3,"file":"import-task.js","sourceRoot":"","sources":["../../server/controllers/import-task.ts"],"names":[],"mappings":"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","sourcesContent":["import { getRepository } from '@things-factory/shell'\n\nimport { Project } from '../service/project/project'\nimport { Task, TaskType } from '../service/task/task'\nimport { TaskResource } from '../service/task-resource/task-resource'\nimport { Resource } from '../service/resource/resource'\nimport { RawTask } from './types'\n\nfunction excelSerialToJSDate(serial) {\n const excelEpoch = new Date(1899, 11, 30) // Excel epoch (30th December 1899)\n const days = Math.floor(serial) // Get the number of days\n const milliseconds = (serial - days) * 86400 * 1000 // Convert the fractional day part to milliseconds\n\n const jsDate = new Date(excelEpoch.getTime() + days * 86400 * 1000 + milliseconds)\n return jsDate\n}\n\nexport async function importTasks(project: Project, tasks: RawTask[], context: ResolverContext) {\n const { domain, user, tx } = context.state\n\n const taskRepository = getRepository(Task, tx)\n const resourceRepository = getRepository(Resource, tx)\n const taskResourceRepository = getRepository(TaskResource, tx)\n\n // 1. 기존 태스크와 리소스를 Soft Delete\n await taskRepository.softDelete({ project: { id: project.id } })\n\n // 2. 태스크 임포트\n const importTaskData = async (rawTask: RawTask, parent?: Task) => {\n if (rawTask.children && rawTask.children.length > 0) {\n rawTask.type = TaskType.GROUP\n } else {\n rawTask.type = TaskType.TASK\n }\n\n // 유효성 검사\n if (!rawTask.title || !rawTask.code || (rawTask.type == TaskType.TASK && (rawTask.duration ?? null) === null)) {\n throw new Error(`Task '${rawTask.code}' is missing required fields.`)\n }\n\n if (rawTask.type == TaskType.TASK) {\n // 시작일, 종료일 계산\n var startDate: Date = new Date(rawTask.startDate)\n\n var endDate\n if (!startDate && rawTask.dependsOn) {\n const dependsOnTask = await taskRepository.findOne({ where: { code: rawTask.dependsOn, project: { id: project.id } } })\n if (dependsOnTask && dependsOnTask.endDate) {\n startDate = new Date(dependsOnTask.endDate)\n startDate.setDate(startDate.getDate() + 1)\n } else {\n // TODO handler error\n // throw new Error(`Task '${rawTask.code}' depends on a task '${rawTask.dependsOn}' that doesn't have a valid end date.`)\n }\n }\n\n if (!startDate) {\n throw new Error(`Task '${rawTask.code}' must have either a start date or a valid dependency.`)\n }\n\n const duration = rawTask.duration\n endDate = new Date(startDate)\n endDate.setDate(startDate.getDate() + duration - 1)\n }\n\n // 태스크 생성 및 저장\n var task: Task = await taskRepository.save({\n code: rawTask.code,\n name: rawTask.title,\n type: rawTask.type,\n startDate,\n endDate,\n project,\n parent,\n duration: rawTask.duration,\n dependsOn: rawTask.dependsOn,\n progress: rawTask.progress,\n tags: rawTask.tags,\n style: rawTask.style,\n updater: user,\n creator: user\n })\n\n // 리소스 생성 및 저장\n if (rawTask.resources) {\n for (const resource of rawTask.resources) {\n const resourceType = await resourceRepository.findOne({ where: { domain: { id: domain.id }, name: resource.type } })\n if (resourceType) {\n await taskResourceRepository.save({\n task,\n resource: resourceType,\n quantity: resource.allocated\n })\n } else {\n throw new Error(`unknown resource type: ${resource.type}`)\n }\n }\n }\n\n // 자식 태스크 처리\n if (rawTask.children && rawTask.children.length > 0) {\n let lastEndDate = null\n let lastStartDate = null\n for (const childTask of rawTask.children) {\n const subtask = await importTaskData(childTask, task)\n\n lastEndDate = !lastEndDate ? subtask.endDate : lastEndDate > subtask.endDate ? lastEndDate : subtask.endDate\n lastStartDate = !lastStartDate ? subtask.startDate : lastStartDate < subtask.startDate ? lastStartDate : subtask.startDate\n }\n\n // 그룹 태스크의 기간(duration)을 계산합니다.\n const calculatedDuration =\n lastEndDate && lastStartDate\n ? Math.ceil((lastEndDate.getTime() - lastStartDate.getTime()) / (1000 * 60 * 60 * 24)) + 1\n : 0\n\n task = await taskRepository.findOne({ where: { id: task.id } })\n\n return await taskRepository.save({\n ...task,\n startDate: lastStartDate,\n endDate: lastEndDate,\n duration: calculatedDuration\n })\n }\n\n return task\n }\n\n // 루트 태스크들 임포트\n for (const rootTask of tasks) {\n await importTaskData(rootTask)\n }\n}\n"]}
@@ -1,4 +1,2 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
1
  import { Project } from '../service/project/project';
4
2
  export declare function parseExcelAndImportTasks(buffer: Buffer, project: Project, context: ResolverContext): Promise<void>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseExcelAndImportTasks = void 0;
3
+ exports.parseExcelAndImportTasks = parseExcelAndImportTasks;
4
4
  const tslib_1 = require("tslib");
5
5
  const exceljs_1 = tslib_1.__importDefault(require("exceljs"));
6
6
  const import_task_1 = require("./import-task");
@@ -71,5 +71,4 @@ async function parseExcelAndImportTasks(buffer, project, context) {
71
71
  // 5. 변환된 데이터를 importTasks 함수로 전달합니다.
72
72
  await (0, import_task_1.importTasks)(project, tasks, context);
73
73
  }
74
- exports.parseExcelAndImportTasks = parseExcelAndImportTasks;
75
74
  //# sourceMappingURL=parse-excel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-excel.js","sourceRoot":"","sources":["../../server/controllers/parse-excel.ts"],"names":[],"mappings":"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","sourcesContent":["import ExcelJS from 'exceljs'\nimport { RawTask } from './types'\nimport { Project } from '../service/project/project'\nimport { importTasks } from './import-task'\n\nexport async function parseExcelAndImportTasks(buffer: Buffer, project: Project, context: ResolverContext) {\n // 1. 엑셀 파일을 읽어들입니다.\n const workbook = new ExcelJS.Workbook()\n await workbook.xlsx.load(buffer)\n\n // 2. 첫 번째 워크시트를 가져옵니다.\n const worksheet = workbook.getWorksheet(1) // Index or sheet name can be used\n\n // 3. 첫 번째 row를 header로 사용합니다.\n const headers: string[] = []\n let taskCodeColumnIndex = -1\n\n const headerRow = worksheet.getRow(1)\n headerRow.eachCell((cell, colNumber) => {\n const headerText = cell.text.toString()\n headers[colNumber - 1] = headerText // Store headers in an array\n\n if (headerText === '작업코드') {\n taskCodeColumnIndex = colNumber // Store the column index for \"작업코드\"\n }\n })\n\n if (taskCodeColumnIndex === -1) {\n throw new Error('작업코드 column not found')\n }\n\n // 4. 엑셀 데이터를 RawTask 형식으로 변환합니다.\n const tasks: RawTask[] = []\n\n // Start processing from the second row onward to skip the header\n for (let rowIndex = 2; rowIndex <= worksheet.rowCount; rowIndex++) {\n const row = worksheet.getRow(rowIndex)\n const taskData: any = {}\n\n row.eachCell((cell, colNumber) => {\n const header = headers[colNumber - 1]\n\n // Check if the cell has a formula(or sharedFormula) and use the formula result\n let cellValue: any = cell.value\n if (cellValue && typeof cellValue === 'object' && ('formula' in cellValue || 'sharedFormula' in cellValue)) {\n // Cell contains a formula, use the calculated result if available\n cellValue = cellValue.result ?? cellValue.value // Use the result, or fallback to value if result is not calculated\n }\n\n taskData[header] = cellValue\n })\n\n const taskCodeCell = row.getCell(taskCodeColumnIndex)\n let bgColor = '#FFFFFF'\n const fill = taskCodeCell.style.fill\n\n if (fill && fill.type === 'pattern' && fill.pattern === 'solid') {\n const fgColor = fill.fgColor\n if (fgColor && fgColor.argb) {\n // ARGB is a color in the format AARRGGBB, remove the alpha channel (first two characters)\n bgColor = `#${fgColor.argb.slice(2)}`\n }\n }\n\n const task: RawTask = {\n code: taskData['작업코드'],\n title: taskData['작업명'],\n type: taskData['세부공종'],\n duration: taskData['기간'],\n startDate: taskData['시작일'],\n dependsOn: taskData['선행작업코드'],\n progress: taskData['진척율'],\n tags: taskData['Tags'] ? taskData['Tags'].split(',') : [],\n resources: taskData['Resources'] ? JSON.parse(taskData['Resources']) : [],\n style: bgColor,\n children: []\n }\n\n if (task.code && task.type) {\n tasks.push(task)\n }\n }\n\n // 5. 변환된 데이터를 importTasks 함수로 전달합니다.\n await importTasks(project, tasks, context)\n}\n"]}
1
+ {"version":3,"file":"parse-excel.js","sourceRoot":"","sources":["../../server/controllers/parse-excel.ts"],"names":[],"mappings":"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","sourcesContent":["import ExcelJS from 'exceljs'\nimport { RawTask } from './types'\nimport { Project } from '../service/project/project'\nimport { importTasks } from './import-task'\n\nexport async function parseExcelAndImportTasks(buffer: Buffer, project: Project, context: ResolverContext) {\n // 1. 엑셀 파일을 읽어들입니다.\n const workbook = new ExcelJS.Workbook()\n await workbook.xlsx.load(buffer)\n\n // 2. 첫 번째 워크시트를 가져옵니다.\n const worksheet = workbook.getWorksheet(1) // Index or sheet name can be used\n\n // 3. 첫 번째 row를 header로 사용합니다.\n const headers: string[] = []\n let taskCodeColumnIndex = -1\n\n const headerRow = worksheet.getRow(1)\n headerRow.eachCell((cell, colNumber) => {\n const headerText = cell.text.toString()\n headers[colNumber - 1] = headerText // Store headers in an array\n\n if (headerText === '작업코드') {\n taskCodeColumnIndex = colNumber // Store the column index for \"작업코드\"\n }\n })\n\n if (taskCodeColumnIndex === -1) {\n throw new Error('작업코드 column not found')\n }\n\n // 4. 엑셀 데이터를 RawTask 형식으로 변환합니다.\n const tasks: RawTask[] = []\n\n // Start processing from the second row onward to skip the header\n for (let rowIndex = 2; rowIndex <= worksheet.rowCount; rowIndex++) {\n const row = worksheet.getRow(rowIndex)\n const taskData: any = {}\n\n row.eachCell((cell, colNumber) => {\n const header = headers[colNumber - 1]\n\n // Check if the cell has a formula(or sharedFormula) and use the formula result\n let cellValue: any = cell.value\n if (cellValue && typeof cellValue === 'object' && ('formula' in cellValue || 'sharedFormula' in cellValue)) {\n // Cell contains a formula, use the calculated result if available\n cellValue = cellValue.result ?? cellValue.value // Use the result, or fallback to value if result is not calculated\n }\n\n taskData[header] = cellValue\n })\n\n const taskCodeCell = row.getCell(taskCodeColumnIndex)\n let bgColor = '#FFFFFF'\n const fill = taskCodeCell.style.fill\n\n if (fill && fill.type === 'pattern' && fill.pattern === 'solid') {\n const fgColor = fill.fgColor\n if (fgColor && fgColor.argb) {\n // ARGB is a color in the format AARRGGBB, remove the alpha channel (first two characters)\n bgColor = `#${fgColor.argb.slice(2)}`\n }\n }\n\n const task: RawTask = {\n code: taskData['작업코드'],\n title: taskData['작업명'],\n type: taskData['세부공종'],\n duration: taskData['기간'],\n startDate: taskData['시작일'],\n dependsOn: taskData['선행작업코드'],\n progress: taskData['진척율'],\n tags: taskData['Tags'] ? taskData['Tags'].split(',') : [],\n resources: taskData['Resources'] ? JSON.parse(taskData['Resources']) : [],\n style: bgColor,\n children: []\n }\n\n if (task.code && task.type) {\n tasks.push(task)\n }\n }\n\n // 5. 변환된 데이터를 importTasks 함수로 전달합니다.\n await importTasks(project, tasks, context)\n}\n"]}
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.initMiddlewares = void 0;
3
+ exports.initMiddlewares = initMiddlewares;
4
4
  function initMiddlewares(app) {
5
5
  /* can add middlewares into app */
6
6
  }
7
- exports.initMiddlewares = initMiddlewares;
8
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/middlewares/index.ts"],"names":[],"mappings":";;;AAAA,SAAgB,eAAe,CAAC,GAAG;IACjC,kCAAkC;AACpC,CAAC;AAFD,0CAEC","sourcesContent":["export function initMiddlewares(app) {\n /* can add middlewares into app */\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/middlewares/index.ts"],"names":[],"mappings":";;AAAA,0CAEC;AAFD,SAAgB,eAAe,CAAC,GAAG;IACjC,kCAAkC;AACpC,CAAC","sourcesContent":["export function initMiddlewares(app) {\n /* can add middlewares into app */\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"1723861466413-seed-roles.js","sourceRoot":"","sources":["../../server/migrations/1723861466413-seed-roles.ts"],"names":[],"mappings":"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","sourcesContent":["import { MigrationInterface, QueryRunner } from 'typeorm'\n\nimport { logger } from '@things-factory/env'\nimport { Domain, getRepository } from '@things-factory/shell'\nimport { Privilege, Role, User } from '@things-factory/auth-base'\n\nconst SEED_ROLES = [\n {\n name: '감리사',\n description: '감리사',\n privileges: [\n {\n name: 'query',\n category: 'board'\n },\n {\n name: 'query',\n category: 'attachment'\n }\n ]\n },\n {\n name: '설계사',\n description: '설계사',\n privileges: [\n {\n name: 'query',\n category: 'board'\n },\n {\n name: 'query',\n category: 'attachment'\n }\n ]\n },\n {\n name: '현장관리자',\n description: '현장관리자',\n privileges: [\n {\n name: 'query',\n category: 'board'\n },\n {\n name: 'query',\n category: 'attachment'\n }\n ]\n },\n {\n name: '시공자',\n description: '시공자',\n privileges: [\n {\n name: 'query',\n category: 'board'\n },\n {\n name: 'query',\n category: 'attachment'\n }\n ]\n }\n]\n\nexport class Roles1723861466413 implements MigrationInterface {\n public async up(queryRunner: QueryRunner): Promise<void> {\n const domainRepository = getRepository(Domain)\n const roleRepository = getRepository(Role)\n const userRepository = getRepository(User)\n const privilegeRepository = getRepository(Privilege)\n\n const domain: Domain = await domainRepository.findOne({\n where: { name: 'SYSTEM' }\n })\n\n const admin: User = await userRepository.findOne({\n where: { email: 'admin@hatiolab.com' }\n })\n\n try {\n for (let i = 0; i < SEED_ROLES.length; i++) {\n const { name, description, privileges } = SEED_ROLES[i]\n\n const role = await roleRepository.save({\n domain,\n name,\n description,\n creator: admin,\n updater: admin\n })\n\n const ps = []\n\n for (const privilege of privileges) {\n const { name, category } = privilege\n ps.push(\n await privilegeRepository.findOne({\n where: {\n name,\n category\n }\n })\n )\n }\n\n role.privileges = ps\n\n await roleRepository.save(role)\n }\n } catch (e) {\n logger.error(e)\n }\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n const domainRepository = getRepository(Domain)\n const roleRepository = getRepository(Role)\n\n const domain: Domain = await domainRepository.findOne({\n where: { name: 'SYSTEM' }\n })\n\n SEED_ROLES.reverse().forEach(async ({ name }) => {\n await roleRepository.delete({ name, domain: { id: domain.id } })\n })\n }\n}\n"]}
1
+ {"version":3,"file":"1723861466413-seed-roles.js","sourceRoot":"","sources":["../../server/migrations/1723861466413-seed-roles.ts"],"names":[],"mappings":"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","sourcesContent":["import { MigrationInterface, QueryRunner } from 'typeorm'\n\nimport { logger } from '@things-factory/env'\nimport { Domain, getRepository } from '@things-factory/shell'\nimport { Privilege, Role, User } from '@things-factory/auth-base'\n\nconst SEED_ROLES = [\n {\n name: '감리사',\n description: '감리사',\n privileges: [\n {\n name: 'query',\n category: 'board'\n },\n {\n name: 'query',\n category: 'attachment'\n }\n ]\n },\n {\n name: '설계사',\n description: '설계사',\n privileges: [\n {\n name: 'query',\n category: 'board'\n },\n {\n name: 'query',\n category: 'attachment'\n }\n ]\n },\n {\n name: '현장관리자',\n description: '현장관리자',\n privileges: [\n {\n name: 'query',\n category: 'board'\n },\n {\n name: 'query',\n category: 'attachment'\n }\n ]\n },\n {\n name: '시공자',\n description: '시공자',\n privileges: [\n {\n name: 'query',\n category: 'board'\n },\n {\n name: 'query',\n category: 'attachment'\n }\n ]\n }\n]\n\nexport class Roles1723861466413 implements MigrationInterface {\n public async up(queryRunner: QueryRunner): Promise<void> {\n const domainRepository = getRepository(Domain)\n const roleRepository = getRepository(Role)\n const userRepository = getRepository(User)\n const privilegeRepository = getRepository(Privilege)\n\n const domain: Domain = await domainRepository.findOne({\n where: { name: 'SYSTEM' }\n })\n\n const admin: User = await userRepository.findOne({\n where: { email: 'admin@hatiolab.com' }\n })\n\n try {\n for (let i = 0; i < SEED_ROLES.length; i++) {\n const { name, description, privileges } = SEED_ROLES[i]\n\n const role = await roleRepository.save({\n domain,\n name,\n description,\n creator: admin,\n updater: admin\n })\n\n const ps = []\n\n for (const privilege of privileges) {\n const { name, category } = privilege\n ps.push(\n await privilegeRepository.findOne({\n where: {\n name,\n category\n }\n })\n )\n }\n\n role.privileges = ps\n\n await roleRepository.save(role)\n }\n } catch (e) {\n logger.error(e)\n }\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n const domainRepository = getRepository(Domain)\n const roleRepository = getRepository(Role)\n\n const domain: Domain = await domainRepository.findOne({\n where: { name: 'SYSTEM' }\n })\n\n SEED_ROLES.reverse().forEach(async ({ name }) => {\n await roleRepository.delete({ name, domain: { id: domain.id } })\n })\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"1723861466414-seed-codes.js","sourceRoot":"","sources":["../../server/migrations/1723861466414-seed-codes.ts"],"names":[],"mappings":"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","sourcesContent":["import { MigrationInterface, QueryRunner } from 'typeorm'\n\nimport { logger } from '@things-factory/env'\nimport { Domain, getRepository } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { CommonCode, CommonCodeDetail } from '@things-factory/code-base'\n\nconst SEED_COMMON_CODES = [\n {\n name: 'EMPLOYEE_TYPE',\n description: '직원 유형',\n details: [\n {\n name: 'FULLTIME',\n description: '풀타임 정규직',\n labels: null,\n rank: 1\n },\n {\n name: 'PARTTIME',\n description: '파트타임 정규직',\n labels: null,\n rank: 2\n },\n {\n name: 'TEMPORARY',\n description: '임시직',\n labels: null,\n rank: 3\n }\n ]\n },\n {\n name: 'JOB_POSITION',\n description: '직급',\n details: [\n {\n name: '임원',\n description: '임원',\n labels: null,\n rank: 1\n },\n {\n name: '직원',\n description: '직원',\n labels: null,\n rank: 2\n }\n ]\n },\n {\n name: 'JOB_RESPONSIBILITY',\n description: '직책',\n details: [\n {\n name: 'ADMIN',\n description: '관리자',\n labels: null,\n rank: 1\n },\n {\n name: 'OVERALL_SUPERVISORY',\n description: '총괄 감리 책임자',\n labels: null,\n rank: 2\n },\n {\n name: 'TASK_SUPERVISORY',\n description: '공종별 감리 책임자',\n labels: null,\n rank: 3\n },\n {\n name: 'OVERALL_CONSTRUCTOR',\n description: '총괄 시공 책임자',\n labels: null,\n rank: 4\n },\n {\n name: 'TASK_CONSTRUCTOR',\n description: '공종별 시공 관리자',\n labels: null,\n rank: 5\n },\n {\n name: 'DESIGNER',\n description: '설계사',\n labels: null,\n rank: 6\n },\n {\n name: 'CONSTRUCTOR',\n description: '시공자',\n labels: null,\n rank: 7\n }\n ]\n }\n]\n\nexport class SeedCodes1723861466414 implements MigrationInterface {\n public async up(queryRunner: QueryRunner): Promise<void> {\n const commonCodeRepository = getRepository(CommonCode)\n const commonCodeDetailRepository = getRepository(CommonCodeDetail)\n const domainRepository = getRepository(Domain)\n const userRepository = getRepository(User)\n\n const domain: Domain = await domainRepository.findOne({\n where: { name: 'SYSTEM' }\n })\n const user = await userRepository.findOne({ where: { id: domain.owner } })\n\n try {\n for (let i = 0; i < SEED_COMMON_CODES.length; i++) {\n const { name, description, details } = SEED_COMMON_CODES[i]\n\n const commonCode = await commonCodeRepository.save({\n domain,\n name,\n description,\n creator: user,\n updater: user\n })\n\n for (const commonCodeDetail of details) {\n const { name, description, labels, rank } = commonCodeDetail\n\n await commonCodeDetailRepository.save({\n domain,\n commonCode,\n name,\n description,\n labels,\n rank\n })\n }\n }\n } catch (e) {\n logger.error(e)\n }\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n const domainRepository = getRepository(Domain)\n\n const domain: Domain = await domainRepository.findOne({\n where: { name: 'SYSTEM' }\n })\n\n const repository = getRepository(CommonCode)\n\n SEED_COMMON_CODES.reverse().forEach(async commonCode => {\n let record = await repository.findOne({ where: { name: commonCode.name, domain: { id: domain.id } } })\n record && (await repository.remove(record))\n })\n }\n}\n"]}
1
+ {"version":3,"file":"1723861466414-seed-codes.js","sourceRoot":"","sources":["../../server/migrations/1723861466414-seed-codes.ts"],"names":[],"mappings":"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","sourcesContent":["import { MigrationInterface, QueryRunner } from 'typeorm'\n\nimport { logger } from '@things-factory/env'\nimport { Domain, getRepository } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { CommonCode, CommonCodeDetail } from '@things-factory/code-base'\n\nconst SEED_COMMON_CODES = [\n {\n name: 'EMPLOYEE_TYPE',\n description: '직원 유형',\n details: [\n {\n name: 'FULLTIME',\n description: '풀타임 정규직',\n labels: null,\n rank: 1\n },\n {\n name: 'PARTTIME',\n description: '파트타임 정규직',\n labels: null,\n rank: 2\n },\n {\n name: 'TEMPORARY',\n description: '임시직',\n labels: null,\n rank: 3\n }\n ]\n },\n {\n name: 'JOB_POSITION',\n description: '직급',\n details: [\n {\n name: '임원',\n description: '임원',\n labels: null,\n rank: 1\n },\n {\n name: '직원',\n description: '직원',\n labels: null,\n rank: 2\n }\n ]\n },\n {\n name: 'JOB_RESPONSIBILITY',\n description: '직책',\n details: [\n {\n name: 'ADMIN',\n description: '관리자',\n labels: null,\n rank: 1\n },\n {\n name: 'OVERALL_SUPERVISORY',\n description: '총괄 감리 책임자',\n labels: null,\n rank: 2\n },\n {\n name: 'TASK_SUPERVISORY',\n description: '공종별 감리 책임자',\n labels: null,\n rank: 3\n },\n {\n name: 'OVERALL_CONSTRUCTOR',\n description: '총괄 시공 책임자',\n labels: null,\n rank: 4\n },\n {\n name: 'TASK_CONSTRUCTOR',\n description: '공종별 시공 관리자',\n labels: null,\n rank: 5\n },\n {\n name: 'DESIGNER',\n description: '설계사',\n labels: null,\n rank: 6\n },\n {\n name: 'CONSTRUCTOR',\n description: '시공자',\n labels: null,\n rank: 7\n }\n ]\n }\n]\n\nexport class SeedCodes1723861466414 implements MigrationInterface {\n public async up(queryRunner: QueryRunner): Promise<void> {\n const commonCodeRepository = getRepository(CommonCode)\n const commonCodeDetailRepository = getRepository(CommonCodeDetail)\n const domainRepository = getRepository(Domain)\n const userRepository = getRepository(User)\n\n const domain: Domain = await domainRepository.findOne({\n where: { name: 'SYSTEM' }\n })\n const user = await userRepository.findOne({ where: { id: domain.owner } })\n\n try {\n for (let i = 0; i < SEED_COMMON_CODES.length; i++) {\n const { name, description, details } = SEED_COMMON_CODES[i]\n\n const commonCode = await commonCodeRepository.save({\n domain,\n name,\n description,\n creator: user,\n updater: user\n })\n\n for (const commonCodeDetail of details) {\n const { name, description, labels, rank } = commonCodeDetail\n\n await commonCodeDetailRepository.save({\n domain,\n commonCode,\n name,\n description,\n labels,\n rank\n })\n }\n }\n } catch (e) {\n logger.error(e)\n }\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n const domainRepository = getRepository(Domain)\n\n const domain: Domain = await domainRepository.findOne({\n where: { name: 'SYSTEM' }\n })\n\n const repository = getRepository(CommonCode)\n\n SEED_COMMON_CODES.reverse().forEach(async commonCode => {\n let record = await repository.findOne({ where: { name: commonCode.name, domain: { id: domain.id } } })\n record && (await repository.remove(record))\n })\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"1723861476419-seed-resources.js","sourceRoot":"","sources":["../../server/migrations/1723861476419-seed-resources.ts"],"names":[],"mappings":"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","sourcesContent":["import { MigrationInterface, QueryRunner } from 'typeorm'\n\nimport { logger } from '@things-factory/env'\nimport { Domain, getRepository } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { ResourceType, Resource } from '../service/resource/resource'\n\nconst SEED_RESOURCES = [\n { name: '철근/형틀공', type: ResourceType.HUMAN, unit: 'man/day' },\n { name: '방수공', type: ResourceType.HUMAN, unit: 'man/day' },\n { name: '목공', type: ResourceType.HUMAN, unit: 'man/day' },\n { name: '금속공', type: ResourceType.HUMAN, unit: 'man/day' },\n { name: '타일공', type: ResourceType.HUMAN, unit: 'man/day' },\n { name: '창호공', type: ResourceType.HUMAN, unit: 'man/day' },\n { name: '도배공', type: ResourceType.HUMAN, unit: 'man/day' },\n { name: '조적공', type: ResourceType.HUMAN, unit: 'man/day' }\n]\n\nexport class SeedResources1723861476419 implements MigrationInterface {\n public async up(queryRunner: QueryRunner): Promise<void> {\n const resourceRepository = getRepository(Resource)\n const domainRepository = getRepository(Domain)\n const userRepository = getRepository(User)\n\n const domain: Domain = await domainRepository.findOne({\n where: { name: 'SYSTEM' }\n })\n const user = await userRepository.findOne({ where: { id: domain.owner } })\n\n try {\n for (let i = 0; i < SEED_RESOURCES.length; i++) {\n const { name, type, unit } = SEED_RESOURCES[i]\n\n const resource = await resourceRepository.save({\n domain,\n name,\n type,\n unit,\n creator: user,\n updater: user\n })\n }\n } catch (e) {\n logger.error(e)\n }\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n const domainRepository = getRepository(Domain)\n\n const domain: Domain = await domainRepository.findOne({\n where: { name: 'SYSTEM' }\n })\n\n const repository = getRepository(Resource)\n\n SEED_RESOURCES.reverse().forEach(async resource => {\n let record = await repository.findOne({ where: { name: resource.name, domain: { id: domain.id } } })\n record && (await repository.remove(record))\n })\n }\n}\n"]}
1
+ {"version":3,"file":"1723861476419-seed-resources.js","sourceRoot":"","sources":["../../server/migrations/1723861476419-seed-resources.ts"],"names":[],"mappings":"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","sourcesContent":["import { MigrationInterface, QueryRunner } from 'typeorm'\n\nimport { logger } from '@things-factory/env'\nimport { Domain, getRepository } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { ResourceType, Resource } from '../service/resource/resource'\n\nconst SEED_RESOURCES = [\n { name: '철근/형틀공', type: ResourceType.HUMAN, unit: 'man/day' },\n { name: '방수공', type: ResourceType.HUMAN, unit: 'man/day' },\n { name: '목공', type: ResourceType.HUMAN, unit: 'man/day' },\n { name: '금속공', type: ResourceType.HUMAN, unit: 'man/day' },\n { name: '타일공', type: ResourceType.HUMAN, unit: 'man/day' },\n { name: '창호공', type: ResourceType.HUMAN, unit: 'man/day' },\n { name: '도배공', type: ResourceType.HUMAN, unit: 'man/day' },\n { name: '조적공', type: ResourceType.HUMAN, unit: 'man/day' }\n]\n\nexport class SeedResources1723861476419 implements MigrationInterface {\n public async up(queryRunner: QueryRunner): Promise<void> {\n const resourceRepository = getRepository(Resource)\n const domainRepository = getRepository(Domain)\n const userRepository = getRepository(User)\n\n const domain: Domain = await domainRepository.findOne({\n where: { name: 'SYSTEM' }\n })\n const user = await userRepository.findOne({ where: { id: domain.owner } })\n\n try {\n for (let i = 0; i < SEED_RESOURCES.length; i++) {\n const { name, type, unit } = SEED_RESOURCES[i]\n\n const resource = await resourceRepository.save({\n domain,\n name,\n type,\n unit,\n creator: user,\n updater: user\n })\n }\n } catch (e) {\n logger.error(e)\n }\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n const domainRepository = getRepository(Domain)\n\n const domain: Domain = await domainRepository.findOne({\n where: { name: 'SYSTEM' }\n })\n\n const repository = getRepository(Resource)\n\n SEED_RESOURCES.reverse().forEach(async resource => {\n let record = await repository.findOne({ where: { name: resource.name, domain: { id: domain.id } } })\n record && (await repository.remove(record))\n })\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"1723861478420-seed-\bsample-project.js","sourceRoot":"","sources":["../../server/migrations/1723861478420-seed-\bsample-project.ts"],"names":[],"mappings":"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","sourcesContent":["import { MigrationInterface, QueryRunner } from 'typeorm'\n\nimport { logger } from '@things-factory/env'\nimport { Domain, getRepository } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { BuildingComplex } from '@dssp/building-complex'\nimport { Project, ProjectState } from '../service/project/project'\n\nconst SEED_SAMPLE_BUILDING_COMPLEX = {\n address: '서울시 마포구 공덕동 아파트 17번지',\n longitude: 37.548239525193,\n latitude: 126.95315808838,\n clientCompany: 'A 고객',\n constructionCompany: 'B 건설',\n supervisoryComapny: 'C 감리',\n designCompany: 'D 디자인',\n constructionType: '아파트',\n etc: '',\n householdCount: 500,\n buildingCount: 5,\n notice: '',\n planXScale: 20,\n planYScale: 20,\n area: 22700\n}\n\nconst SEED_SAMPLE_PROJECT = {\n name: '서울시 마포구 공덕동 아파트 신축공사',\n state: ProjectState.ONGOING,\n startDate: '2024-01-01',\n endDate: '2025-12-31',\n totalProgress: 40,\n weeklyProgress: 37\n}\n\nexport class SeedSampleProject1723861478420 implements MigrationInterface {\n public async up(queryRunner: QueryRunner): Promise<void> {\n const buildingRepository = getRepository(BuildingComplex)\n const projectRepository = getRepository(Project)\n const domainRepository = getRepository(Domain)\n const userRepository = getRepository(User)\n\n const domain: Domain = await domainRepository.findOne({\n where: { name: 'SYSTEM' }\n })\n const user = await userRepository.findOne({ where: { id: domain.owner } })\n\n try {\n const buildingComplex = await buildingRepository.save({\n domain,\n ...SEED_SAMPLE_BUILDING_COMPLEX,\n creator: user,\n updater: user\n })\n\n const project = await projectRepository.save({\n domain,\n ...SEED_SAMPLE_PROJECT,\n buildingComplex,\n creator: user,\n updater: user\n })\n } catch (e) {\n logger.error(e)\n }\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n const domainRepository = getRepository(Domain)\n\n const domain: Domain = await domainRepository.findOne({\n where: { name: 'SYSTEM' }\n })\n\n const repository = getRepository(Project)\n\n let project = await repository.findOne({ where: { name: SEED_SAMPLE_PROJECT.name, domain: { id: domain.id } } })\n project && (await repository.remove(project))\n\n const buildRepository = getRepository(BuildingComplex)\n\n let buildingComplex = await buildRepository.findOne({\n where: { address: SEED_SAMPLE_BUILDING_COMPLEX.address, domain: { id: domain.id } }\n })\n buildingComplex && (await buildRepository.remove(buildingComplex))\n }\n}\n"]}
1
+ {"version":3,"file":"1723861478420-seed-\bsample-project.js","sourceRoot":"","sources":["../../server/migrations/1723861478420-seed-\bsample-project.ts"],"names":[],"mappings":"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","sourcesContent":["import { MigrationInterface, QueryRunner } from 'typeorm'\n\nimport { logger } from '@things-factory/env'\nimport { Domain, getRepository } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { BuildingComplex } from '@dssp/building-complex'\nimport { Project, ProjectState } from '../service/project/project'\n\nconst SEED_SAMPLE_BUILDING_COMPLEX = {\n address: '서울시 마포구 공덕동 아파트 17번지',\n longitude: 37.548239525193,\n latitude: 126.95315808838,\n clientCompany: 'A 고객',\n constructionCompany: 'B 건설',\n supervisoryComapny: 'C 감리',\n designCompany: 'D 디자인',\n constructionType: '아파트',\n etc: '',\n householdCount: 500,\n buildingCount: 5,\n notice: '',\n planXScale: 20,\n planYScale: 20,\n area: 22700\n}\n\nconst SEED_SAMPLE_PROJECT = {\n name: '서울시 마포구 공덕동 아파트 신축공사',\n state: ProjectState.ONGOING,\n startDate: '2024-01-01',\n endDate: '2025-12-31',\n totalProgress: 40,\n weeklyProgress: 37\n}\n\nexport class SeedSampleProject1723861478420 implements MigrationInterface {\n public async up(queryRunner: QueryRunner): Promise<void> {\n const buildingRepository = getRepository(BuildingComplex)\n const projectRepository = getRepository(Project)\n const domainRepository = getRepository(Domain)\n const userRepository = getRepository(User)\n\n const domain: Domain = await domainRepository.findOne({\n where: { name: 'SYSTEM' }\n })\n const user = await userRepository.findOne({ where: { id: domain.owner } })\n\n try {\n const buildingComplex = await buildingRepository.save({\n domain,\n ...SEED_SAMPLE_BUILDING_COMPLEX,\n creator: user,\n updater: user\n })\n\n const project = await projectRepository.save({\n domain,\n ...SEED_SAMPLE_PROJECT,\n buildingComplex,\n creator: user,\n updater: user\n })\n } catch (e) {\n logger.error(e)\n }\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n const domainRepository = getRepository(Domain)\n\n const domain: Domain = await domainRepository.findOne({\n where: { name: 'SYSTEM' }\n })\n\n const repository = getRepository(Project)\n\n let project = await repository.findOne({ where: { name: SEED_SAMPLE_PROJECT.name, domain: { id: domain.id } } })\n project && (await repository.remove(project))\n\n const buildRepository = getRepository(BuildingComplex)\n\n let buildingComplex = await buildRepository.findOne({\n where: { address: SEED_SAMPLE_BUILDING_COMPLEX.address, domain: { id: domain.id } }\n })\n buildingComplex && (await buildRepository.remove(buildingComplex))\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"1723861478421-seed-\bsample-tasks.js","sourceRoot":"","sources":["../../server/migrations/1723861478421-seed-\bsample-tasks.ts"],"names":[],"mappings":"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","sourcesContent":["import { MigrationInterface, QueryRunner } from 'typeorm'\n\nimport { logger } from '@things-factory/env'\nimport { Domain, getRepository } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { Project } from '../service/project/project'\n\nimport { importTasks } from '../controllers/import-task'\n\nconst SEED_SAMPLE_PROJECT = {\n name: '서울시 마포구 공덕동 아파트 신축공사'\n}\n\nconst SEED_SAMPLE_TASKS = [\n {\n code: '골조공사',\n title: '골조공사',\n progress: 60,\n children: [\n {\n code: '골조공사:기초공사',\n title: '기초공사',\n startDate: '2024-01-01',\n duration: 3,\n resources: [{ type: '철근/형틀공', allocated: 6 }]\n },\n {\n code: '골조공사:1층',\n title: '1층',\n duration: 10,\n dependsOn: '골조공사:기초공사',\n resources: [{ type: '철근/형틀공', allocated: 6 }]\n },\n {\n code: '골조공사:2층',\n title: '2층',\n duration: 10,\n dependsOn: '골조공사:1층',\n resources: [{ type: '철근/형틀공', allocated: 6 }]\n },\n {\n code: '골조공사:옥탑공사',\n title: '옥탑공사',\n duration: 6,\n dependsOn: '골조공사:2층',\n resources: [{ type: '철근/형틀공', allocated: 6 }]\n }\n ]\n },\n {\n code: '단열공사',\n title: '단열공사',\n children: [\n {\n code: '단열공사:단열재부착',\n title: '단열재부착',\n startDate: '2024-01-12',\n duration: 2\n }\n ]\n },\n {\n code: '조적공사',\n title: '조적공사',\n children: [\n {\n code: '조적공사:조적시공',\n title: '조적시공',\n startDate: '2024-01-12',\n duration: 3\n }\n ]\n },\n {\n code: '창호공사',\n title: '창호공사',\n progress: 60,\n children: [\n {\n code: '창호공사:실측및발주',\n title: '실측및발주',\n dependsOn: '골조공사:1층',\n duration: 1\n },\n {\n code: '창호공사:창호 프레임 설치',\n title: '창호 프레임 설치',\n duration: 3,\n dependsOn: '창호공사:실측및발주',\n resources: [{ type: '창호공', allocated: 4 }]\n },\n {\n code: '창호공사:창호 유리 설치',\n title: '창호 유리 설치',\n duration: 2,\n dependsOn: '창호공사:창호 프레임 설치',\n resources: [{ type: '창호공', allocated: 2 }]\n }\n ]\n },\n {\n code: '방수공사',\n title: '방수공사',\n progress: 60,\n children: [\n {\n code: '방수공사:골조 조인트부분 방수',\n title: '골조 조인트부분 방수',\n startDate: '2024-01-01',\n duration: 3,\n resources: [{ type: '방수공', allocated: 1 }]\n },\n {\n code: '방수공사:개구부 주변 방수',\n title: '개구부 주변 방수',\n duration: 2,\n dependsOn: '방수공사:골조 조인트부분 방수',\n resources: [{ type: '방수공', allocated: 1 }]\n },\n {\n code: '방수공사:테라스 방수',\n title: '테라스 방수',\n duration: 5,\n dependsOn: '방수공사:개구부 주변 방수',\n resources: [{ type: '방수공', allocated: 1 }]\n },\n {\n code: '방수공사:화장실/다용도실 방수',\n title: '화장실/다용도실 방수',\n duration: 5,\n dependsOn: '방수공사:테라스 방수',\n resources: [{ type: '방수공', allocated: 1 }]\n }\n ]\n },\n {\n code: '내부목공사',\n title: '내부목공사',\n progress: 60,\n children: [\n {\n code: '내부목공사:벽체다루끼/경량스터드',\n title: '벽체다루끼/경량스터드',\n startDate: '2024-01-20',\n duration: 5,\n resources: [{ type: '목공', allocated: 4 }]\n },\n {\n code: '내부목공사:벽체 석고보드 취부',\n title: '벽체 석고보드 취부',\n duration: 5,\n dependsOn: '내부목공사:벽체다루끼/경량스터드',\n resources: [{ type: '목공', allocated: 4 }]\n },\n {\n code: '내부목공사:ABC',\n title: 'ABC',\n duration: 4,\n dependsOn: '내부목공사:벽체 석고보드 취부',\n resources: [{ type: '목공', allocated: 4 }]\n }\n ]\n }\n]\n\nexport class SeedSampleTasks1723861478421 implements MigrationInterface {\n public async up(queryRunner: QueryRunner): Promise<void> {\n const projectRepository = getRepository(Project)\n const domainRepository = getRepository(Domain)\n const userRepository = getRepository(User)\n\n const domain: Domain = await domainRepository.findOne({\n where: { name: 'SYSTEM' }\n })\n const user = await userRepository.findOne({ where: { id: domain.owner } })\n const project = await projectRepository.findOne({ where: { domain: { id: domain.id }, name: SEED_SAMPLE_PROJECT.name } })\n\n try {\n await importTasks(project, SEED_SAMPLE_TASKS, { state: { domain, user } as any })\n } catch (e) {\n logger.error(e)\n }\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n const domainRepository = getRepository(Domain)\n\n const domain: Domain = await domainRepository.findOne({\n where: { name: 'SYSTEM' }\n })\n\n const repository = getRepository(Project)\n }\n}\n"]}
1
+ {"version":3,"file":"1723861478421-seed-\bsample-tasks.js","sourceRoot":"","sources":["../../server/migrations/1723861478421-seed-\bsample-tasks.ts"],"names":[],"mappings":"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","sourcesContent":["import { MigrationInterface, QueryRunner } from 'typeorm'\n\nimport { logger } from '@things-factory/env'\nimport { Domain, getRepository } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { Project } from '../service/project/project'\n\nimport { importTasks } from '../controllers/import-task'\n\nconst SEED_SAMPLE_PROJECT = {\n name: '서울시 마포구 공덕동 아파트 신축공사'\n}\n\nconst SEED_SAMPLE_TASKS = [\n {\n code: '골조공사',\n title: '골조공사',\n progress: 60,\n children: [\n {\n code: '골조공사:기초공사',\n title: '기초공사',\n startDate: '2024-01-01',\n duration: 3,\n resources: [{ type: '철근/형틀공', allocated: 6 }]\n },\n {\n code: '골조공사:1층',\n title: '1층',\n duration: 10,\n dependsOn: '골조공사:기초공사',\n resources: [{ type: '철근/형틀공', allocated: 6 }]\n },\n {\n code: '골조공사:2층',\n title: '2층',\n duration: 10,\n dependsOn: '골조공사:1층',\n resources: [{ type: '철근/형틀공', allocated: 6 }]\n },\n {\n code: '골조공사:옥탑공사',\n title: '옥탑공사',\n duration: 6,\n dependsOn: '골조공사:2층',\n resources: [{ type: '철근/형틀공', allocated: 6 }]\n }\n ]\n },\n {\n code: '단열공사',\n title: '단열공사',\n children: [\n {\n code: '단열공사:단열재부착',\n title: '단열재부착',\n startDate: '2024-01-12',\n duration: 2\n }\n ]\n },\n {\n code: '조적공사',\n title: '조적공사',\n children: [\n {\n code: '조적공사:조적시공',\n title: '조적시공',\n startDate: '2024-01-12',\n duration: 3\n }\n ]\n },\n {\n code: '창호공사',\n title: '창호공사',\n progress: 60,\n children: [\n {\n code: '창호공사:실측및발주',\n title: '실측및발주',\n dependsOn: '골조공사:1층',\n duration: 1\n },\n {\n code: '창호공사:창호 프레임 설치',\n title: '창호 프레임 설치',\n duration: 3,\n dependsOn: '창호공사:실측및발주',\n resources: [{ type: '창호공', allocated: 4 }]\n },\n {\n code: '창호공사:창호 유리 설치',\n title: '창호 유리 설치',\n duration: 2,\n dependsOn: '창호공사:창호 프레임 설치',\n resources: [{ type: '창호공', allocated: 2 }]\n }\n ]\n },\n {\n code: '방수공사',\n title: '방수공사',\n progress: 60,\n children: [\n {\n code: '방수공사:골조 조인트부분 방수',\n title: '골조 조인트부분 방수',\n startDate: '2024-01-01',\n duration: 3,\n resources: [{ type: '방수공', allocated: 1 }]\n },\n {\n code: '방수공사:개구부 주변 방수',\n title: '개구부 주변 방수',\n duration: 2,\n dependsOn: '방수공사:골조 조인트부분 방수',\n resources: [{ type: '방수공', allocated: 1 }]\n },\n {\n code: '방수공사:테라스 방수',\n title: '테라스 방수',\n duration: 5,\n dependsOn: '방수공사:개구부 주변 방수',\n resources: [{ type: '방수공', allocated: 1 }]\n },\n {\n code: '방수공사:화장실/다용도실 방수',\n title: '화장실/다용도실 방수',\n duration: 5,\n dependsOn: '방수공사:테라스 방수',\n resources: [{ type: '방수공', allocated: 1 }]\n }\n ]\n },\n {\n code: '내부목공사',\n title: '내부목공사',\n progress: 60,\n children: [\n {\n code: '내부목공사:벽체다루끼/경량스터드',\n title: '벽체다루끼/경량스터드',\n startDate: '2024-01-20',\n duration: 5,\n resources: [{ type: '목공', allocated: 4 }]\n },\n {\n code: '내부목공사:벽체 석고보드 취부',\n title: '벽체 석고보드 취부',\n duration: 5,\n dependsOn: '내부목공사:벽체다루끼/경량스터드',\n resources: [{ type: '목공', allocated: 4 }]\n },\n {\n code: '내부목공사:ABC',\n title: 'ABC',\n duration: 4,\n dependsOn: '내부목공사:벽체 석고보드 취부',\n resources: [{ type: '목공', allocated: 4 }]\n }\n ]\n }\n]\n\nexport class SeedSampleTasks1723861478421 implements MigrationInterface {\n public async up(queryRunner: QueryRunner): Promise<void> {\n const projectRepository = getRepository(Project)\n const domainRepository = getRepository(Domain)\n const userRepository = getRepository(User)\n\n const domain: Domain = await domainRepository.findOne({\n where: { name: 'SYSTEM' }\n })\n const user = await userRepository.findOne({ where: { id: domain.owner } })\n const project = await projectRepository.findOne({ where: { domain: { id: domain.id }, name: SEED_SAMPLE_PROJECT.name } })\n\n try {\n await importTasks(project, SEED_SAMPLE_TASKS, { state: { domain, user } as any })\n } catch (e) {\n logger.error(e)\n }\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n const domainRepository = getRepository(Domain)\n\n const domain: Domain = await domainRepository.findOne({\n where: { name: 'SYSTEM' }\n })\n\n const repository = getRepository(Project)\n }\n}\n"]}
@@ -30,6 +30,7 @@ let ConstructionDetailTypeMutation = class ConstructionDetailTypeMutation {
30
30
  return true;
31
31
  }
32
32
  };
33
+ exports.ConstructionDetailTypeMutation = ConstructionDetailTypeMutation;
33
34
  tslib_1.__decorate([
34
35
  (0, type_graphql_1.Directive)('@transaction'),
35
36
  (0, type_graphql_1.Mutation)(returns => [construction_detail_type_1.ConstructionDetailType], { description: "To modify multiple ConstructionDetailTypes' information" }),
@@ -49,8 +50,7 @@ tslib_1.__decorate([
49
50
  tslib_1.__metadata("design:paramtypes", [Array, Object]),
50
51
  tslib_1.__metadata("design:returntype", Promise)
51
52
  ], ConstructionDetailTypeMutation.prototype, "deleteConstructionDetailTypes", null);
52
- ConstructionDetailTypeMutation = tslib_1.__decorate([
53
+ exports.ConstructionDetailTypeMutation = ConstructionDetailTypeMutation = tslib_1.__decorate([
53
54
  (0, type_graphql_1.Resolver)(construction_detail_type_1.ConstructionDetailType)
54
55
  ], ConstructionDetailTypeMutation);
55
- exports.ConstructionDetailTypeMutation = ConstructionDetailTypeMutation;
56
56
  //# sourceMappingURL=construction-detail-type-mutation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"construction-detail-type-mutation.js","sourceRoot":"","sources":["../../../server/service/construction-detail-type/construction-detail-type-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AACtE,qCAA4B;AAC5B,qEAAwE;AACxE,yEAAmE;AACnE,mFAA6E;AAC7E,8EAAyE;AAGlE,IAAM,8BAA8B,GAApC,MAAM,8BAA8B;IAGnC,AAAN,KAAK,CAAC,oCAAoC,CACe,OAAsC,EAClE,kBAA0B,EAC9C,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,IAAI,OAAO,GAAG,EAAE,CAAA;QAEhB,MAAM,0BAA0B,GAAG,EAAE,CAAC,aAAa,CAAC,iDAAsB,CAAC,CAAA;QAC3E,MAAM,gBAAgB,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,oCAAgB,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAA;QAEvG,MAAM,0BAA0B,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAA;QAEzF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,IAAI,iCAC/C,OAAO,CAAC,CAAC,CAAC,KACb,QAAQ,EAAE,CAAC,EACX,gBAAgB,EAChB,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;YAEF,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;SACzC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAIK,AAAN,KAAK,CAAC,6BAA6B,CACH,GAAa,EACpC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,iDAAsB,CAAC,CAAC,MAAM,CAAC;YACpD,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC;SACZ,CAAC,CAAA;QAEF,MAAM,IAAA,wCAAsB,EAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,CAAA;QAE5D,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AA7CO;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,iDAAsB,CAAC,EAAE,EAAE,WAAW,EAAE,yDAAyD,EAAE,CAAC;IAEvH,mBAAA,IAAA,kBAAG,EAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,2DAA2B,CAAC,CAAC,CAAA;IACrD,mBAAA,IAAA,kBAAG,EAAC,oBAAoB,CAAC,CAAA;IACzB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;0FAwBP;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;IAEzF,mBAAA,IAAA,kBAAG,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAC5B,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;mFAWP;AA/CU,8BAA8B;IAD1C,IAAA,uBAAQ,EAAC,iDAAsB,CAAC;GACpB,8BAA8B,CAgD1C;AAhDY,wEAA8B","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\nimport { deleteAttachmentsByRef } from '@things-factory/attachment-base'\nimport { ConstructionDetailType } from './construction-detail-type'\nimport { ConstructionDetailTypePatch } from './construction-detail-type-type'\nimport { ConstructionType } from '../construction-type/construction-type'\n\n@Resolver(ConstructionDetailType)\nexport class ConstructionDetailTypeMutation {\n @Directive('@transaction')\n @Mutation(returns => [ConstructionDetailType], { description: \"To modify multiple ConstructionDetailTypes' information\" })\n async updateMultipleConstructionDetailType(\n @Arg('patches', type => [ConstructionDetailTypePatch]) patches: ConstructionDetailTypePatch[],\n @Arg('constructionTypeId') constructionTypeId: string,\n @Ctx() context: ResolverContext\n ): Promise<ConstructionDetailType[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n\n const constructionDetailTypeRepo = tx.getRepository(ConstructionDetailType)\n const constructionType = await tx.getRepository(ConstructionType).findOneBy({ id: constructionTypeId })\n\n await constructionDetailTypeRepo.delete({ constructionType: { id: constructionTypeId } })\n\n for (let i = 0; i < patches.length; i++) {\n const result = await constructionDetailTypeRepo.save({\n ...patches[i],\n sequence: i,\n constructionType,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple ConstructionDetailTypes' })\n async deleteConstructionDetailTypes(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(ConstructionDetailType).delete({\n id: In(ids)\n })\n\n await deleteAttachmentsByRef(null, { refBys: ids }, context)\n\n return true\n }\n}\n"]}
1
+ {"version":3,"file":"construction-detail-type-mutation.js","sourceRoot":"","sources":["../../../server/service/construction-detail-type/construction-detail-type-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AACtE,qCAA4B;AAC5B,qEAAwE;AACxE,yEAAmE;AACnE,mFAA6E;AAC7E,8EAAyE;AAGlE,IAAM,8BAA8B,GAApC,MAAM,8BAA8B;IAGnC,AAAN,KAAK,CAAC,oCAAoC,CACe,OAAsC,EAClE,kBAA0B,EAC9C,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,IAAI,OAAO,GAAG,EAAE,CAAA;QAEhB,MAAM,0BAA0B,GAAG,EAAE,CAAC,aAAa,CAAC,iDAAsB,CAAC,CAAA;QAC3E,MAAM,gBAAgB,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,oCAAgB,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAA;QAEvG,MAAM,0BAA0B,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAA;QAEzF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,IAAI,iCAC/C,OAAO,CAAC,CAAC,CAAC,KACb,QAAQ,EAAE,CAAC,EACX,gBAAgB,EAChB,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;YAEF,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;QAC1C,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAIK,AAAN,KAAK,CAAC,6BAA6B,CACH,GAAa,EACpC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,iDAAsB,CAAC,CAAC,MAAM,CAAC;YACpD,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC;SACZ,CAAC,CAAA;QAEF,MAAM,IAAA,wCAAsB,EAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,CAAA;QAE5D,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AAhDY,wEAA8B;AAGnC;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,iDAAsB,CAAC,EAAE,EAAE,WAAW,EAAE,yDAAyD,EAAE,CAAC;IAEvH,mBAAA,IAAA,kBAAG,EAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,2DAA2B,CAAC,CAAC,CAAA;IACrD,mBAAA,IAAA,kBAAG,EAAC,oBAAoB,CAAC,CAAA;IACzB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;0FAwBP;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;IAEzF,mBAAA,IAAA,kBAAG,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAC5B,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;mFAWP;yCA/CU,8BAA8B;IAD1C,IAAA,uBAAQ,EAAC,iDAAsB,CAAC;GACpB,8BAA8B,CAgD1C","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\nimport { deleteAttachmentsByRef } from '@things-factory/attachment-base'\nimport { ConstructionDetailType } from './construction-detail-type'\nimport { ConstructionDetailTypePatch } from './construction-detail-type-type'\nimport { ConstructionType } from '../construction-type/construction-type'\n\n@Resolver(ConstructionDetailType)\nexport class ConstructionDetailTypeMutation {\n @Directive('@transaction')\n @Mutation(returns => [ConstructionDetailType], { description: \"To modify multiple ConstructionDetailTypes' information\" })\n async updateMultipleConstructionDetailType(\n @Arg('patches', type => [ConstructionDetailTypePatch]) patches: ConstructionDetailTypePatch[],\n @Arg('constructionTypeId') constructionTypeId: string,\n @Ctx() context: ResolverContext\n ): Promise<ConstructionDetailType[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n\n const constructionDetailTypeRepo = tx.getRepository(ConstructionDetailType)\n const constructionType = await tx.getRepository(ConstructionType).findOneBy({ id: constructionTypeId })\n\n await constructionDetailTypeRepo.delete({ constructionType: { id: constructionTypeId } })\n\n for (let i = 0; i < patches.length; i++) {\n const result = await constructionDetailTypeRepo.save({\n ...patches[i],\n sequence: i,\n constructionType,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple ConstructionDetailTypes' })\n async deleteConstructionDetailTypes(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(ConstructionDetailType).delete({\n id: In(ids)\n })\n\n await deleteAttachmentsByRef(null, { refBys: ids }, context)\n\n return true\n }\n}\n"]}
@@ -24,6 +24,7 @@ let ConstructionDetailTypeQuery = class ConstructionDetailTypeQuery {
24
24
  return await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: constructionDetailType.creatorId });
25
25
  }
26
26
  };
27
+ exports.ConstructionDetailTypeQuery = ConstructionDetailTypeQuery;
27
28
  tslib_1.__decorate([
28
29
  (0, type_graphql_1.Query)(returns => construction_detail_type_type_1.ConstructionDetailTypeList, { description: 'To fetch multiple ConstructionDetailTypes' }),
29
30
  tslib_1.__param(0, (0, type_graphql_1.Args)()),
@@ -46,8 +47,7 @@ tslib_1.__decorate([
46
47
  tslib_1.__metadata("design:paramtypes", [construction_detail_type_1.ConstructionDetailType]),
47
48
  tslib_1.__metadata("design:returntype", Promise)
48
49
  ], ConstructionDetailTypeQuery.prototype, "creator", null);
49
- ConstructionDetailTypeQuery = tslib_1.__decorate([
50
+ exports.ConstructionDetailTypeQuery = ConstructionDetailTypeQuery = tslib_1.__decorate([
50
51
  (0, type_graphql_1.Resolver)(construction_detail_type_1.ConstructionDetailType)
51
52
  ], ConstructionDetailTypeQuery);
52
- exports.ConstructionDetailTypeQuery = ConstructionDetailTypeQuery;
53
53
  //# sourceMappingURL=construction-detail-type-query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"construction-detail-type-query.js","sourceRoot":"","sources":["../../../server/service/construction-detail-type/construction-detail-type-query.ts"],"names":[],"mappings":";;;;AAAA,+CAA8E;AAC9E,iDAA+F;AAC/F,yDAAgD;AAChD,yEAAmE;AACnE,mFAA4E;AAGrE,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAEhC,AAAN,KAAK,CAAC,uBAAuB,CAAS,MAAiB,EAAS,OAAwB;QACtF,MAAM,YAAY,GAAG,IAAA,qCAA6B,EAAC;YACjD,MAAM;YACN,UAAU,EAAE,MAAM,IAAA,qBAAa,EAAC,iDAAsB,CAAC;YACvD,WAAW,EAAE,CAAC,MAAM,CAAC;SACtB,CAAC,CAAA;QAEF,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,sBAA8C;QAClE,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,sBAAsB,CAAC,SAAS,EAAE,CAAC,CAAA;IACtF,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,sBAA8C;QAClE,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,sBAAsB,CAAC,SAAS,EAAE,CAAC,CAAA;IACtF,CAAC;CACF,CAAA;AArBO;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,0DAA0B,EAAE,EAAE,WAAW,EAAE,2CAA2C,EAAE,CAAC;IAC5E,mBAAA,IAAA,mBAAI,GAAE,CAAA;IAAqB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAAjB,iBAAS;;0EAUtD;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAyB,iDAAsB;;0DAEnE;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAyB,iDAAsB;;0DAEnE;AAtBU,2BAA2B;IADvC,IAAA,uBAAQ,EAAC,iDAAsB,CAAC;GACpB,2BAA2B,CAuBvC;AAvBY,kEAA2B","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Args, Ctx } from 'type-graphql'\nimport { getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { ConstructionDetailType } from './construction-detail-type'\nimport { ConstructionDetailTypeList } from './construction-detail-type-type'\n\n@Resolver(ConstructionDetailType)\nexport class ConstructionDetailTypeQuery {\n @Query(returns => ConstructionDetailTypeList, { description: 'To fetch multiple ConstructionDetailTypes' })\n async constructionDetailTypes(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ConstructionDetailTypeList> {\n const queryBuilder = getQueryBuilderFromListParams({\n params,\n repository: await getRepository(ConstructionDetailType),\n searchables: ['name']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => User)\n async updater(@Root() constructionDetailType: ConstructionDetailType): Promise<User> {\n return await getRepository(User).findOneBy({ id: constructionDetailType.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() constructionDetailType: ConstructionDetailType): Promise<User> {\n return await getRepository(User).findOneBy({ id: constructionDetailType.creatorId })\n }\n}\n"]}
1
+ {"version":3,"file":"construction-detail-type-query.js","sourceRoot":"","sources":["../../../server/service/construction-detail-type/construction-detail-type-query.ts"],"names":[],"mappings":";;;;AAAA,+CAA8E;AAC9E,iDAA+F;AAC/F,yDAAgD;AAChD,yEAAmE;AACnE,mFAA4E;AAGrE,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAEhC,AAAN,KAAK,CAAC,uBAAuB,CAAS,MAAiB,EAAS,OAAwB;QACtF,MAAM,YAAY,GAAG,IAAA,qCAA6B,EAAC;YACjD,MAAM;YACN,UAAU,EAAE,MAAM,IAAA,qBAAa,EAAC,iDAAsB,CAAC;YACvD,WAAW,EAAE,CAAC,MAAM,CAAC;SACtB,CAAC,CAAA;QAEF,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,sBAA8C;QAClE,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,sBAAsB,CAAC,SAAS,EAAE,CAAC,CAAA;IACtF,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,sBAA8C;QAClE,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,sBAAsB,CAAC,SAAS,EAAE,CAAC,CAAA;IACtF,CAAC;CACF,CAAA;AAvBY,kEAA2B;AAEhC;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,0DAA0B,EAAE,EAAE,WAAW,EAAE,2CAA2C,EAAE,CAAC;IAC5E,mBAAA,IAAA,mBAAI,GAAE,CAAA;IAAqB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAAjB,iBAAS;;0EAUtD;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAyB,iDAAsB;;0DAEnE;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAyB,iDAAsB;;0DAEnE;sCAtBU,2BAA2B;IADvC,IAAA,uBAAQ,EAAC,iDAAsB,CAAC;GACpB,2BAA2B,CAuBvC","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Args, Ctx } from 'type-graphql'\nimport { getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { ConstructionDetailType } from './construction-detail-type'\nimport { ConstructionDetailTypeList } from './construction-detail-type-type'\n\n@Resolver(ConstructionDetailType)\nexport class ConstructionDetailTypeQuery {\n @Query(returns => ConstructionDetailTypeList, { description: 'To fetch multiple ConstructionDetailTypes' })\n async constructionDetailTypes(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ConstructionDetailTypeList> {\n const queryBuilder = getQueryBuilderFromListParams({\n params,\n repository: await getRepository(ConstructionDetailType),\n searchables: ['name']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => User)\n async updater(@Root() constructionDetailType: ConstructionDetailType): Promise<User> {\n return await getRepository(User).findOneBy({ id: constructionDetailType.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() constructionDetailType: ConstructionDetailType): Promise<User> {\n return await getRepository(User).findOneBy({ id: constructionDetailType.creatorId })\n }\n}\n"]}
@@ -6,6 +6,7 @@ const type_graphql_1 = require("type-graphql");
6
6
  const construction_detail_type_1 = require("./construction-detail-type");
7
7
  let ConstructionDetailTypePatch = class ConstructionDetailTypePatch {
8
8
  };
9
+ exports.ConstructionDetailTypePatch = ConstructionDetailTypePatch;
9
10
  tslib_1.__decorate([
10
11
  (0, type_graphql_1.Field)(type => type_graphql_1.ID, { nullable: true }),
11
12
  tslib_1.__metadata("design:type", String)
@@ -22,12 +23,12 @@ tslib_1.__decorate([
22
23
  (0, type_graphql_1.Field)({ nullable: true }),
23
24
  tslib_1.__metadata("design:type", String)
24
25
  ], ConstructionDetailTypePatch.prototype, "cuFlag", void 0);
25
- ConstructionDetailTypePatch = tslib_1.__decorate([
26
+ exports.ConstructionDetailTypePatch = ConstructionDetailTypePatch = tslib_1.__decorate([
26
27
  (0, type_graphql_1.InputType)()
27
28
  ], ConstructionDetailTypePatch);
28
- exports.ConstructionDetailTypePatch = ConstructionDetailTypePatch;
29
29
  let ConstructionDetailTypeList = class ConstructionDetailTypeList {
30
30
  };
31
+ exports.ConstructionDetailTypeList = ConstructionDetailTypeList;
31
32
  tslib_1.__decorate([
32
33
  (0, type_graphql_1.Field)(type => [construction_detail_type_1.ConstructionDetailType]),
33
34
  tslib_1.__metadata("design:type", Array)
@@ -36,8 +37,7 @@ tslib_1.__decorate([
36
37
  (0, type_graphql_1.Field)(type => type_graphql_1.Int),
37
38
  tslib_1.__metadata("design:type", Number)
38
39
  ], ConstructionDetailTypeList.prototype, "total", void 0);
39
- ConstructionDetailTypeList = tslib_1.__decorate([
40
+ exports.ConstructionDetailTypeList = ConstructionDetailTypeList = tslib_1.__decorate([
40
41
  (0, type_graphql_1.ObjectType)()
41
42
  ], ConstructionDetailTypeList);
42
- exports.ConstructionDetailTypeList = ConstructionDetailTypeList;
43
43
  //# sourceMappingURL=construction-detail-type-type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"construction-detail-type-type.js","sourceRoot":"","sources":["../../../server/service/construction-detail-type/construction-detail-type-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAoE;AACpE,yEAAmE;AAG5D,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;CAYvC,CAAA;AAXC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDAC3B;AAEX;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACb;AAEb;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6DACtB;AAEjB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2DACX;AAXJ,2BAA2B;IADvC,IAAA,wBAAS,GAAE;GACC,2BAA2B,CAYvC;AAZY,kEAA2B;AAejC,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;CAMtC,CAAA;AALC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,iDAAsB,CAAC,CAAC;;yDACT;AAE/B;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;yDACN;AALF,0BAA0B;IADtC,IAAA,yBAAU,GAAE;GACA,0BAA0B,CAMtC;AANY,gEAA0B","sourcesContent":["import { ObjectType, Field, InputType, Int, ID } from 'type-graphql'\nimport { ConstructionDetailType } from './construction-detail-type'\n\n@InputType()\nexport class ConstructionDetailTypePatch {\n @Field(type => ID, { nullable: true })\n id?: string\n\n @Field({ nullable: true })\n name?: string\n\n @Field(type => Int, { nullable: true })\n sequence?: number\n\n @Field({ nullable: true })\n cuFlag?: string\n}\n\n@ObjectType()\nexport class ConstructionDetailTypeList {\n @Field(type => [ConstructionDetailType])\n items: ConstructionDetailType[]\n\n @Field(type => Int)\n total: number\n}\n"]}
1
+ {"version":3,"file":"construction-detail-type-type.js","sourceRoot":"","sources":["../../../server/service/construction-detail-type/construction-detail-type-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAoE;AACpE,yEAAmE;AAG5D,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;CAYvC,CAAA;AAZY,kEAA2B;AAEtC;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDAC3B;AAGX;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACb;AAGb;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6DACtB;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2DACX;sCAXJ,2BAA2B;IADvC,IAAA,wBAAS,GAAE;GACC,2BAA2B,CAYvC;AAGM,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;CAMtC,CAAA;AANY,gEAA0B;AAErC;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,iDAAsB,CAAC,CAAC;;yDACT;AAG/B;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;yDACN;qCALF,0BAA0B;IADtC,IAAA,yBAAU,GAAE;GACA,0BAA0B,CAMtC","sourcesContent":["import { ObjectType, Field, InputType, Int, ID } from 'type-graphql'\nimport { ConstructionDetailType } from './construction-detail-type'\n\n@InputType()\nexport class ConstructionDetailTypePatch {\n @Field(type => ID, { nullable: true })\n id?: string\n\n @Field({ nullable: true })\n name?: string\n\n @Field(type => Int, { nullable: true })\n sequence?: number\n\n @Field({ nullable: true })\n cuFlag?: string\n}\n\n@ObjectType()\nexport class ConstructionDetailTypeList {\n @Field(type => [ConstructionDetailType])\n items: ConstructionDetailType[]\n\n @Field(type => Int)\n total: number\n}\n"]}
@@ -8,6 +8,7 @@ const auth_base_1 = require("@things-factory/auth-base");
8
8
  const construction_type_1 = require("../construction-type/construction-type");
9
9
  let ConstructionDetailType = class ConstructionDetailType {
10
10
  };
11
+ exports.ConstructionDetailType = ConstructionDetailType;
11
12
  tslib_1.__decorate([
12
13
  (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
13
14
  (0, type_graphql_1.Field)(type => type_graphql_1.ID),
@@ -60,10 +61,9 @@ tslib_1.__decorate([
60
61
  (0, typeorm_1.RelationId)((constructionDetailType) => constructionDetailType.updater),
61
62
  tslib_1.__metadata("design:type", String)
62
63
  ], ConstructionDetailType.prototype, "updaterId", void 0);
63
- ConstructionDetailType = tslib_1.__decorate([
64
+ exports.ConstructionDetailType = ConstructionDetailType = tslib_1.__decorate([
64
65
  (0, typeorm_1.Entity)(),
65
66
  (0, typeorm_1.Index)('ix_construction_detail_type_0', (constructionDetailType) => [constructionDetailType.sequence]),
66
67
  (0, type_graphql_1.ObjectType)({ description: '세부 공종 타입' })
67
68
  ], ConstructionDetailType);
68
- exports.ConstructionDetailType = ConstructionDetailType;
69
69
  //# sourceMappingURL=construction-detail-type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"construction-detail-type.js","sourceRoot":"","sources":["../../../server/service/construction-detail-type/construction-detail-type.ts"],"names":[],"mappings":";;;;AAAA,qCAAkI;AAClI,+CAAyD;AAEzD,yDAAgD;AAChD,8EAAyE;AAKlE,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;CA0ClC,CAAA;AAzCC;IAAC,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;kDACC;AAEnB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAChD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACb;AAEb;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC1C,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACtB;AAGjB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,oCAAgB,CAAC;IACnC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACP,oCAAgB;gEAAA;AAEnC;IAAC,IAAA,oBAAU,EAAC,CAAC,sBAA8C,EAAE,EAAE,CAAC,sBAAsB,CAAC,gBAAgB,CAAC;;kEAC7E;AAE3B;IAAC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;yDAAA;AAEhB;IAAC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;yDAAA;AAEhB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAC9B,gBAAI;uDAAA;AAEd;IAAC,IAAA,oBAAU,EAAC,CAAC,sBAA8C,EAAE,EAAE,CAAC,sBAAsB,CAAC,OAAO,CAAC;;yDAC7E;AAElB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAC9B,gBAAI;uDAAA;AAEd;IAAC,IAAA,oBAAU,EAAC,CAAC,sBAA8C,EAAE,EAAE,CAAC,sBAAsB,CAAC,OAAO,CAAC;;yDAC7E;AAzCP,sBAAsB;IAHlC,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,+BAA+B,EAAE,CAAC,sBAA8C,EAAE,EAAE,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC7H,IAAA,yBAAU,EAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;GAC3B,sBAAsB,CA0ClC;AA1CY,wDAAsB","sourcesContent":["import { CreateDateColumn, UpdateDateColumn, Entity, Index, Column, RelationId, ManyToOne, PrimaryGeneratedColumn } from 'typeorm'\nimport { ObjectType, Field, ID, Int } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport { ConstructionType } from '../construction-type/construction-type'\n\n@Entity()\n@Index('ix_construction_detail_type_0', (constructionDetailType: ConstructionDetailType) => [constructionDetailType.sequence])\n@ObjectType({ description: '세부 공종 타입' })\nexport class ConstructionDetailType {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @Column({ nullable: false, comment: '세부 공종 이름' })\n @Field({ nullable: true })\n name?: string\n\n @Column({ nullable: true, comment: '시퀀스' })\n @Field(type => Int, { nullable: true })\n sequence?: number\n\n // 공종 타입 (상위 테이블 참조)\n @ManyToOne(type => ConstructionType)\n @Field({ nullable: true })\n constructionType?: ConstructionType\n\n @RelationId((constructionDetailType: ConstructionDetailType) => constructionDetailType.constructionType)\n constructionTypeId?: string\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((constructionDetailType: ConstructionDetailType) => constructionDetailType.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((constructionDetailType: ConstructionDetailType) => constructionDetailType.updater)\n updaterId?: string\n}\n"]}
1
+ {"version":3,"file":"construction-detail-type.js","sourceRoot":"","sources":["../../../server/service/construction-detail-type/construction-detail-type.ts"],"names":[],"mappings":";;;;AAAA,qCAAkI;AAClI,+CAAyD;AAEzD,yDAAgD;AAChD,8EAAyE;AAKlE,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;CA0ClC,CAAA;AA1CY,wDAAsB;AAGxB;IAFR,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;kDACC;AAInB;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAChD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACb;AAIb;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC1C,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACtB;AAKjB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,oCAAgB,CAAC;IACnC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACP,oCAAgB;gEAAA;AAGnC;IADC,IAAA,oBAAU,EAAC,CAAC,sBAA8C,EAAE,EAAE,CAAC,sBAAsB,CAAC,gBAAgB,CAAC;;kEAC7E;AAI3B;IAFC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;yDAAA;AAIhB;IAFC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;yDAAA;AAIhB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAC9B,gBAAI;uDAAA;AAGd;IADC,IAAA,oBAAU,EAAC,CAAC,sBAA8C,EAAE,EAAE,CAAC,sBAAsB,CAAC,OAAO,CAAC;;yDAC7E;AAIlB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAC9B,gBAAI;uDAAA;AAGd;IADC,IAAA,oBAAU,EAAC,CAAC,sBAA8C,EAAE,EAAE,CAAC,sBAAsB,CAAC,OAAO,CAAC;;yDAC7E;iCAzCP,sBAAsB;IAHlC,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,+BAA+B,EAAE,CAAC,sBAA8C,EAAE,EAAE,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC7H,IAAA,yBAAU,EAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;GAC3B,sBAAsB,CA0ClC","sourcesContent":["import { CreateDateColumn, UpdateDateColumn, Entity, Index, Column, RelationId, ManyToOne, PrimaryGeneratedColumn } from 'typeorm'\nimport { ObjectType, Field, ID, Int } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport { ConstructionType } from '../construction-type/construction-type'\n\n@Entity()\n@Index('ix_construction_detail_type_0', (constructionDetailType: ConstructionDetailType) => [constructionDetailType.sequence])\n@ObjectType({ description: '세부 공종 타입' })\nexport class ConstructionDetailType {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @Column({ nullable: false, comment: '세부 공종 이름' })\n @Field({ nullable: true })\n name?: string\n\n @Column({ nullable: true, comment: '시퀀스' })\n @Field(type => Int, { nullable: true })\n sequence?: number\n\n // 공종 타입 (상위 테이블 참조)\n @ManyToOne(type => ConstructionType)\n @Field({ nullable: true })\n constructionType?: ConstructionType\n\n @RelationId((constructionDetailType: ConstructionDetailType) => constructionDetailType.constructionType)\n constructionTypeId?: string\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((constructionDetailType: ConstructionDetailType) => constructionDetailType.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((constructionDetailType: ConstructionDetailType) => constructionDetailType.updater)\n updaterId?: string\n}\n"]}
@@ -39,6 +39,7 @@ let ConstructionTypeMutation = class ConstructionTypeMutation {
39
39
  return true;
40
40
  }
41
41
  };
42
+ exports.ConstructionTypeMutation = ConstructionTypeMutation;
42
43
  tslib_1.__decorate([
43
44
  (0, type_graphql_1.Directive)('@transaction'),
44
45
  (0, type_graphql_1.Mutation)(returns => [construction_type_1.ConstructionType], { description: "To modify multiple ConstructionTypes' information" }),
@@ -57,8 +58,7 @@ tslib_1.__decorate([
57
58
  tslib_1.__metadata("design:paramtypes", [Array, Object]),
58
59
  tslib_1.__metadata("design:returntype", Promise)
59
60
  ], ConstructionTypeMutation.prototype, "deleteConstructionTypes", null);
60
- ConstructionTypeMutation = tslib_1.__decorate([
61
+ exports.ConstructionTypeMutation = ConstructionTypeMutation = tslib_1.__decorate([
61
62
  (0, type_graphql_1.Resolver)(construction_type_1.ConstructionType)
62
63
  ], ConstructionTypeMutation);
63
- exports.ConstructionTypeMutation = ConstructionTypeMutation;
64
64
  //# sourceMappingURL=construction-type-mutation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"construction-type-mutation.js","sourceRoot":"","sources":["../../../server/service/construction-type/construction-type-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AACtE,qCAA4B;AAC5B,2DAAsD;AACtD,qEAAgE;AAGzD,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAG7B,AAAN,KAAK,CAAC,8BAA8B,CACe,OAAgC,EAC1E,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;QACzF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;QACzF,MAAM,oBAAoB,GAAG,EAAE,CAAC,aAAa,CAAC,oCAAgB,CAAC,CAAA;QAE/D,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;gBAEnC,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,IAAI,iCACzC,SAAS,KACZ,MAAM,EACN,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;gBAEF,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;aACzC;SACF;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9C,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;gBACtC,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAA;gBAEtF,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,IAAI,+CACzC,gBAAgB,GAChB,YAAY,KACf,OAAO,EAAE,IAAI,IACb,CAAA;gBAEF,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;aACzC;SACF;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAIK,AAAN,KAAK,CAAC,uBAAuB,CAA+B,GAAa,EAAS,OAAwB;QACxG,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,oCAAgB,CAAC,CAAC,UAAU,CAAC;YAClD,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC;SACZ,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AAxDO;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,oCAAgB,CAAC,EAAE,EAAE,WAAW,EAAE,mDAAmD,EAAE,CAAC;IAE3G,mBAAA,IAAA,kBAAG,EAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,8CAAqB,CAAC,CAAC,CAAA;IAC/C,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;8EAwCP;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,sCAAsC,EAAE,CAAC;IACvD,mBAAA,IAAA,kBAAG,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAAiB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;uEAShF;AA1DU,wBAAwB;IADpC,IAAA,uBAAQ,EAAC,oCAAgB,CAAC;GACd,wBAAwB,CA2DpC;AA3DY,4DAAwB","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\nimport { ConstructionType } from './construction-type'\nimport { ConstructionTypePatch } from './construction-type-type'\n\n@Resolver(ConstructionType)\nexport class ConstructionTypeMutation {\n @Directive('@transaction')\n @Mutation(returns => [ConstructionType], { description: \"To modify multiple ConstructionTypes' information\" })\n async updateMultipleConstructionType(\n @Arg('patches', type => [ConstructionTypePatch]) patches: ConstructionTypePatch[],\n @Ctx() context: ResolverContext\n ): Promise<ConstructionType[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const constructionTypeRepo = tx.getRepository(ConstructionType)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await constructionTypeRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const updateRecord = _updateRecords[i]\n const constructionType = await constructionTypeRepo.findOneBy({ id: updateRecord.id })\n\n const result = await constructionTypeRepo.save({\n ...constructionType,\n ...updateRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple ConstructionTypes' })\n async deleteConstructionTypes(@Arg('ids', type => [String]) ids: string[], @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(ConstructionType).softDelete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n return true\n }\n}\n"]}
1
+ {"version":3,"file":"construction-type-mutation.js","sourceRoot":"","sources":["../../../server/service/construction-type/construction-type-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\nimport { ConstructionType } from './construction-type'\nimport { ConstructionTypePatch } from './construction-type-type'\n\n@Resolver(ConstructionType)\nexport class ConstructionTypeMutation {\n @Directive('@transaction')\n @Mutation(returns => [ConstructionType], { description: \"To modify multiple ConstructionTypes' information\" })\n async updateMultipleConstructionType(\n @Arg('patches', type => [ConstructionTypePatch]) patches: ConstructionTypePatch[],\n @Ctx() context: ResolverContext\n ): Promise<ConstructionType[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const constructionTypeRepo = tx.getRepository(ConstructionType)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await constructionTypeRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const updateRecord = _updateRecords[i]\n const constructionType = await constructionTypeRepo.findOneBy({ id: updateRecord.id })\n\n const result = await constructionTypeRepo.save({\n ...constructionType,\n ...updateRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple ConstructionTypes' })\n async deleteConstructionTypes(@Arg('ids', type => [String]) ids: string[], @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(ConstructionType).softDelete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n return true\n }\n}\n"]}
@@ -41,6 +41,7 @@ let ConstructionTypeQuery = class ConstructionTypeQuery {
41
41
  return await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: constructionType.creatorId });
42
42
  }
43
43
  };
44
+ exports.ConstructionTypeQuery = ConstructionTypeQuery;
44
45
  tslib_1.__decorate([
45
46
  (0, type_graphql_1.Query)(returns => construction_type_1.ConstructionType, { nullable: true, description: 'To fetch a ConstructionType' }),
46
47
  tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
@@ -85,8 +86,7 @@ tslib_1.__decorate([
85
86
  tslib_1.__metadata("design:paramtypes", [construction_type_1.ConstructionType]),
86
87
  tslib_1.__metadata("design:returntype", Promise)
87
88
  ], ConstructionTypeQuery.prototype, "creator", null);
88
- ConstructionTypeQuery = tslib_1.__decorate([
89
+ exports.ConstructionTypeQuery = ConstructionTypeQuery = tslib_1.__decorate([
89
90
  (0, type_graphql_1.Resolver)(construction_type_1.ConstructionType)
90
91
  ], ConstructionTypeQuery);
91
- exports.ConstructionTypeQuery = ConstructionTypeQuery;
92
92
  //# sourceMappingURL=construction-type-query.js.map