@dssp/supervision 0.0.10 → 0.0.11

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 (36) hide show
  1. package/client/pages/building-inspection/building-inspection-detail-checklist.ts +42 -1
  2. package/client/pages/building-inspection/building-inspection-detail-drawing.ts +2 -2
  3. package/client/pages/checklist/checklist-view.ts +32 -12
  4. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.d.ts +1 -0
  5. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js +42 -1
  6. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js.map +1 -1
  7. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.js +2 -2
  8. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.js.map +1 -1
  9. package/dist-client/pages/checklist/checklist-view.js +40 -6
  10. package/dist-client/pages/checklist/checklist-view.js.map +1 -1
  11. package/dist-client/tsconfig.tsbuildinfo +1 -1
  12. package/dist-server/service/building-inspection/building-inspection-history.d.ts +1 -1
  13. package/dist-server/service/building-inspection/building-inspection-history.js +6 -6
  14. package/dist-server/service/building-inspection/building-inspection-history.js.map +1 -1
  15. package/dist-server/service/building-inspection/building-inspection-mutation.d.ts +3 -2
  16. package/dist-server/service/building-inspection/building-inspection-mutation.js +81 -2
  17. package/dist-server/service/building-inspection/building-inspection-mutation.js.map +1 -1
  18. package/dist-server/service/building-inspection/building-inspection-type.d.ts +18 -1
  19. package/dist-server/service/building-inspection/building-inspection-type.js +67 -7
  20. package/dist-server/service/building-inspection/building-inspection-type.js.map +1 -1
  21. package/dist-server/service/checklist/checklist-history.d.ts +2 -2
  22. package/dist-server/service/checklist/checklist-history.js +3 -3
  23. package/dist-server/service/checklist/checklist-history.js.map +1 -1
  24. package/dist-server/service/checklist/checklist.d.ts +2 -2
  25. package/dist-server/service/checklist/checklist.js +2 -2
  26. package/dist-server/service/checklist/checklist.js.map +1 -1
  27. package/dist-server/service/index.js +2 -1
  28. package/dist-server/service/index.js.map +1 -1
  29. package/dist-server/tsconfig.tsbuildinfo +1 -1
  30. package/package.json +4 -4
  31. package/server/service/building-inspection/building-inspection-history.ts +5 -5
  32. package/server/service/building-inspection/building-inspection-mutation.ts +95 -3
  33. package/server/service/building-inspection/building-inspection-type.ts +43 -2
  34. package/server/service/checklist/checklist-history.ts +3 -3
  35. package/server/service/checklist/checklist.ts +2 -2
  36. package/server/service/index.ts +3 -2
@@ -4,6 +4,7 @@ import { BuildingInspection, BuildingInspectionStatus } from './building-inspect
4
4
  import { BuildingLevel } from '@dssp/building-complex';
5
5
  export declare class BuildingInspectionHistory implements HistoryEntityInterface<BuildingInspection> {
6
6
  readonly id: string;
7
+ originalId: string;
7
8
  status?: BuildingInspectionStatus;
8
9
  buildingLevel?: BuildingLevel;
9
10
  buildingLevelId?: string;
@@ -12,6 +13,5 @@ export declare class BuildingInspectionHistory implements HistoryEntityInterface
12
13
  createdAt?: Date;
13
14
  creator?: User;
14
15
  creatorId?: string;
15
- originalId: string;
16
16
  action: HistoryActionType;
17
17
  }
@@ -18,6 +18,10 @@ tslib_1.__decorate([
18
18
  (0, type_graphql_1.Field)(type => type_graphql_1.ID),
19
19
  tslib_1.__metadata("design:type", String)
20
20
  ], BuildingInspectionHistory.prototype, "id", void 0);
21
+ tslib_1.__decorate([
22
+ (0, typeorm_history_1.HistoryOriginalIdColumn)(),
23
+ tslib_1.__metadata("design:type", String)
24
+ ], BuildingInspectionHistory.prototype, "originalId", void 0);
21
25
  tslib_1.__decorate([
22
26
  (0, typeorm_1.Column)({ nullable: false, comment: '상태(REQUEST: 요청, PASS: 합격, FAIL: 불합격)' }),
23
27
  (0, type_graphql_1.Field)({ nullable: true }),
@@ -29,7 +33,7 @@ tslib_1.__decorate([
29
33
  tslib_1.__metadata("design:type", building_complex_1.BuildingLevel)
30
34
  ], BuildingInspectionHistory.prototype, "buildingLevel", void 0);
31
35
  tslib_1.__decorate([
32
- (0, typeorm_1.RelationId)((buildingInspection) => buildingInspection.buildingLevel),
36
+ (0, typeorm_1.RelationId)((buildingInspectionHistory) => buildingInspectionHistory.buildingLevel),
33
37
  tslib_1.__metadata("design:type", String)
34
38
  ], BuildingInspectionHistory.prototype, "buildingLevelId", void 0);
35
39
  tslib_1.__decorate([
@@ -55,13 +59,9 @@ tslib_1.__decorate([
55
59
  tslib_1.__metadata("design:type", auth_base_1.User)
56
60
  ], BuildingInspectionHistory.prototype, "creator", void 0);
57
61
  tslib_1.__decorate([
58
- (0, typeorm_1.RelationId)((buildingInspection) => buildingInspection.creator),
62
+ (0, typeorm_1.RelationId)((buildingInspectionHistory) => buildingInspectionHistory.creator),
59
63
  tslib_1.__metadata("design:type", String)
60
64
  ], BuildingInspectionHistory.prototype, "creatorId", void 0);
61
- tslib_1.__decorate([
62
- (0, typeorm_history_1.HistoryOriginalIdColumn)(),
63
- tslib_1.__metadata("design:type", String)
64
- ], BuildingInspectionHistory.prototype, "originalId", void 0);
65
65
  tslib_1.__decorate([
66
66
  (0, typeorm_history_1.HistoryActionColumn)({
67
67
  nullable: false,
@@ -1 +1 @@
1
- {"version":3,"file":"building-inspection-history.js","sourceRoot":"","sources":["../../../server/service/building-inspection/building-inspection-history.ts"],"names":[],"mappings":";;;;AAAA,+CAAoD;AACpD,qCAA8F;AAE9F,8DAAkI;AAClI,yDAAgD;AAChD,6CAA4C;AAE5C,+DAAoF;AACpF,6DAAsD;AAEtD,MAAM,SAAS,GAAG,YAAM,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;AAC7C,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAA;AAO7B,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;CAmDrC,CAAA;AAlDC;IAAC,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;qDACC;AAEnB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC;IAC5E,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACO;AAGjC;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gCAAa,CAAC;IAChC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACV,gCAAa;gEAAA;AAE7B;IAAC,IAAA,oBAAU,EAAC,CAAC,kBAAsC,EAAE,EAAE,CAAC,kBAAkB,CAAC,aAAa,CAAC;;kEACjE;AAExB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC9C,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACZ,IAAI;IAElB,wBAAwB;;8DAFN;AAGlB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACzB,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;;8DAC7B;AAEnB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;4DAAA;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;0DAAA;AAEd;IAAC,IAAA,oBAAU,EAAC,CAAC,kBAAsC,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC;;4DACjE;AAElB;IAAC,IAAA,yCAAuB,GAAE;;6DACA;AAE1B;IAAC,IAAA,qCAAmB,EAAC;QACnB,QAAQ,EAAE,KAAK;QACf,IAAI,EACF,aAAa,IAAI,UAAU,IAAI,aAAa,IAAI,OAAO,IAAI,aAAa,IAAI,SAAS;YACnF,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,aAAa,IAAI,QAAQ;gBACzB,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,UAAU;QAClB,IAAI,EAAE,mCAAiB;KACxB,CAAC;;yDAC+B;AAlDtB,yBAAyB;IALrC,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,iCAAiC,EAAE,CAAC,yBAAoD,EAAE,EAAE,CAAC;QAClG,yBAAyB,CAAC,UAAU;KACrC,CAAC;IACD,IAAA,yBAAU,EAAC,EAAE,WAAW,EAAE,sCAAsC,EAAE,CAAC;GACvD,yBAAyB,CAmDrC;AAnDY,8DAAyB","sourcesContent":["import { Field, ID, ObjectType } from 'type-graphql'\nimport { Column, Entity, Index, ManyToOne, PrimaryGeneratedColumn, RelationId } from 'typeorm'\n\nimport { HistoryActionColumn, HistoryActionType, HistoryEntityInterface, HistoryOriginalIdColumn } from '@operato/typeorm-history'\nimport { User } from '@things-factory/auth-base'\nimport { config } from '@things-factory/env'\n\nimport { BuildingInspection, BuildingInspectionStatus } from './building-inspection'\nimport { BuildingLevel } from '@dssp/building-complex'\n\nconst ORMCONFIG = config.get('ormconfig', {})\nconst DATABASE_TYPE = ORMCONFIG.type\n\n@Entity()\n@Index('ix_buildingInspection_history_0', (buildingInspectionHistory: BuildingInspectionHistory) => [\n buildingInspectionHistory.originalId\n])\n@ObjectType({ description: 'History Entity of BuildingInspection' })\nexport class BuildingInspectionHistory implements HistoryEntityInterface<BuildingInspection> {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @Column({ nullable: false, comment: '상태(REQUEST: 요청, PASS: 합격, FAIL: 불합격)' })\n @Field({ nullable: true })\n status?: BuildingInspectionStatus\n\n // 층 정보 (1:1 테이블 참조)\n @ManyToOne(type => BuildingLevel)\n @Field({ nullable: true })\n buildingLevel?: BuildingLevel\n\n @RelationId((buildingInspection: BuildingInspection) => buildingInspection.buildingLevel)\n buildingLevelId?: string\n\n @Column({ nullable: false, comment: '검측 요청일' })\n @Field({ nullable: true })\n requestDate?: Date\n\n // 체크리스트 ID (1:1 테이블 참조)\n @Field({ nullable: true })\n @Column({ nullable: true, comment: '체크리스트 ID' })\n checklistId: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n createdAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((buildingInspection: BuildingInspection) => buildingInspection.creator)\n creatorId?: string\n\n @HistoryOriginalIdColumn()\n public originalId!: string\n\n @HistoryActionColumn({\n nullable: false,\n type:\n DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'\n ? 'enum'\n : DATABASE_TYPE == 'oracle'\n ? 'varchar2'\n : 'smallint',\n enum: HistoryActionType\n })\n public action!: HistoryActionType\n}\n"]}
1
+ {"version":3,"file":"building-inspection-history.js","sourceRoot":"","sources":["../../../server/service/building-inspection/building-inspection-history.ts"],"names":[],"mappings":";;;;AAAA,+CAAoD;AACpD,qCAA8F;AAE9F,8DAAkI;AAClI,yDAAgD;AAChD,6CAA4C;AAE5C,+DAAoF;AACpF,6DAAsD;AAEtD,MAAM,SAAS,GAAG,YAAM,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;AAC7C,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAA;AAO7B,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;CAmDrC,CAAA;AAlDC;IAAC,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;qDACC;AAEnB;IAAC,IAAA,yCAAuB,GAAE;;6DACA;AAE1B;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC;IAC5E,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACO;AAGjC;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gCAAa,CAAC;IAChC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACV,gCAAa;gEAAA;AAE7B;IAAC,IAAA,oBAAU,EAAC,CAAC,yBAAoD,EAAE,EAAE,CAAC,yBAAyB,CAAC,aAAa,CAAC;;kEACtF;AAExB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC9C,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACZ,IAAI;IAElB,wBAAwB;;8DAFN;AAGlB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACzB,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;;8DAC7B;AAEnB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;4DAAA;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;0DAAA;AAEd;IAAC,IAAA,oBAAU,EAAC,CAAC,yBAAoD,EAAE,EAAE,CAAC,yBAAyB,CAAC,OAAO,CAAC;;4DACtF;AAElB;IAAC,IAAA,qCAAmB,EAAC;QACnB,QAAQ,EAAE,KAAK;QACf,IAAI,EACF,aAAa,IAAI,UAAU,IAAI,aAAa,IAAI,OAAO,IAAI,aAAa,IAAI,SAAS;YACnF,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,aAAa,IAAI,QAAQ;gBACzB,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,UAAU;QAClB,IAAI,EAAE,mCAAiB;KACxB,CAAC;;yDAC+B;AAlDtB,yBAAyB;IALrC,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,iCAAiC,EAAE,CAAC,yBAAoD,EAAE,EAAE,CAAC;QAClG,yBAAyB,CAAC,UAAU;KACrC,CAAC;IACD,IAAA,yBAAU,EAAC,EAAE,WAAW,EAAE,sCAAsC,EAAE,CAAC;GACvD,yBAAyB,CAmDrC;AAnDY,8DAAyB","sourcesContent":["import { Field, ID, ObjectType } from 'type-graphql'\nimport { Column, Entity, Index, ManyToOne, PrimaryGeneratedColumn, RelationId } from 'typeorm'\n\nimport { HistoryActionColumn, HistoryActionType, HistoryEntityInterface, HistoryOriginalIdColumn } from '@operato/typeorm-history'\nimport { User } from '@things-factory/auth-base'\nimport { config } from '@things-factory/env'\n\nimport { BuildingInspection, BuildingInspectionStatus } from './building-inspection'\nimport { BuildingLevel } from '@dssp/building-complex'\n\nconst ORMCONFIG = config.get('ormconfig', {})\nconst DATABASE_TYPE = ORMCONFIG.type\n\n@Entity()\n@Index('ix_buildingInspection_history_0', (buildingInspectionHistory: BuildingInspectionHistory) => [\n buildingInspectionHistory.originalId\n])\n@ObjectType({ description: 'History Entity of BuildingInspection' })\nexport class BuildingInspectionHistory implements HistoryEntityInterface<BuildingInspection> {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @HistoryOriginalIdColumn()\n public originalId!: string\n\n @Column({ nullable: false, comment: '상태(REQUEST: 요청, PASS: 합격, FAIL: 불합격)' })\n @Field({ nullable: true })\n status?: BuildingInspectionStatus\n\n // 층 정보 (1:1 테이블 참조)\n @ManyToOne(type => BuildingLevel)\n @Field({ nullable: true })\n buildingLevel?: BuildingLevel\n\n @RelationId((buildingInspectionHistory: BuildingInspectionHistory) => buildingInspectionHistory.buildingLevel)\n buildingLevelId?: string\n\n @Column({ nullable: false, comment: '검측 요청일' })\n @Field({ nullable: true })\n requestDate?: Date\n\n // 체크리스트 ID (1:1 테이블 참조)\n @Field({ nullable: true })\n @Column({ nullable: true, comment: '체크리스트 ID' })\n checklistId: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n createdAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((buildingInspectionHistory: BuildingInspectionHistory) => buildingInspectionHistory.creator)\n creatorId?: string\n\n @HistoryActionColumn({\n nullable: false,\n type:\n DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'\n ? 'enum'\n : DATABASE_TYPE == 'oracle'\n ? 'varchar2'\n : 'smallint',\n enum: HistoryActionType\n })\n public action!: HistoryActionType\n}\n"]}
@@ -1,8 +1,9 @@
1
1
  import { BuildingInspection } from './building-inspection';
2
- import { NewBuildingInspection, UpdateBuildingInspection } from './building-inspection-type';
2
+ import { NewBuildingInspection, UpdateBuildingInspectionDrawingMarker, UpdateBuildingInspectionSubmitType } from './building-inspection-type';
3
3
  export declare class BuildingInspectionMutation {
4
4
  createBuildingInspection(patch: NewBuildingInspection, context: ResolverContext): Promise<BuildingInspection>;
5
- updateBuildingInspection(patch: UpdateBuildingInspection, context: ResolverContext): Promise<BuildingInspection>;
5
+ updateBuildingInspectionChecklist(buildingInspection: UpdateBuildingInspectionSubmitType, context: ResolverContext): Promise<boolean>;
6
+ updateBuildingInspection(patch: UpdateBuildingInspectionDrawingMarker, context: ResolverContext): Promise<BuildingInspection>;
6
7
  deleteBuildingInspections(ids: string[], context: ResolverContext): Promise<boolean>;
7
8
  getRecentDocumentNoByBuildingLevelId(buildingLevelId: string): Promise<string>;
8
9
  }
@@ -61,6 +61,76 @@ let BuildingInspectionMutation = class BuildingInspectionMutation {
61
61
  });
62
62
  return result;
63
63
  }
64
+ // 검측 상태 변경 & 체크리스트 갱신
65
+ async updateBuildingInspectionChecklist(buildingInspection, context) {
66
+ const { user, tx } = context.state;
67
+ const { id: buildingInspectionId, checklist, checklistItem } = buildingInspection;
68
+ const buildingInspectionRepo = tx.getRepository(building_inspection_1.BuildingInspection);
69
+ const checklistRepo = tx.getRepository(checklist_1.Checklist);
70
+ const checklistItemRepo = tx.getRepository(checklist_item_1.ChecklistItem);
71
+ const oldBuildingInspection = await buildingInspectionRepo.findOneBy({ id: buildingInspectionId });
72
+ const status = oldBuildingInspection.status;
73
+ const isConstructor = status == building_inspection_2.BuildingInspectionStatus.WAIT || status == building_inspection_2.BuildingInspectionStatus.FAIL;
74
+ let inspectionStatus = null;
75
+ // 1. 벨리데이션
76
+ if (!buildingInspectionId)
77
+ throw new Error('검측 아이디가 없습니다.');
78
+ if (!status)
79
+ throw new Error('검측 상태가 없습니다.');
80
+ if (status == building_inspection_2.BuildingInspectionStatus.PASS)
81
+ throw new Error('검측 상태가 수정할 수 있는 상태가 아닙니다.');
82
+ if (isConstructor) {
83
+ // 시공자 타입별 밸리데이션
84
+ if (checklistItem.length !== checklistItem.filter(v => v.constructionConfirmStatus).length) {
85
+ throw new Error('아이템을 모두 체크해야 합니다.');
86
+ }
87
+ if (!checklist.overallConstructorSignature)
88
+ throw new Error('총괄 시공책임자 사인이 없습니다.');
89
+ if (!checklist.taskConstructorSignature)
90
+ throw new Error('공종별 시공관리자 사인이 없습니다.');
91
+ // 시공자 상태 데이터
92
+ const isPassed = checklistItem.length === checklistItem.filter(v => v.constructionConfirmStatus === 'T').length;
93
+ inspectionStatus = isPassed ? building_inspection_2.BuildingInspectionStatus.REQUEST : building_inspection_2.BuildingInspectionStatus.FAIL;
94
+ // 시공자가 검측 요청시 검측자 사인은 초기화
95
+ if (inspectionStatus === building_inspection_2.BuildingInspectionStatus.REQUEST) {
96
+ checklist.overallSupervisorySignature = null;
97
+ checklist.taskSupervisorySignature = null;
98
+ }
99
+ }
100
+ else {
101
+ // 감리자 타입별 밸리데이션
102
+ if (checklistItem.length !== checklistItem.filter(v => v.supervisoryConfirmStatus).length) {
103
+ throw new Error('아이템을 모두 체크해야 합니다.');
104
+ }
105
+ if (!checklist.overallSupervisorySignature)
106
+ throw new Error('총괄 감리책임자 사인이 없습니다.');
107
+ if (!checklist.taskSupervisorySignature)
108
+ throw new Error('공종별 감리 책임자 사인이 없습니다.');
109
+ // 감리자 상태 데이터
110
+ const isPassed = checklistItem.length === checklistItem.filter(v => v.supervisoryConfirmStatus === 'T').length;
111
+ inspectionStatus = isPassed ? building_inspection_2.BuildingInspectionStatus.PASS : building_inspection_2.BuildingInspectionStatus.FAIL;
112
+ // 감리사가 검측 불합격으로 재검측 요청시 시공자 사인은 초기화
113
+ if (inspectionStatus === building_inspection_2.BuildingInspectionStatus.FAIL) {
114
+ checklist.overallConstructorSignature = null;
115
+ checklist.taskConstructorSignature = null;
116
+ }
117
+ }
118
+ // 2. buildingInspection 저장
119
+ await buildingInspectionRepo.save(Object.assign(Object.assign({}, oldBuildingInspection), { status: inspectionStatus, updater: user }));
120
+ // 3. checklist 저장
121
+ const oldChecklist = await checklistRepo.findOneBy({ id: checklist.id });
122
+ const inspectionDateField = isConstructor ? 'constructionInspectionDate' : 'supervisorInspectionDate';
123
+ await checklistRepo.save(Object.assign(Object.assign({}, oldChecklist), { [inspectionDateField]: new Date(), overallConstructorSignature: checklist.overallConstructorSignature, taskConstructorSignature: checklist.taskConstructorSignature, overallSupervisorySignature: checklist.overallSupervisorySignature, taskSupervisorySignature: checklist.taskSupervisorySignature, updater: user }));
124
+ // 4. checklistItem 저장
125
+ for (let item of checklistItem) {
126
+ const confirmStatusField = isConstructor ? 'constructionConfirmStatus' : 'supervisoryConfirmStatus';
127
+ await checklistItemRepo.update(item.id, {
128
+ [confirmStatusField]: item[confirmStatusField],
129
+ updater: user
130
+ });
131
+ }
132
+ return true;
133
+ }
64
134
  async updateBuildingInspection(patch, context) {
65
135
  const { user, tx } = context.state;
66
136
  const buildingInspectionRepo = tx.getRepository(building_inspection_1.BuildingInspection);
@@ -72,7 +142,7 @@ let BuildingInspectionMutation = class BuildingInspectionMutation {
72
142
  return result;
73
143
  }
74
144
  async deleteBuildingInspections(ids, context) {
75
- const { domain, tx } = context.state;
145
+ const { tx } = context.state;
76
146
  const buildingInspectionRepository = tx.getRepository(building_inspection_1.BuildingInspection);
77
147
  const checklistRepository = tx.getRepository(checklist_1.Checklist);
78
148
  const checklistItemRepository = tx.getRepository(checklist_item_1.ChecklistItem);
@@ -123,13 +193,22 @@ tslib_1.__decorate([
123
193
  tslib_1.__metadata("design:paramtypes", [building_inspection_type_1.NewBuildingInspection, Object]),
124
194
  tslib_1.__metadata("design:returntype", Promise)
125
195
  ], BuildingInspectionMutation.prototype, "createBuildingInspection", null);
196
+ tslib_1.__decorate([
197
+ (0, type_graphql_1.Directive)('@transaction'),
198
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To create Building Inspection And Checklist information' }),
199
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('buildingInspection')),
200
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
201
+ tslib_1.__metadata("design:type", Function),
202
+ tslib_1.__metadata("design:paramtypes", [building_inspection_type_1.UpdateBuildingInspectionSubmitType, Object]),
203
+ tslib_1.__metadata("design:returntype", Promise)
204
+ ], BuildingInspectionMutation.prototype, "updateBuildingInspectionChecklist", null);
126
205
  tslib_1.__decorate([
127
206
  (0, type_graphql_1.Directive)('@transaction'),
128
207
  (0, type_graphql_1.Mutation)(returns => building_inspection_1.BuildingInspection, { description: 'To update Building Inspection information' }),
129
208
  tslib_1.__param(0, (0, type_graphql_1.Arg)('patch')),
130
209
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
131
210
  tslib_1.__metadata("design:type", Function),
132
- tslib_1.__metadata("design:paramtypes", [building_inspection_type_1.UpdateBuildingInspection, Object]),
211
+ tslib_1.__metadata("design:paramtypes", [building_inspection_type_1.UpdateBuildingInspectionDrawingMarker, Object]),
133
212
  tslib_1.__metadata("design:returntype", Promise)
134
213
  ], BuildingInspectionMutation.prototype, "updateBuildingInspection", null);
135
214
  tslib_1.__decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"building-inspection-mutation.js","sourceRoot":"","sources":["../../../server/service/building-inspection/building-inspection-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\nimport { BuildingInspection } from './building-inspection'\nimport { NewBuildingInspection, UpdateBuildingInspection } from './building-inspection-type'\nimport { BuildingInspectionStatus } from './building-inspection'\nimport { Checklist } from '../checklist/checklist'\nimport { ChecklistItem } from '../checklist-item/checklist-item'\nimport { getRepository } from '@things-factory/shell'\nimport { BuildingLevel } from '@dssp/building-complex'\n\n@Resolver(BuildingInspection)\nexport class BuildingInspectionMutation {\n @Directive('@transaction')\n @Mutation(returns => BuildingInspection, { description: 'To create Building Inspection information' })\n async createBuildingInspection(\n @Arg('patch') patch: NewBuildingInspection,\n @Ctx() context: ResolverContext\n ): Promise<BuildingInspection> {\n const { user, tx } = context.state\n const { buildingLevelId, checklist, checklistItem } = patch\n const buildingInspectionRepository = tx.getRepository(BuildingInspection)\n const checklistRepository = tx.getRepository(Checklist)\n const checklistItemRepository = tx.getRepository(ChecklistItem)\n\n // 1. 벨리데이션\n if (!buildingLevelId) throw new Error('층 아이디가 없습니다.')\n if (!checklist.name) throw new Error('체크리스트 이름이 없습니다.')\n if (!checklist.constructionType) throw new Error('공종 타입이 없습니다.')\n if (!checklist.constructionDetailType) throw new Error('상세 공종 타입이 없습니다.')\n if (!checklist.location) throw new Error('위치가 없습니다.')\n if (!checklist.inspectionDrawingType) throw new Error('검측 도면 타입이 없습니다.')\n if (checklist.inspectionParts.length === 0) throw new Error('검측 부위가 없습니다.')\n if (checklistItem.length === 0) throw new Error('체크리스트 아이템이 없습니다.')\n\n // 2. checklist 저장\n const documentNo = await this.getRecentDocumentNoByBuildingLevelId(buildingLevelId)\n const savedChecklist = await checklistRepository.save({\n ...checklist,\n documentNo,\n creator: user,\n updater: user\n })\n\n // 3. checklistItem 저장\n const checklistItems = checklistItem.map((item, idx) => ({\n name: item.name,\n mainType: item.mainType,\n detailType: item.detailType,\n inspctionCriteria: item.inspctionCriteria,\n sequence: idx,\n checklist: savedChecklist,\n creator: user,\n updater: user\n }))\n await checklistItemRepository.save(checklistItems)\n\n // 4. buildingInspection 저장\n const result = await buildingInspectionRepository.save({\n status: BuildingInspectionStatus.WAIT,\n buildingLevel: { id: buildingLevelId },\n requestDate: new Date(),\n checklist: savedChecklist,\n creator: user,\n updater: user\n })\n\n return result\n }\n\n @Directive('@transaction')\n @Mutation(returns => BuildingInspection, { description: 'To update Building Inspection information' })\n async updateBuildingInspection(\n @Arg('patch') patch: UpdateBuildingInspection,\n @Ctx() context: ResolverContext\n ): Promise<BuildingInspection> {\n const { user, tx } = context.state\n const buildingInspectionRepo = tx.getRepository(BuildingInspection)\n\n // 벨리데이션\n if (!patch.id) throw new Error('검측 아이디가 없습니다.')\n\n const buildingInspection = await buildingInspectionRepo.findOneBy({ id: patch.id })\n const result = await buildingInspectionRepo.save({\n ...buildingInspection,\n ...patch,\n updater: user\n })\n\n return result\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple Checklists' })\n async deleteBuildingInspections(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n const buildingInspectionRepository = tx.getRepository(BuildingInspection)\n const checklistRepository = tx.getRepository(Checklist)\n const checklistItemRepository = tx.getRepository(ChecklistItem)\n\n // 검측 데이터 제거\n const buildingInspections = await buildingInspectionRepository.createQueryBuilder('bi').whereInIds(ids).getMany()\n await buildingInspectionRepository.softDelete({\n id: In(ids)\n })\n\n // 검측 데이터의 체크 리스트 제거\n const checklistIds = buildingInspections.map(bi => bi.checklistId)\n await checklistRepository.softDelete({\n id: In(checklistIds)\n })\n\n // 검측 데이터의 체크 리스트 아이템 제거\n await checklistItemRepository\n .createQueryBuilder()\n .softDelete()\n .where('checklist_id IN (:...checklistIds)', { checklistIds })\n .execute()\n\n return true\n }\n\n async getRecentDocumentNoByBuildingLevelId(buildingLevelId: string): Promise<string> {\n const buildingLevel = await getRepository(BuildingLevel).findOne({\n where: { id: buildingLevelId },\n relations: ['building']\n })\n\n const buildingName = buildingLevel.building.name.match(/\\d+/g).join('').padStart(4, '0')\n const floorName = buildingLevel.floor.toString().padStart(3, '0')\n const latestChecklist = await getRepository(Checklist)\n .createQueryBuilder('c')\n .where('c.document_no LIKE :pattern', { pattern: `${buildingName}-${floorName}-%` })\n .orderBy('c.created_at', 'DESC')\n .getOne()\n\n let documentNo = '000001'\n if (latestChecklist) {\n const lastNo = latestChecklist.documentNo.split('-')[2]\n documentNo = (Number(lastNo) + 1).toString().padStart(6, '0')\n }\n\n return `${buildingName}-${floorName}-${documentNo}`\n }\n}\n"]}
1
+ {"version":3,"file":"building-inspection-mutation.js","sourceRoot":"","sources":["../../../server/service/building-inspection/building-inspection-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\nimport { BuildingInspection } from './building-inspection'\nimport {\n NewBuildingInspection,\n UpdateBuildingInspectionDrawingMarker,\n UpdateBuildingInspectionSubmitType\n} from './building-inspection-type'\nimport { BuildingInspectionStatus } from './building-inspection'\nimport { Checklist } from '../checklist/checklist'\nimport { ChecklistItem } from '../checklist-item/checklist-item'\nimport { getRepository } from '@things-factory/shell'\nimport { BuildingLevel } from '@dssp/building-complex'\n\n@Resolver(BuildingInspection)\nexport class BuildingInspectionMutation {\n @Directive('@transaction')\n @Mutation(returns => BuildingInspection, { description: 'To create Building Inspection information' })\n async createBuildingInspection(\n @Arg('patch') patch: NewBuildingInspection,\n @Ctx() context: ResolverContext\n ): Promise<BuildingInspection> {\n const { user, tx } = context.state\n const { buildingLevelId, checklist, checklistItem } = patch\n const buildingInspectionRepository = tx.getRepository(BuildingInspection)\n const checklistRepository = tx.getRepository(Checklist)\n const checklistItemRepository = tx.getRepository(ChecklistItem)\n\n // 1. 벨리데이션\n if (!buildingLevelId) throw new Error('층 아이디가 없습니다.')\n if (!checklist.name) throw new Error('체크리스트 이름이 없습니다.')\n if (!checklist.constructionType) throw new Error('공종 타입이 없습니다.')\n if (!checklist.constructionDetailType) throw new Error('상세 공종 타입이 없습니다.')\n if (!checklist.location) throw new Error('위치가 없습니다.')\n if (!checklist.inspectionDrawingType) throw new Error('검측 도면 타입이 없습니다.')\n if (checklist.inspectionParts.length === 0) throw new Error('검측 부위가 없습니다.')\n if (checklistItem.length === 0) throw new Error('체크리스트 아이템이 없습니다.')\n\n // 2. checklist 저장\n const documentNo = await this.getRecentDocumentNoByBuildingLevelId(buildingLevelId)\n const savedChecklist = await checklistRepository.save({\n ...checklist,\n documentNo,\n creator: user,\n updater: user\n })\n\n // 3. checklistItem 저장\n const checklistItems = checklistItem.map((item, idx) => ({\n name: item.name,\n mainType: item.mainType,\n detailType: item.detailType,\n inspctionCriteria: item.inspctionCriteria,\n sequence: idx,\n checklist: savedChecklist,\n creator: user,\n updater: user\n }))\n await checklistItemRepository.save(checklistItems)\n\n // 4. buildingInspection 저장\n const result = await buildingInspectionRepository.save({\n status: BuildingInspectionStatus.WAIT,\n buildingLevel: { id: buildingLevelId },\n requestDate: new Date(),\n checklist: savedChecklist,\n creator: user,\n updater: user\n })\n\n return result\n }\n\n // 검측 상태 변경 & 체크리스트 갱신\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To create Building Inspection And Checklist information' })\n async updateBuildingInspectionChecklist(\n @Arg('buildingInspection') buildingInspection: UpdateBuildingInspectionSubmitType,\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { user, tx } = context.state\n const { id: buildingInspectionId, checklist, checklistItem } = buildingInspection\n const buildingInspectionRepo = tx.getRepository(BuildingInspection)\n const checklistRepo = tx.getRepository(Checklist)\n const checklistItemRepo = tx.getRepository(ChecklistItem)\n const oldBuildingInspection = await buildingInspectionRepo.findOneBy({ id: buildingInspectionId })\n const status = oldBuildingInspection.status\n const isConstructor: boolean = status == BuildingInspectionStatus.WAIT || status == BuildingInspectionStatus.FAIL\n let inspectionStatus = null\n\n // 1. 벨리데이션\n if (!buildingInspectionId) throw new Error('검측 아이디가 없습니다.')\n if (!status) throw new Error('검측 상태가 없습니다.')\n if (status == BuildingInspectionStatus.PASS) throw new Error('검측 상태가 수정할 수 있는 상태가 아닙니다.')\n\n if (isConstructor) {\n // 시공자 타입별 밸리데이션\n if (checklistItem.length !== checklistItem.filter(v => v.constructionConfirmStatus).length) {\n throw new Error('아이템을 모두 체크해야 합니다.')\n }\n if (!checklist.overallConstructorSignature) throw new Error('총괄 시공책임자 사인이 없습니다.')\n if (!checklist.taskConstructorSignature) throw new Error('공종별 시공관리자\t사인이 없습니다.')\n\n // 시공자 상태 데이터\n const isPassed = checklistItem.length === checklistItem.filter(v => v.constructionConfirmStatus === 'T').length\n inspectionStatus = isPassed ? BuildingInspectionStatus.REQUEST : BuildingInspectionStatus.FAIL\n // 시공자가 검측 요청시 검측자 사인은 초기화\n if (inspectionStatus === BuildingInspectionStatus.REQUEST) {\n checklist.overallSupervisorySignature = null\n checklist.taskSupervisorySignature = null\n }\n } else {\n // 감리자 타입별 밸리데이션\n if (checklistItem.length !== checklistItem.filter(v => v.supervisoryConfirmStatus).length) {\n throw new Error('아이템을 모두 체크해야 합니다.')\n }\n if (!checklist.overallSupervisorySignature) throw new Error('총괄 감리책임자 사인이 없습니다.')\n if (!checklist.taskSupervisorySignature) throw new Error('공종별 감리 책임자 사인이 없습니다.')\n\n // 감리자 상태 데이터\n const isPassed = checklistItem.length === checklistItem.filter(v => v.supervisoryConfirmStatus === 'T').length\n inspectionStatus = isPassed ? BuildingInspectionStatus.PASS : BuildingInspectionStatus.FAIL\n // 감리사가 검측 불합격으로 재검측 요청시 시공자 사인은 초기화\n if (inspectionStatus === BuildingInspectionStatus.FAIL) {\n checklist.overallConstructorSignature = null\n checklist.taskConstructorSignature = null\n }\n }\n\n // 2. buildingInspection 저장\n await buildingInspectionRepo.save({\n ...oldBuildingInspection,\n status: inspectionStatus,\n updater: user\n })\n\n // 3. checklist 저장\n const oldChecklist = await checklistRepo.findOneBy({ id: checklist.id })\n const inspectionDateField = isConstructor ? 'constructionInspectionDate' : 'supervisorInspectionDate'\n await checklistRepo.save({\n ...oldChecklist,\n [inspectionDateField]: new Date(),\n overallConstructorSignature: checklist.overallConstructorSignature,\n taskConstructorSignature: checklist.taskConstructorSignature,\n overallSupervisorySignature: checklist.overallSupervisorySignature,\n taskSupervisorySignature: checklist.taskSupervisorySignature,\n updater: user\n })\n\n // 4. checklistItem 저장\n for (let item of checklistItem) {\n const confirmStatusField = isConstructor ? 'constructionConfirmStatus' : 'supervisoryConfirmStatus'\n await checklistItemRepo.update(item.id, {\n [confirmStatusField]: item[confirmStatusField],\n updater: user\n })\n }\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => BuildingInspection, { description: 'To update Building Inspection information' })\n async updateBuildingInspection(\n @Arg('patch') patch: UpdateBuildingInspectionDrawingMarker,\n @Ctx() context: ResolverContext\n ): Promise<BuildingInspection> {\n const { user, tx } = context.state\n const buildingInspectionRepo = tx.getRepository(BuildingInspection)\n\n // 벨리데이션\n if (!patch.id) throw new Error('검측 아이디가 없습니다.')\n\n const buildingInspection = await buildingInspectionRepo.findOneBy({ id: patch.id })\n const result = await buildingInspectionRepo.save({\n ...buildingInspection,\n ...patch,\n updater: user\n })\n\n return result\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple Checklists' })\n async deleteBuildingInspections(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { tx } = context.state\n const buildingInspectionRepository = tx.getRepository(BuildingInspection)\n const checklistRepository = tx.getRepository(Checklist)\n const checklistItemRepository = tx.getRepository(ChecklistItem)\n\n // 검측 데이터 제거\n const buildingInspections = await buildingInspectionRepository.createQueryBuilder('bi').whereInIds(ids).getMany()\n await buildingInspectionRepository.softDelete({\n id: In(ids)\n })\n\n // 검측 데이터의 체크 리스트 제거\n const checklistIds = buildingInspections.map(bi => bi.checklistId)\n await checklistRepository.softDelete({\n id: In(checklistIds)\n })\n\n // 검측 데이터의 체크 리스트 아이템 제거\n await checklistItemRepository\n .createQueryBuilder()\n .softDelete()\n .where('checklist_id IN (:...checklistIds)', { checklistIds })\n .execute()\n\n return true\n }\n\n async getRecentDocumentNoByBuildingLevelId(buildingLevelId: string): Promise<string> {\n const buildingLevel = await getRepository(BuildingLevel).findOne({\n where: { id: buildingLevelId },\n relations: ['building']\n })\n\n const buildingName = buildingLevel.building.name.match(/\\d+/g).join('').padStart(4, '0')\n const floorName = buildingLevel.floor.toString().padStart(3, '0')\n const latestChecklist = await getRepository(Checklist)\n .createQueryBuilder('c')\n .where('c.document_no LIKE :pattern', { pattern: `${buildingName}-${floorName}-%` })\n .orderBy('c.created_at', 'DESC')\n .getOne()\n\n let documentNo = '000001'\n if (latestChecklist) {\n const lastNo = latestChecklist.documentNo.split('-')[2]\n documentNo = (Number(lastNo) + 1).toString().padStart(6, '0')\n }\n\n return `${buildingName}-${floorName}-${documentNo}`\n }\n}\n"]}
@@ -18,7 +18,24 @@ export declare class NewBuildingInspection {
18
18
  checklist: ChecklistInputType;
19
19
  checklistItem: ChecklistItemInputType[];
20
20
  }
21
- export declare class UpdateBuildingInspection {
21
+ declare class ChecklistSubmitInputType {
22
+ id: string;
23
+ overallConstructorSignature?: string;
24
+ taskConstructorSignature?: string;
25
+ overallSupervisorySignature?: string;
26
+ taskSupervisorySignature?: string;
27
+ }
28
+ declare class ChecklistItemSubmitInputType {
29
+ id: string;
30
+ constructionConfirmStatus?: string;
31
+ supervisoryConfirmStatus?: string;
32
+ }
33
+ export declare class UpdateBuildingInspectionSubmitType {
34
+ id: string;
35
+ checklist: ChecklistSubmitInputType;
36
+ checklistItem: ChecklistItemSubmitInputType[];
37
+ }
38
+ export declare class UpdateBuildingInspectionDrawingMarker {
22
39
  id: string;
23
40
  drawingMarker?: string;
24
41
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BuildingInspectionList = exports.BuildingInspectionSummary = exports.BuildingInspectionsOfBuildingLevel = exports.BuildingInspectionsOfProject = exports.UpdateBuildingInspection = exports.NewBuildingInspection = void 0;
3
+ exports.BuildingInspectionList = exports.BuildingInspectionSummary = exports.BuildingInspectionsOfBuildingLevel = exports.BuildingInspectionsOfProject = exports.UpdateBuildingInspectionDrawingMarker = exports.UpdateBuildingInspectionSubmitType = exports.NewBuildingInspection = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const type_graphql_1 = require("type-graphql");
6
6
  const building_inspection_1 = require("./building-inspection");
@@ -72,20 +72,80 @@ NewBuildingInspection = tslib_1.__decorate([
72
72
  (0, type_graphql_1.InputType)()
73
73
  ], NewBuildingInspection);
74
74
  exports.NewBuildingInspection = NewBuildingInspection;
75
- let UpdateBuildingInspection = class UpdateBuildingInspection {
75
+ let ChecklistSubmitInputType = class ChecklistSubmitInputType {
76
76
  };
77
77
  tslib_1.__decorate([
78
78
  (0, type_graphql_1.Field)({ nullable: false }),
79
79
  tslib_1.__metadata("design:type", String)
80
- ], UpdateBuildingInspection.prototype, "id", void 0);
80
+ ], ChecklistSubmitInputType.prototype, "id", void 0);
81
+ tslib_1.__decorate([
82
+ (0, type_graphql_1.Field)({ nullable: true }),
83
+ tslib_1.__metadata("design:type", String)
84
+ ], ChecklistSubmitInputType.prototype, "overallConstructorSignature", void 0);
85
+ tslib_1.__decorate([
86
+ (0, type_graphql_1.Field)({ nullable: true }),
87
+ tslib_1.__metadata("design:type", String)
88
+ ], ChecklistSubmitInputType.prototype, "taskConstructorSignature", void 0);
89
+ tslib_1.__decorate([
90
+ (0, type_graphql_1.Field)({ nullable: true }),
91
+ tslib_1.__metadata("design:type", String)
92
+ ], ChecklistSubmitInputType.prototype, "overallSupervisorySignature", void 0);
93
+ tslib_1.__decorate([
94
+ (0, type_graphql_1.Field)({ nullable: true }),
95
+ tslib_1.__metadata("design:type", String)
96
+ ], ChecklistSubmitInputType.prototype, "taskSupervisorySignature", void 0);
97
+ ChecklistSubmitInputType = tslib_1.__decorate([
98
+ (0, type_graphql_1.InputType)()
99
+ ], ChecklistSubmitInputType);
100
+ let ChecklistItemSubmitInputType = class ChecklistItemSubmitInputType {
101
+ };
102
+ tslib_1.__decorate([
103
+ (0, type_graphql_1.Field)({ nullable: false }),
104
+ tslib_1.__metadata("design:type", String)
105
+ ], ChecklistItemSubmitInputType.prototype, "id", void 0);
106
+ tslib_1.__decorate([
107
+ (0, type_graphql_1.Field)({ nullable: true }),
108
+ tslib_1.__metadata("design:type", String)
109
+ ], ChecklistItemSubmitInputType.prototype, "constructionConfirmStatus", void 0);
110
+ tslib_1.__decorate([
111
+ (0, type_graphql_1.Field)({ nullable: true }),
112
+ tslib_1.__metadata("design:type", String)
113
+ ], ChecklistItemSubmitInputType.prototype, "supervisoryConfirmStatus", void 0);
114
+ ChecklistItemSubmitInputType = tslib_1.__decorate([
115
+ (0, type_graphql_1.InputType)()
116
+ ], ChecklistItemSubmitInputType);
117
+ let UpdateBuildingInspectionSubmitType = class UpdateBuildingInspectionSubmitType {
118
+ };
119
+ tslib_1.__decorate([
120
+ (0, type_graphql_1.Field)({ nullable: false }),
121
+ tslib_1.__metadata("design:type", String)
122
+ ], UpdateBuildingInspectionSubmitType.prototype, "id", void 0);
123
+ tslib_1.__decorate([
124
+ (0, type_graphql_1.Field)(type => ChecklistSubmitInputType, { nullable: false }),
125
+ tslib_1.__metadata("design:type", ChecklistSubmitInputType)
126
+ ], UpdateBuildingInspectionSubmitType.prototype, "checklist", void 0);
127
+ tslib_1.__decorate([
128
+ (0, type_graphql_1.Field)(type => [ChecklistItemSubmitInputType], { nullable: false }),
129
+ tslib_1.__metadata("design:type", Array)
130
+ ], UpdateBuildingInspectionSubmitType.prototype, "checklistItem", void 0);
131
+ UpdateBuildingInspectionSubmitType = tslib_1.__decorate([
132
+ (0, type_graphql_1.InputType)()
133
+ ], UpdateBuildingInspectionSubmitType);
134
+ exports.UpdateBuildingInspectionSubmitType = UpdateBuildingInspectionSubmitType;
135
+ let UpdateBuildingInspectionDrawingMarker = class UpdateBuildingInspectionDrawingMarker {
136
+ };
137
+ tslib_1.__decorate([
138
+ (0, type_graphql_1.Field)({ nullable: false }),
139
+ tslib_1.__metadata("design:type", String)
140
+ ], UpdateBuildingInspectionDrawingMarker.prototype, "id", void 0);
81
141
  tslib_1.__decorate([
82
142
  (0, type_graphql_1.Field)(type => String, { nullable: true }),
83
143
  tslib_1.__metadata("design:type", String)
84
- ], UpdateBuildingInspection.prototype, "drawingMarker", void 0);
85
- UpdateBuildingInspection = tslib_1.__decorate([
144
+ ], UpdateBuildingInspectionDrawingMarker.prototype, "drawingMarker", void 0);
145
+ UpdateBuildingInspectionDrawingMarker = tslib_1.__decorate([
86
146
  (0, type_graphql_1.InputType)()
87
- ], UpdateBuildingInspection);
88
- exports.UpdateBuildingInspection = UpdateBuildingInspection;
147
+ ], UpdateBuildingInspectionDrawingMarker);
148
+ exports.UpdateBuildingInspectionDrawingMarker = UpdateBuildingInspectionDrawingMarker;
89
149
  let BuildingInspectionsOfProject = class BuildingInspectionsOfProject {
90
150
  };
91
151
  tslib_1.__decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"building-inspection-type.js","sourceRoot":"","sources":["../../../server/service/building-inspection/building-inspection-type.ts"],"names":[],"mappings":"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","sourcesContent":["import { ObjectType, Field, InputType, Int, ID } from 'type-graphql'\nimport { BuildingInspection } from './building-inspection'\n\n@InputType()\nclass ChecklistInputType {\n @Field({ nullable: false })\n name: string\n\n @Field({ nullable: false })\n constructionType: string\n\n @Field({ nullable: false })\n constructionDetailType: string\n\n @Field({ nullable: false })\n location?: string\n\n @Field({ nullable: false })\n inspectionDrawingType?: string\n\n @Field(type => [String], { nullable: false })\n inspectionParts?: string[]\n}\n\n@InputType()\nclass ChecklistItemInputType {\n @Field({ nullable: false })\n name: string\n\n @Field({ nullable: false })\n mainType: string\n\n @Field({ nullable: false })\n detailType: string\n\n @Field({ nullable: true })\n inspctionCriteria: string\n}\n\n@InputType()\nexport class NewBuildingInspection {\n @Field({ nullable: false })\n buildingLevelId: string\n\n @Field(type => ChecklistInputType, { nullable: false })\n checklist: ChecklistInputType\n\n @Field(type => [ChecklistItemInputType], { nullable: false })\n checklistItem: ChecklistItemInputType[]\n}\n\n@InputType()\nexport class UpdateBuildingInspection {\n @Field({ nullable: false })\n id: string\n\n @Field(type => String, { nullable: true })\n drawingMarker?: string\n}\n\n@InputType()\nexport class BuildingInspectionsOfProject {\n @Field({ nullable: false })\n projectId: string\n\n @Field({ nullable: true })\n limit: number\n}\n\n@InputType()\nexport class BuildingInspectionsOfBuildingLevel {\n @Field({ nullable: false })\n buildingLevelId: string\n\n @Field({ nullable: true })\n limit: number\n}\n\n@ObjectType()\nexport class BuildingInspectionSummary {\n @Field(type => Int, { description: '검측 대기 수' })\n wait: number\n\n @Field(type => Int, { description: '검측 요청 수' })\n request: number\n\n @Field(type => Int, { description: '검측 통과 수' })\n pass: number\n\n @Field(type => Int, { description: '검측 실패 수' })\n fail: number\n}\n\n@ObjectType()\nexport class BuildingInspectionList {\n @Field(type => [BuildingInspection])\n items: BuildingInspection[]\n\n @Field(type => Int)\n total: number\n}\n"]}
1
+ {"version":3,"file":"building-inspection-type.js","sourceRoot":"","sources":["../../../server/service/building-inspection/building-inspection-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAoE;AACpE,+DAAoF;AAGpF,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;CAkBvB,CAAA;AAjBC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;gDACf;AAEZ;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;4DACH;AAExB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;kEACG;AAE9B;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;oDACV;AAEjB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;iEACG;AAE9B;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;2DACnB;AAjBtB,kBAAkB;IADvB,IAAA,wBAAS,GAAE;GACN,kBAAkB,CAkBvB;AAGD,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;CAY3B,CAAA;AAXC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;oDACf;AAEZ;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;wDACX;AAEhB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;0DACT;AAElB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iEACD;AAXrB,sBAAsB;IAD3B,IAAA,wBAAS,GAAE;GACN,sBAAsB,CAY3B;AAGM,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;CASjC,CAAA;AARC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;8DACJ;AAEvB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;sCAC5C,kBAAkB;wDAAA;AAE7B;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;4DACtB;AAR5B,qBAAqB;IADjC,IAAA,wBAAS,GAAE;GACC,qBAAqB,CASjC;AATY,sDAAqB;AAYlC,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;CAe7B,CAAA;AAdC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;oDACjB;AAEV;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6EACU;AAEpC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0EACO;AAEjC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6EACU;AAEpC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0EACO;AAd7B,wBAAwB;IAD7B,IAAA,wBAAS,GAAE;GACN,wBAAwB,CAe7B;AAGD,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;CASjC,CAAA;AARC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;wDACjB;AAEV;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+EACQ;AAElC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8EACO;AAR7B,4BAA4B;IADjC,IAAA,wBAAS,GAAE;GACN,4BAA4B,CASjC;AAGM,IAAM,kCAAkC,GAAxC,MAAM,kCAAkC;CAS9C,CAAA;AARC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;8DACjB;AAEV;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;sCAClD,wBAAwB;qEAAA;AAEnC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,4BAA4B,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;yEACtB;AARlC,kCAAkC;IAD9C,IAAA,wBAAS,GAAE;GACC,kCAAkC,CAS9C;AATY,gFAAkC;AAWxC,IAAM,qCAAqC,GAA3C,MAAM,qCAAqC;CAMjD,CAAA;AALC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;iEACjB;AAEV;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4EACpB;AALX,qCAAqC;IADjD,IAAA,wBAAS,GAAE;GACC,qCAAqC,CAMjD;AANY,sFAAqC;AAS3C,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;CAMxC,CAAA;AALC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;+DACV;AAEjB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2DACb;AALF,4BAA4B;IADxC,IAAA,wBAAS,GAAE;GACC,4BAA4B,CAMxC;AANY,oEAA4B;AASlC,IAAM,kCAAkC,GAAxC,MAAM,kCAAkC;CAM9C,CAAA;AALC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;2EACJ;AAEvB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iEACb;AALF,kCAAkC;IAD9C,IAAA,wBAAS,GAAE;GACC,kCAAkC,CAM9C;AANY,gFAAkC;AASxC,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;CAYrC,CAAA;AAXC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;;uDACnC;AAEZ;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;;0DAChC;AAEf;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;;uDACnC;AAEZ;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;;uDACnC;AAXD,yBAAyB;IADrC,IAAA,yBAAU,GAAE;GACA,yBAAyB,CAYrC;AAZY,8DAAyB;AAe/B,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;CAMlC,CAAA;AALC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,wCAAkB,CAAC,CAAC;;qDACT;AAE3B;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;qDACN;AALF,sBAAsB;IADlC,IAAA,yBAAU,GAAE;GACA,sBAAsB,CAMlC;AANY,wDAAsB","sourcesContent":["import { ObjectType, Field, InputType, Int, ID } from 'type-graphql'\nimport { BuildingInspection, BuildingInspectionStatus } from './building-inspection'\n\n@InputType()\nclass ChecklistInputType {\n @Field({ nullable: false })\n name: string\n\n @Field({ nullable: false })\n constructionType: string\n\n @Field({ nullable: false })\n constructionDetailType: string\n\n @Field({ nullable: false })\n location?: string\n\n @Field({ nullable: false })\n inspectionDrawingType?: string\n\n @Field(type => [String], { nullable: false })\n inspectionParts?: string[]\n}\n\n@InputType()\nclass ChecklistItemInputType {\n @Field({ nullable: false })\n name: string\n\n @Field({ nullable: false })\n mainType: string\n\n @Field({ nullable: false })\n detailType: string\n\n @Field({ nullable: true })\n inspctionCriteria: string\n}\n\n@InputType()\nexport class NewBuildingInspection {\n @Field({ nullable: false })\n buildingLevelId: string\n\n @Field(type => ChecklistInputType, { nullable: false })\n checklist: ChecklistInputType\n\n @Field(type => [ChecklistItemInputType], { nullable: false })\n checklistItem: ChecklistItemInputType[]\n}\n\n@InputType()\nclass ChecklistSubmitInputType {\n @Field({ nullable: false })\n id: string\n\n @Field({ nullable: true })\n overallConstructorSignature?: string\n\n @Field({ nullable: true })\n taskConstructorSignature?: string\n\n @Field({ nullable: true })\n overallSupervisorySignature?: string\n\n @Field({ nullable: true })\n taskSupervisorySignature?: string\n}\n\n@InputType()\nclass ChecklistItemSubmitInputType {\n @Field({ nullable: false })\n id: string\n\n @Field({ nullable: true })\n constructionConfirmStatus?: string\n\n @Field({ nullable: true })\n supervisoryConfirmStatus?: string\n}\n\n@InputType()\nexport class UpdateBuildingInspectionSubmitType {\n @Field({ nullable: false })\n id: string\n\n @Field(type => ChecklistSubmitInputType, { nullable: false })\n checklist: ChecklistSubmitInputType\n\n @Field(type => [ChecklistItemSubmitInputType], { nullable: false })\n checklistItem: ChecklistItemSubmitInputType[]\n}\n@InputType()\nexport class UpdateBuildingInspectionDrawingMarker {\n @Field({ nullable: false })\n id: string\n\n @Field(type => String, { nullable: true })\n drawingMarker?: string\n}\n\n@InputType()\nexport class BuildingInspectionsOfProject {\n @Field({ nullable: false })\n projectId: string\n\n @Field({ nullable: true })\n limit: number\n}\n\n@InputType()\nexport class BuildingInspectionsOfBuildingLevel {\n @Field({ nullable: false })\n buildingLevelId: string\n\n @Field({ nullable: true })\n limit: number\n}\n\n@ObjectType()\nexport class BuildingInspectionSummary {\n @Field(type => Int, { description: '검측 대기 수' })\n wait: number\n\n @Field(type => Int, { description: '검측 요청 수' })\n request: number\n\n @Field(type => Int, { description: '검측 통과 수' })\n pass: number\n\n @Field(type => Int, { description: '검측 실패 수' })\n fail: number\n}\n\n@ObjectType()\nexport class BuildingInspectionList {\n @Field(type => [BuildingInspection])\n items: BuildingInspection[]\n\n @Field(type => Int)\n total: number\n}\n"]}
@@ -10,8 +10,8 @@ export declare class ChecklistHistory implements HistoryEntityInterface<Checklis
10
10
  location?: string;
11
11
  inspectionDrawingType?: string;
12
12
  inspectionParts?: string[];
13
- constructionInsprctionDate?: Date;
14
- supervisorInsprctionDate?: Date;
13
+ constructionInspectionDate?: Date;
14
+ supervisorInspectionDate?: Date;
15
15
  overallConstructorSignature?: string;
16
16
  taskConstructorSignature?: string;
17
17
  overallSupervisorySignature?: string;
@@ -55,12 +55,12 @@ tslib_1.__decorate([
55
55
  (0, typeorm_1.Column)({ nullable: true, comment: '시공자 점검일' }),
56
56
  (0, type_graphql_1.Field)({ nullable: true }),
57
57
  tslib_1.__metadata("design:type", Date)
58
- ], ChecklistHistory.prototype, "constructionInsprctionDate", void 0);
58
+ ], ChecklistHistory.prototype, "constructionInspectionDate", void 0);
59
59
  tslib_1.__decorate([
60
60
  (0, typeorm_1.Column)({ nullable: true, comment: '감리자 점검일' }),
61
61
  (0, type_graphql_1.Field)({ nullable: true }),
62
62
  tslib_1.__metadata("design:type", Date)
63
- ], ChecklistHistory.prototype, "supervisorInsprctionDate", void 0);
63
+ ], ChecklistHistory.prototype, "supervisorInspectionDate", void 0);
64
64
  tslib_1.__decorate([
65
65
  (0, typeorm_1.Column)({ nullable: true, comment: '총괄 시공 책임자 사인' }),
66
66
  (0, type_graphql_1.Field)({ nullable: true }),
@@ -92,7 +92,7 @@ tslib_1.__decorate([
92
92
  tslib_1.__metadata("design:type", auth_base_1.User)
93
93
  ], ChecklistHistory.prototype, "creator", void 0);
94
94
  tslib_1.__decorate([
95
- (0, typeorm_1.RelationId)((checklist) => checklist.creator),
95
+ (0, typeorm_1.RelationId)((checklistHistory) => checklistHistory.creator),
96
96
  tslib_1.__metadata("design:type", String)
97
97
  ], ChecklistHistory.prototype, "creatorId", void 0);
98
98
  tslib_1.__decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"checklist-history.js","sourceRoot":"","sources":["../../../server/service/checklist/checklist-history.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, ObjectType } from 'type-graphql'\nimport { Column, Entity, Index, ManyToOne, PrimaryGeneratedColumn, RelationId } from 'typeorm'\nimport { HistoryActionColumn, HistoryActionType, HistoryEntityInterface, HistoryOriginalIdColumn } from '@operato/typeorm-history'\nimport { User } from '@things-factory/auth-base'\nimport { config } from '@things-factory/env'\nimport { Checklist } from './checklist'\n\nconst ORMCONFIG = config.get('ormconfig', {})\nconst DATABASE_TYPE = ORMCONFIG.type\n\n@Entity()\n@Index('ix_checklist_history_0', (checklistHistory: ChecklistHistory) => [checklistHistory.originalId])\n@ObjectType({ description: 'History Entity of Checklist' })\nexport class ChecklistHistory implements HistoryEntityInterface<Checklist> {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @Column({ nullable: true, comment: '이름' })\n @Field({ nullable: true })\n name?: string\n\n @Column({ nullable: true, comment: '문서 번호 동(4자리)-층(3자리)-시퀀스(6자리)' })\n @Field({ nullable: true })\n documentNo?: string\n\n @Column({ nullable: false, comment: '공종' })\n @Field({ nullable: true })\n constructionType?: string\n\n @Column({ nullable: false, comment: '세부 공종' })\n @Field({ nullable: true })\n constructionDetailType?: string\n\n @Column({ nullable: false, comment: '위치 (x동 x층)' })\n @Field({ nullable: true })\n location?: string\n\n @Column({ nullable: false, comment: '검측 도면 타입', default: '' })\n @Field({ nullable: true })\n inspectionDrawingType?: string\n\n @Column('simple-array', { nullable: true, comment: '검측 부위' })\n @Field(() => [String], { nullable: true })\n inspectionParts?: string[]\n\n @Column({ nullable: true, comment: '시공자 점검일' })\n @Field({ nullable: true })\n constructionInsprctionDate?: Date\n\n @Column({ nullable: true, comment: '감리자 점검일' })\n @Field({ nullable: true })\n supervisorInsprctionDate?: Date\n\n @Column({ nullable: true, comment: '총괄 시공 책임자 사인' })\n @Field({ nullable: true })\n overallConstructorSignature?: string\n\n @Column({ nullable: true, comment: '공종별 시공 관리자 사인' })\n @Field({ nullable: true })\n taskConstructorSignature?: string\n\n @Column({ nullable: true, comment: '총괄 감리 책임자 사인' })\n @Field({ nullable: true })\n overallSupervisorySignature?: string\n\n @Column({ nullable: true, comment: '건축사보 (공종별 감리 관리자) 사인' })\n @Field({ nullable: true })\n taskSupervisorySignature?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n createdAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((checklist: Checklist) => checklist.creator)\n creatorId?: string\n\n @HistoryOriginalIdColumn()\n public originalId!: string\n\n @HistoryActionColumn({\n nullable: false,\n type:\n DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'\n ? 'enum'\n : DATABASE_TYPE == 'oracle'\n ? 'varchar2'\n : 'smallint',\n enum: HistoryActionType\n })\n public action!: HistoryActionType\n}\n"]}
1
+ {"version":3,"file":"checklist-history.js","sourceRoot":"","sources":["../../../server/service/checklist/checklist-history.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, ObjectType } from 'type-graphql'\nimport { Column, Entity, Index, ManyToOne, PrimaryGeneratedColumn, RelationId } from 'typeorm'\nimport { HistoryActionColumn, HistoryActionType, HistoryEntityInterface, HistoryOriginalIdColumn } from '@operato/typeorm-history'\nimport { User } from '@things-factory/auth-base'\nimport { config } from '@things-factory/env'\nimport { Checklist } from './checklist'\n\nconst ORMCONFIG = config.get('ormconfig', {})\nconst DATABASE_TYPE = ORMCONFIG.type\n\n@Entity()\n@Index('ix_checklist_history_0', (checklistHistory: ChecklistHistory) => [checklistHistory.originalId])\n@ObjectType({ description: 'History Entity of Checklist' })\nexport class ChecklistHistory implements HistoryEntityInterface<Checklist> {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @Column({ nullable: true, comment: '이름' })\n @Field({ nullable: true })\n name?: string\n\n @Column({ nullable: true, comment: '문서 번호 동(4자리)-층(3자리)-시퀀스(6자리)' })\n @Field({ nullable: true })\n documentNo?: string\n\n @Column({ nullable: false, comment: '공종' })\n @Field({ nullable: true })\n constructionType?: string\n\n @Column({ nullable: false, comment: '세부 공종' })\n @Field({ nullable: true })\n constructionDetailType?: string\n\n @Column({ nullable: false, comment: '위치 (x동 x층)' })\n @Field({ nullable: true })\n location?: string\n\n @Column({ nullable: false, comment: '검측 도면 타입', default: '' })\n @Field({ nullable: true })\n inspectionDrawingType?: string\n\n @Column('simple-array', { nullable: true, comment: '검측 부위' })\n @Field(() => [String], { nullable: true })\n inspectionParts?: string[]\n\n @Column({ nullable: true, comment: '시공자 점검일' })\n @Field({ nullable: true })\n constructionInspectionDate?: Date\n\n @Column({ nullable: true, comment: '감리자 점검일' })\n @Field({ nullable: true })\n supervisorInspectionDate?: Date\n\n @Column({ nullable: true, comment: '총괄 시공 책임자 사인' })\n @Field({ nullable: true })\n overallConstructorSignature?: string\n\n @Column({ nullable: true, comment: '공종별 시공 관리자 사인' })\n @Field({ nullable: true })\n taskConstructorSignature?: string\n\n @Column({ nullable: true, comment: '총괄 감리 책임자 사인' })\n @Field({ nullable: true })\n overallSupervisorySignature?: string\n\n @Column({ nullable: true, comment: '건축사보 (공종별 감리 관리자) 사인' })\n @Field({ nullable: true })\n taskSupervisorySignature?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n createdAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((checklistHistory: ChecklistHistory) => checklistHistory.creator)\n creatorId?: string\n\n @HistoryOriginalIdColumn()\n public originalId!: string\n\n @HistoryActionColumn({\n nullable: false,\n type:\n DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'\n ? 'enum'\n : DATABASE_TYPE == 'oracle'\n ? 'varchar2'\n : 'smallint',\n enum: HistoryActionType\n })\n public action!: HistoryActionType\n}\n"]}
@@ -11,8 +11,8 @@ export declare class Checklist {
11
11
  location?: string;
12
12
  inspectionDrawingType?: string;
13
13
  inspectionParts?: string[];
14
- constructionInsprctionDate?: Date;
15
- supervisorInsprctionDate?: Date;
14
+ constructionInspectionDate?: Date;
15
+ supervisorInspectionDate?: Date;
16
16
  overallConstructorSignature?: string;
17
17
  taskConstructorSignature?: string;
18
18
  overallSupervisorySignature?: string;
@@ -54,12 +54,12 @@ tslib_1.__decorate([
54
54
  (0, typeorm_1.Column)({ nullable: true, comment: '시공자 점검일' }),
55
55
  (0, type_graphql_1.Field)({ nullable: true }),
56
56
  tslib_1.__metadata("design:type", Date)
57
- ], Checklist.prototype, "constructionInsprctionDate", void 0);
57
+ ], Checklist.prototype, "constructionInspectionDate", void 0);
58
58
  tslib_1.__decorate([
59
59
  (0, typeorm_1.Column)({ nullable: true, comment: '감리자 점검일' }),
60
60
  (0, type_graphql_1.Field)({ nullable: true }),
61
61
  tslib_1.__metadata("design:type", Date)
62
- ], Checklist.prototype, "supervisorInsprctionDate", void 0);
62
+ ], Checklist.prototype, "supervisorInspectionDate", void 0);
63
63
  tslib_1.__decorate([
64
64
  (0, typeorm_1.Column)({ nullable: true, comment: '총괄 시공 책임자 사인' }),
65
65
  (0, type_graphql_1.Field)({ nullable: true }),
@@ -1 +1 @@
1
- {"version":3,"file":"checklist.js","sourceRoot":"","sources":["../../../server/service/checklist/checklist.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CreateDateColumn,\n UpdateDateColumn,\n DeleteDateColumn,\n Entity,\n Index,\n Column,\n RelationId,\n ManyToOne,\n OneToMany,\n OneToOne,\n JoinColumn,\n PrimaryGeneratedColumn\n} from 'typeorm'\nimport { ObjectType, Field, ID, registerEnumType } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport { Task } from '@dssp/project'\nimport { ChecklistItem } from '../checklist-item/checklist-item'\nimport { BuildingInspection } from '../building-inspection/building-inspection'\n\n@Entity({ comment: '체크리스트' })\n@Index('ix_checklist_0', (checklist: Checklist) => [checklist.task], { where: '\"deleted_at\" IS NULL' })\n@Index('ix_checklist_1', (checklist: Checklist) => [checklist.documentNo, checklist.createdAt], { where: '\"deleted_at\" IS NULL' })\n@ObjectType()\nexport class Checklist {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @Column({ nullable: true, comment: '이름' })\n @Field({ nullable: true })\n name?: string\n\n @Column({ nullable: true, comment: '문서 번호 동(4자리)-층(3자리)-시퀀스(6자리)' })\n @Field({ nullable: true })\n documentNo?: string\n\n @Column({ nullable: false, comment: '공종' })\n @Field({ nullable: true })\n constructionType?: string\n\n @Column({ nullable: false, comment: '세부 공종' })\n @Field({ nullable: true })\n constructionDetailType?: string\n\n @Column({ nullable: false, comment: '위치 (x동 x층)' })\n @Field({ nullable: true })\n location?: string\n\n @Column({ nullable: false, comment: '검측 도면 타입', default: '' })\n @Field({ nullable: true })\n inspectionDrawingType?: string\n\n @Column('simple-array', { nullable: true, comment: '검측 부위' })\n @Field(() => [String], { nullable: true })\n inspectionParts?: string[]\n\n @Column({ nullable: true, comment: '시공자 점검일' })\n @Field({ nullable: true })\n constructionInsprctionDate?: Date\n\n @Column({ nullable: true, comment: '감리자 점검일' })\n @Field({ nullable: true })\n supervisorInsprctionDate?: Date\n\n @Column({ nullable: true, comment: '총괄 시공 책임자 사인' })\n @Field({ nullable: true })\n overallConstructorSignature?: string\n\n @Column({ nullable: true, comment: '공종별 시공 관리자 사인' })\n @Field({ nullable: true })\n taskConstructorSignature?: string\n\n @Column({ nullable: true, comment: '총괄 감리 책임자 사인' })\n @Field({ nullable: true })\n overallSupervisorySignature?: string\n\n @Column({ nullable: true, comment: '건축사보 (공종별 감리 관리자) 사인' })\n @Field({ nullable: true })\n taskSupervisorySignature?: string\n\n // 공정표 작업 정보 (상위 테이블 참조)\n @ManyToOne(() => Task)\n @JoinColumn()\n @Field(() => Task)\n task?: Task\n\n @RelationId((checklist: Checklist) => checklist.task)\n taskId?: string\n\n // 체크리스트 아이템 정보 (하위 테이블 참조)\n @OneToMany(() => ChecklistItem, checklistItem => checklistItem.checklist)\n @Field(() => [ChecklistItem])\n checklistItems?: ChecklistItem[]\n\n // 검측 정보 (1:1 하위 테이블 참조)\n @OneToOne(() => BuildingInspection, buildingInspection => buildingInspection.checklist)\n @Field(() => BuildingInspection)\n buildingInspection?: BuildingInspection\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @DeleteDateColumn()\n @Field({ nullable: true })\n deletedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((checklist: Checklist) => checklist.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((checklist: Checklist) => checklist.updater)\n updaterId?: string\n}\n"]}
1
+ {"version":3,"file":"checklist.js","sourceRoot":"","sources":["../../../server/service/checklist/checklist.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CreateDateColumn,\n UpdateDateColumn,\n DeleteDateColumn,\n Entity,\n Index,\n Column,\n RelationId,\n ManyToOne,\n OneToMany,\n OneToOne,\n JoinColumn,\n PrimaryGeneratedColumn\n} from 'typeorm'\nimport { ObjectType, Field, ID, registerEnumType } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport { Task } from '@dssp/project'\nimport { ChecklistItem } from '../checklist-item/checklist-item'\nimport { BuildingInspection } from '../building-inspection/building-inspection'\n\n@Entity({ comment: '체크리스트' })\n@Index('ix_checklist_0', (checklist: Checklist) => [checklist.task], { where: '\"deleted_at\" IS NULL' })\n@Index('ix_checklist_1', (checklist: Checklist) => [checklist.documentNo, checklist.createdAt], { where: '\"deleted_at\" IS NULL' })\n@ObjectType()\nexport class Checklist {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @Column({ nullable: true, comment: '이름' })\n @Field({ nullable: true })\n name?: string\n\n @Column({ nullable: true, comment: '문서 번호 동(4자리)-층(3자리)-시퀀스(6자리)' })\n @Field({ nullable: true })\n documentNo?: string\n\n @Column({ nullable: false, comment: '공종' })\n @Field({ nullable: true })\n constructionType?: string\n\n @Column({ nullable: false, comment: '세부 공종' })\n @Field({ nullable: true })\n constructionDetailType?: string\n\n @Column({ nullable: false, comment: '위치 (x동 x층)' })\n @Field({ nullable: true })\n location?: string\n\n @Column({ nullable: false, comment: '검측 도면 타입', default: '' })\n @Field({ nullable: true })\n inspectionDrawingType?: string\n\n @Column('simple-array', { nullable: true, comment: '검측 부위' })\n @Field(() => [String], { nullable: true })\n inspectionParts?: string[]\n\n @Column({ nullable: true, comment: '시공자 점검일' })\n @Field({ nullable: true })\n constructionInspectionDate?: Date\n\n @Column({ nullable: true, comment: '감리자 점검일' })\n @Field({ nullable: true })\n supervisorInspectionDate?: Date\n\n @Column({ nullable: true, comment: '총괄 시공 책임자 사인' })\n @Field({ nullable: true })\n overallConstructorSignature?: string\n\n @Column({ nullable: true, comment: '공종별 시공 관리자 사인' })\n @Field({ nullable: true })\n taskConstructorSignature?: string\n\n @Column({ nullable: true, comment: '총괄 감리 책임자 사인' })\n @Field({ nullable: true })\n overallSupervisorySignature?: string\n\n @Column({ nullable: true, comment: '건축사보 (공종별 감리 관리자) 사인' })\n @Field({ nullable: true })\n taskSupervisorySignature?: string\n\n // 공정표 작업 정보 (상위 테이블 참조)\n @ManyToOne(() => Task)\n @JoinColumn()\n @Field(() => Task)\n task?: Task\n\n @RelationId((checklist: Checklist) => checklist.task)\n taskId?: string\n\n // 체크리스트 아이템 정보 (하위 테이블 참조)\n @OneToMany(() => ChecklistItem, checklistItem => checklistItem.checklist)\n @Field(() => [ChecklistItem])\n checklistItems?: ChecklistItem[]\n\n // 검측 정보 (1:1 하위 테이블 참조)\n @OneToOne(() => BuildingInspection, buildingInspection => buildingInspection.checklist)\n @Field(() => BuildingInspection)\n buildingInspection?: BuildingInspection\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @DeleteDateColumn()\n @Field({ nullable: true })\n deletedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((checklist: Checklist) => checklist.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((checklist: Checklist) => checklist.updater)\n updaterId?: string\n}\n"]}
@@ -43,7 +43,8 @@ exports.subscribers = [
43
43
  ...issue_1.subscribers,
44
44
  ...project_report_1.subscribers,
45
45
  ...supervisor_1.subscribers,
46
- ...building_inspection_1.subscribers
46
+ ...building_inspection_1.subscribers,
47
+ ...checklist_1.subscribers
47
48
  ];
48
49
  exports.schema = {
49
50
  resolverClasses: [
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/service/index.ts"],"names":[],"mappings":";;;;AAAA,yBAAyB;AACzB,oEAAyC;AACzC,wDAA6B;AAC7B,0EAA+C;AAC/C,kEAAuC;AACvC,0EAA+C;AAC/C,gEAAqC;AACrC,0EAA+C;AAC/C,kFAAuD;AACvD,4FAAiE;AACjE,oFAAyD;AAEzD,mCAAmC;AACnC,+CAIsB;AACtB,mCAAiH;AACjH,qDAIyB;AACzB,6CAIqB;AACrB,2CAA4F;AAC5F,qDAAyG;AACzG,qDAAyG;AACzG,6DAAqH;AACrH,uEAAkI;AAClI,+DAI8B;AAEjB,QAAA,QAAQ,GAAG;IACtB,cAAc;IACd,GAAG,sBAAkB;IACrB,GAAG,gBAAa;IAChB,GAAG,yBAAqB;IACxB,GAAG,qBAAkB;IACrB,GAAG,oBAAiB;IACpB,GAAG,yBAAqB;IACxB,GAAG,yBAAqB;IACxB,GAAG,kCAA6B;IAChC,GAAG,6BAAyB;IAC5B,GAAG,8BAA0B;CAC9B,CAAA;AAEY,QAAA,WAAW,GAAG;IACzB,iBAAiB;IACjB,GAAG,yBAAqB;IACxB,GAAG,mBAAgB;IACnB,GAAG,4BAAwB;IAC3B,GAAG,wBAAqB;IACxB,GAAG,iCAA6B;CACjC,CAAA;AAEY,QAAA,MAAM,GAAG;IACpB,eAAe,EAAE;QACf,sBAAsB;QACtB,GAAG,uBAAmB;QACtB,GAAG,iBAAc;QACjB,GAAG,0BAAsB;QACzB,GAAG,sBAAmB;QACtB,GAAG,qBAAkB;QACrB,GAAG,0BAAsB;QACzB,GAAG,0BAAsB;QACzB,GAAG,mCAA8B;QACjC,GAAG,8BAA0B;QAC7B,GAAG,+BAA2B;KAC/B;CACF,CAAA","sourcesContent":["/* EXPORT ENTITY TYPES */\nexport * from './action-plan/action-plan'\nexport * from './issue/issue'\nexport * from './project-report/project-report'\nexport * from './supervisor/supervisor'\nexport * from './checklist-type/checklist-type'\nexport * from './checklist/checklist'\nexport * from './checklist-item/checklist-item'\nexport * from './checklist-template/checklist-template'\nexport * from './checklist-template-item/checklist-template-item'\nexport * from './building-inspection/building-inspection'\n\n/* IMPORT ENTITIES AND RESOLVERS */\nimport {\n entities as ActionPlanEntities,\n resolvers as ActionPlanResolvers,\n subscribers as ActionPlanSubscribers\n} from './action-plan'\nimport { entities as IssueEntities, resolvers as IssueResolvers, subscribers as IssueSubscribers } from './issue'\nimport {\n entities as ProjectReportEntities,\n resolvers as ProjectReportResolvers,\n subscribers as ProjectReportSubscribers\n} from './project-report'\nimport {\n entities as SupervisorEntities,\n resolvers as SupervisorResolvers,\n subscribers as SupervisorSubscribers\n} from './supervisor'\nimport { entities as ChecklistEntities, resolvers as ChecklistResolvers } from './checklist'\nimport { entities as ChecklistItemEntities, resolvers as ChecklistItemResolvers } from './checklist-item'\nimport { entities as ChecklistTypeEntities, resolvers as ChecklistTypeResolvers } from './checklist-type'\nimport { entities as ChecklistTemplateEntities, resolvers as ChecklistTemplateResolvers } from './checklist-template'\nimport { entities as ChecklistTemplateItemEntities, resolvers as ChecklistTemplateItemResolvers } from './checklist-template-item'\nimport {\n entities as BuildingInspectionEntities,\n resolvers as BuildingInspectionResolvers,\n subscribers as BuildingInspectionSubscribers\n} from './building-inspection'\n\nexport const entities = [\n /* ENTITIES */\n ...ActionPlanEntities,\n ...IssueEntities,\n ...ProjectReportEntities,\n ...SupervisorEntities,\n ...ChecklistEntities,\n ...ChecklistItemEntities,\n ...ChecklistTypeEntities,\n ...ChecklistTemplateItemEntities,\n ...ChecklistTemplateEntities,\n ...BuildingInspectionEntities\n]\n\nexport const subscribers = [\n /* SUBSCRIBERS */\n ...ActionPlanSubscribers,\n ...IssueSubscribers,\n ...ProjectReportSubscribers,\n ...SupervisorSubscribers,\n ...BuildingInspectionSubscribers\n]\n\nexport const schema = {\n resolverClasses: [\n /* RESOLVER CLASSES */\n ...ActionPlanResolvers,\n ...IssueResolvers,\n ...ProjectReportResolvers,\n ...SupervisorResolvers,\n ...ChecklistResolvers,\n ...ChecklistItemResolvers,\n ...ChecklistTypeResolvers,\n ...ChecklistTemplateItemResolvers,\n ...ChecklistTemplateResolvers,\n ...BuildingInspectionResolvers\n ]\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/service/index.ts"],"names":[],"mappings":";;;;AAAA,yBAAyB;AACzB,oEAAyC;AACzC,wDAA6B;AAC7B,0EAA+C;AAC/C,kEAAuC;AACvC,0EAA+C;AAC/C,gEAAqC;AACrC,0EAA+C;AAC/C,kFAAuD;AACvD,4FAAiE;AACjE,oFAAyD;AAEzD,mCAAmC;AACnC,+CAIsB;AACtB,mCAAiH;AACjH,qDAIyB;AACzB,6CAIqB;AACrB,2CAAiI;AACjI,qDAAyG;AACzG,qDAAyG;AACzG,6DAAqH;AACrH,uEAAkI;AAClI,+DAI8B;AAEjB,QAAA,QAAQ,GAAG;IACtB,cAAc;IACd,GAAG,sBAAkB;IACrB,GAAG,gBAAa;IAChB,GAAG,yBAAqB;IACxB,GAAG,qBAAkB;IACrB,GAAG,oBAAiB;IACpB,GAAG,yBAAqB;IACxB,GAAG,yBAAqB;IACxB,GAAG,kCAA6B;IAChC,GAAG,6BAAyB;IAC5B,GAAG,8BAA0B;CAC9B,CAAA;AAEY,QAAA,WAAW,GAAG;IACzB,iBAAiB;IACjB,GAAG,yBAAqB;IACxB,GAAG,mBAAgB;IACnB,GAAG,4BAAwB;IAC3B,GAAG,wBAAqB;IACxB,GAAG,iCAA6B;IAChC,GAAG,uBAAoB;CACxB,CAAA;AAEY,QAAA,MAAM,GAAG;IACpB,eAAe,EAAE;QACf,sBAAsB;QACtB,GAAG,uBAAmB;QACtB,GAAG,iBAAc;QACjB,GAAG,0BAAsB;QACzB,GAAG,sBAAmB;QACtB,GAAG,qBAAkB;QACrB,GAAG,0BAAsB;QACzB,GAAG,0BAAsB;QACzB,GAAG,mCAA8B;QACjC,GAAG,8BAA0B;QAC7B,GAAG,+BAA2B;KAC/B;CACF,CAAA","sourcesContent":["/* EXPORT ENTITY TYPES */\nexport * from './action-plan/action-plan'\nexport * from './issue/issue'\nexport * from './project-report/project-report'\nexport * from './supervisor/supervisor'\nexport * from './checklist-type/checklist-type'\nexport * from './checklist/checklist'\nexport * from './checklist-item/checklist-item'\nexport * from './checklist-template/checklist-template'\nexport * from './checklist-template-item/checklist-template-item'\nexport * from './building-inspection/building-inspection'\n\n/* IMPORT ENTITIES AND RESOLVERS */\nimport {\n entities as ActionPlanEntities,\n resolvers as ActionPlanResolvers,\n subscribers as ActionPlanSubscribers\n} from './action-plan'\nimport { entities as IssueEntities, resolvers as IssueResolvers, subscribers as IssueSubscribers } from './issue'\nimport {\n entities as ProjectReportEntities,\n resolvers as ProjectReportResolvers,\n subscribers as ProjectReportSubscribers\n} from './project-report'\nimport {\n entities as SupervisorEntities,\n resolvers as SupervisorResolvers,\n subscribers as SupervisorSubscribers\n} from './supervisor'\nimport { entities as ChecklistEntities, resolvers as ChecklistResolvers, subscribers as ChecklistSubscribers } from './checklist'\nimport { entities as ChecklistItemEntities, resolvers as ChecklistItemResolvers } from './checklist-item'\nimport { entities as ChecklistTypeEntities, resolvers as ChecklistTypeResolvers } from './checklist-type'\nimport { entities as ChecklistTemplateEntities, resolvers as ChecklistTemplateResolvers } from './checklist-template'\nimport { entities as ChecklistTemplateItemEntities, resolvers as ChecklistTemplateItemResolvers } from './checklist-template-item'\nimport {\n entities as BuildingInspectionEntities,\n resolvers as BuildingInspectionResolvers,\n subscribers as BuildingInspectionSubscribers\n} from './building-inspection'\n\nexport const entities = [\n /* ENTITIES */\n ...ActionPlanEntities,\n ...IssueEntities,\n ...ProjectReportEntities,\n ...SupervisorEntities,\n ...ChecklistEntities,\n ...ChecklistItemEntities,\n ...ChecklistTypeEntities,\n ...ChecklistTemplateItemEntities,\n ...ChecklistTemplateEntities,\n ...BuildingInspectionEntities\n]\n\nexport const subscribers = [\n /* SUBSCRIBERS */\n ...ActionPlanSubscribers,\n ...IssueSubscribers,\n ...ProjectReportSubscribers,\n ...SupervisorSubscribers,\n ...BuildingInspectionSubscribers,\n ...ChecklistSubscribers\n]\n\nexport const schema = {\n resolverClasses: [\n /* RESOLVER CLASSES */\n ...ActionPlanResolvers,\n ...IssueResolvers,\n ...ProjectReportResolvers,\n ...SupervisorResolvers,\n ...ChecklistResolvers,\n ...ChecklistItemResolvers,\n ...ChecklistTypeResolvers,\n ...ChecklistTemplateItemResolvers,\n ...ChecklistTemplateResolvers,\n ...BuildingInspectionResolvers\n ]\n}\n"]}