@dssp/supervision 0.0.32 → 0.0.34

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 (65) hide show
  1. package/client/pages/building-inspection/building-inspection-detail-checklist.ts +2 -1
  2. package/client/pages/building-inspection/component/inspection-event-provider.ts +1 -1
  3. package/client/pages/checklist/attachment-list-popup.ts +283 -0
  4. package/client/pages/checklist/checklist-view.ts +88 -7
  5. package/client/pages/checklist/comment-list-popup.ts +319 -0
  6. package/client/pages/checklist/file-preview-popup.ts +70 -0
  7. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js +2 -1
  8. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js.map +1 -1
  9. package/dist-client/pages/building-inspection/component/inspection-event-provider.js +1 -1
  10. package/dist-client/pages/building-inspection/component/inspection-event-provider.js.map +1 -1
  11. package/dist-client/pages/checklist/attachment-list-popup.d.ts +2 -0
  12. package/dist-client/pages/checklist/attachment-list-popup.js +290 -0
  13. package/dist-client/pages/checklist/attachment-list-popup.js.map +1 -0
  14. package/dist-client/pages/checklist/checklist-view.d.ts +2 -0
  15. package/dist-client/pages/checklist/checklist-view.js +78 -7
  16. package/dist-client/pages/checklist/checklist-view.js.map +1 -1
  17. package/dist-client/pages/checklist/comment-list-popup.d.ts +1 -0
  18. package/dist-client/pages/checklist/comment-list-popup.js +344 -0
  19. package/dist-client/pages/checklist/comment-list-popup.js.map +1 -0
  20. package/dist-client/pages/checklist/file-preview-popup.d.ts +1 -0
  21. package/dist-client/pages/checklist/file-preview-popup.js +78 -0
  22. package/dist-client/pages/checklist/file-preview-popup.js.map +1 -0
  23. package/dist-client/tsconfig.tsbuildinfo +1 -1
  24. package/dist-server/service/checklist-item/checklist-item-query.d.ts +6 -0
  25. package/dist-server/service/checklist-item/checklist-item-query.js +55 -0
  26. package/dist-server/service/checklist-item/checklist-item-query.js.map +1 -1
  27. package/dist-server/service/checklist-item/checklist-item.d.ts +2 -1
  28. package/dist-server/service/checklist-item/checklist-item.js +5 -4
  29. package/dist-server/service/checklist-item/checklist-item.js.map +1 -1
  30. package/dist-server/service/checklist-item-comment/checklist-item-comment-history.d.ts +16 -0
  31. package/dist-server/service/checklist-item-comment/checklist-item-comment-history.js +83 -0
  32. package/dist-server/service/checklist-item-comment/checklist-item-comment-history.js.map +1 -0
  33. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.d.ts +7 -0
  34. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.js +69 -0
  35. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.js.map +1 -0
  36. package/dist-server/service/checklist-item-comment/checklist-item-comment-query.d.ts +7 -0
  37. package/dist-server/service/checklist-item-comment/checklist-item-comment-query.js +49 -0
  38. package/dist-server/service/checklist-item-comment/checklist-item-comment-query.js.map +1 -0
  39. package/dist-server/service/checklist-item-comment/checklist-item-comment-type.d.ts +14 -0
  40. package/dist-server/service/checklist-item-comment/checklist-item-comment-type.js +53 -0
  41. package/dist-server/service/checklist-item-comment/checklist-item-comment-type.js.map +1 -0
  42. package/dist-server/service/checklist-item-comment/checklist-item-comment.d.ts +12 -0
  43. package/dist-server/service/checklist-item-comment/checklist-item-comment.js +57 -0
  44. package/dist-server/service/checklist-item-comment/checklist-item-comment.js.map +1 -0
  45. package/dist-server/service/checklist-item-comment/event-subscriber.d.ts +7 -0
  46. package/dist-server/service/checklist-item-comment/event-subscriber.js +21 -0
  47. package/dist-server/service/checklist-item-comment/event-subscriber.js.map +1 -0
  48. package/dist-server/service/checklist-item-comment/index.d.ts +7 -0
  49. package/dist-server/service/checklist-item-comment/index.js +12 -0
  50. package/dist-server/service/checklist-item-comment/index.js.map +1 -0
  51. package/dist-server/service/index.d.ts +2 -1
  52. package/dist-server/service/index.js +6 -1
  53. package/dist-server/service/index.js.map +1 -1
  54. package/dist-server/tsconfig.tsbuildinfo +1 -1
  55. package/package.json +5 -5
  56. package/server/service/checklist-item/checklist-item-query.ts +34 -0
  57. package/server/service/checklist-item/checklist-item.ts +6 -3
  58. package/server/service/checklist-item-comment/checklist-item-comment-history.ts +69 -0
  59. package/server/service/checklist-item-comment/checklist-item-comment-mutation.ts +60 -0
  60. package/server/service/checklist-item-comment/checklist-item-comment-query.ts +36 -0
  61. package/server/service/checklist-item-comment/checklist-item-comment-type.ts +32 -0
  62. package/server/service/checklist-item-comment/checklist-item-comment.ts +56 -0
  63. package/server/service/checklist-item-comment/event-subscriber.ts +17 -0
  64. package/server/service/checklist-item-comment/index.ts +9 -0
  65. package/server/service/index.ts +10 -1
@@ -1,10 +1,16 @@
1
+ import { Attachment } from '@things-factory/attachment-base';
1
2
  import { ListParam } from '@things-factory/shell';
2
3
  import { User } from '@things-factory/auth-base';
3
4
  import { ChecklistItem } from './checklist-item';
4
5
  import { ChecklistItemList } from './checklist-item-type';
6
+ import { ChecklistItemComment } from '../checklist-item-comment/checklist-item-comment';
5
7
  export declare class ChecklistItemQuery {
6
8
  checklistItem(id: string, context: ResolverContext): Promise<ChecklistItem>;
7
9
  checklistItems(params: ListParam, context: ResolverContext): Promise<ChecklistItemList>;
10
+ checklistItemComments(checklistItem: ChecklistItem): Promise<ChecklistItemComment[]>;
11
+ checklistItemCommentCount(checklistItem: ChecklistItem): Promise<number>;
12
+ checklistItemAttachments(checklistItem: ChecklistItem): Promise<Attachment[]>;
13
+ checklistItemAttachmentCount(checklistItem: ChecklistItem): Promise<number>;
8
14
  updater(checklistItem: ChecklistItem): Promise<User>;
9
15
  creator(checklistItem: ChecklistItem): Promise<User>;
10
16
  }
@@ -3,10 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ChecklistItemQuery = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const type_graphql_1 = require("type-graphql");
6
+ const attachment_base_1 = require("@things-factory/attachment-base");
6
7
  const shell_1 = require("@things-factory/shell");
7
8
  const auth_base_1 = require("@things-factory/auth-base");
8
9
  const checklist_item_1 = require("./checklist-item");
9
10
  const checklist_item_type_1 = require("./checklist-item-type");
11
+ const checklist_item_comment_1 = require("../checklist-item-comment/checklist-item-comment");
10
12
  let ChecklistItemQuery = class ChecklistItemQuery {
11
13
  async checklistItem(id, context) {
12
14
  const { domain } = context.state;
@@ -24,6 +26,31 @@ let ChecklistItemQuery = class ChecklistItemQuery {
24
26
  const [items, total] = await queryBuilder.getManyAndCount();
25
27
  return { items, total };
26
28
  }
29
+ async checklistItemComments(checklistItem) {
30
+ return await (0, shell_1.getRepository)(checklist_item_comment_1.ChecklistItemComment).findBy({ checklistItem: { id: checklistItem.id } });
31
+ }
32
+ async checklistItemCommentCount(checklistItem) {
33
+ return await (0, shell_1.getRepository)(checklist_item_comment_1.ChecklistItemComment).countBy({ checklistItem: { id: checklistItem.id } });
34
+ }
35
+ async checklistItemAttachments(checklistItem) {
36
+ return await (0, shell_1.getRepository)(attachment_base_1.Attachment).find({
37
+ where: {
38
+ refType: checklist_item_1.ChecklistItem.name,
39
+ refBy: checklistItem.id
40
+ },
41
+ order: {
42
+ createdAt: 'DESC'
43
+ }
44
+ });
45
+ }
46
+ async checklistItemAttachmentCount(checklistItem) {
47
+ return await (0, shell_1.getRepository)(attachment_base_1.Attachment).count({
48
+ where: {
49
+ refType: checklist_item_1.ChecklistItem.name,
50
+ refBy: checklistItem.id
51
+ }
52
+ });
53
+ }
27
54
  async updater(checklistItem) {
28
55
  return await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: checklistItem.updaterId });
29
56
  }
@@ -47,6 +74,34 @@ tslib_1.__decorate([
47
74
  tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
48
75
  tslib_1.__metadata("design:returntype", Promise)
49
76
  ], ChecklistItemQuery.prototype, "checklistItems", null);
77
+ tslib_1.__decorate([
78
+ (0, type_graphql_1.FieldResolver)(type => [checklist_item_comment_1.ChecklistItemComment]),
79
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
80
+ tslib_1.__metadata("design:type", Function),
81
+ tslib_1.__metadata("design:paramtypes", [checklist_item_1.ChecklistItem]),
82
+ tslib_1.__metadata("design:returntype", Promise)
83
+ ], ChecklistItemQuery.prototype, "checklistItemComments", null);
84
+ tslib_1.__decorate([
85
+ (0, type_graphql_1.FieldResolver)(type => Number),
86
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
87
+ tslib_1.__metadata("design:type", Function),
88
+ tslib_1.__metadata("design:paramtypes", [checklist_item_1.ChecklistItem]),
89
+ tslib_1.__metadata("design:returntype", Promise)
90
+ ], ChecklistItemQuery.prototype, "checklistItemCommentCount", null);
91
+ tslib_1.__decorate([
92
+ (0, type_graphql_1.FieldResolver)(type => [attachment_base_1.Attachment]),
93
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
94
+ tslib_1.__metadata("design:type", Function),
95
+ tslib_1.__metadata("design:paramtypes", [checklist_item_1.ChecklistItem]),
96
+ tslib_1.__metadata("design:returntype", Promise)
97
+ ], ChecklistItemQuery.prototype, "checklistItemAttachments", null);
98
+ tslib_1.__decorate([
99
+ (0, type_graphql_1.FieldResolver)(type => Number),
100
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
101
+ tslib_1.__metadata("design:type", Function),
102
+ tslib_1.__metadata("design:paramtypes", [checklist_item_1.ChecklistItem]),
103
+ tslib_1.__metadata("design:returntype", Promise)
104
+ ], ChecklistItemQuery.prototype, "checklistItemAttachmentCount", null);
50
105
  tslib_1.__decorate([
51
106
  (0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
52
107
  tslib_1.__param(0, (0, type_graphql_1.Root)()),
@@ -1 +1 @@
1
- {"version":3,"file":"checklist-item-query.js","sourceRoot":"","sources":["../../../server/service/checklist-item/checklist-item-query.ts"],"names":[],"mappings":";;;;AAAA,+CAA8F;AAE9F,iDAAuG;AACvG,yDAAgD;AAChD,qDAAgD;AAChD,+DAAyD;AAGlD,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAEvB,AAAN,KAAK,CAAC,aAAa,CAAY,EAAU,EAAS,OAAwB;QACxE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,OAAO,MAAM,IAAA,qBAAa,EAAC,8BAAa,CAAC,CAAC,OAAO,CAAC;YAChD,KAAK,EAAE,EAAE,EAAE,EAAE;SACd,CAAC,CAAA;IACJ,CAAC;IAGK,AAAN,KAAK,CAAC,cAAc,CAAS,MAAiB,EAAS,OAAwB;QAC7E,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,MAAM,YAAY,GAAG,IAAA,qCAA6B,EAAC;YACjD,MAAM;YACN,UAAU,EAAE,MAAM,IAAA,qBAAa,EAAC,8BAAa,CAAC;YAC9C,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;SACrC,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,aAA4B;QAChD,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAA;IAC7E,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,aAA4B;QAChD,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAA;IAC7E,CAAC;CACF,CAAA;AAhCO;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,8BAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;IACzE,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;uDAMhD;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,uCAAiB,EAAE,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC;IACnE,mBAAA,IAAA,mBAAI,GAAE,CAAA;IAAqB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAAjB,iBAAS;;wDAY7C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAgB,8BAAa;;iDAEjD;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAgB,8BAAa;;iDAEjD;AAjCU,kBAAkB;IAD9B,IAAA,uBAAQ,EAAC,8BAAa,CAAC;GACX,kBAAkB,CAkC9B;AAlCY,gDAAkB","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'\nimport { Attachment } from '@things-factory/attachment-base'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { ChecklistItem } from './checklist-item'\nimport { ChecklistItemList } from './checklist-item-type'\n\n@Resolver(ChecklistItem)\nexport class ChecklistItemQuery {\n @Query(returns => ChecklistItem!, { nullable: true, description: 'To fetch a ChecklistItem' })\n async checklistItem(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<ChecklistItem> {\n const { domain } = context.state\n\n return await getRepository(ChecklistItem).findOne({\n where: { id }\n })\n }\n\n @Query(returns => ChecklistItemList, { description: 'To fetch multiple ChecklistItems' })\n async checklistItems(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ChecklistItemList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n params,\n repository: await getRepository(ChecklistItem),\n searchables: ['name', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => User)\n async updater(@Root() checklistItem: ChecklistItem): Promise<User> {\n return await getRepository(User).findOneBy({ id: checklistItem.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() checklistItem: ChecklistItem): Promise<User> {\n return await getRepository(User).findOneBy({ id: checklistItem.creatorId })\n }\n}\n"]}
1
+ {"version":3,"file":"checklist-item-query.js","sourceRoot":"","sources":["../../../server/service/checklist-item/checklist-item-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'\nimport { Attachment } from '@things-factory/attachment-base'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { ChecklistItem } from './checklist-item'\nimport { ChecklistItemList } from './checklist-item-type'\nimport { ChecklistItemComment } from '../checklist-item-comment/checklist-item-comment'\n\n@Resolver(ChecklistItem)\nexport class ChecklistItemQuery {\n @Query(returns => ChecklistItem!, { nullable: true, description: 'To fetch a ChecklistItem' })\n async checklistItem(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<ChecklistItem> {\n const { domain } = context.state\n\n return await getRepository(ChecklistItem).findOne({\n where: { id }\n })\n }\n\n @Query(returns => ChecklistItemList, { description: 'To fetch multiple ChecklistItems' })\n async checklistItems(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ChecklistItemList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n params,\n repository: await getRepository(ChecklistItem),\n searchables: ['name', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => [ChecklistItemComment])\n async checklistItemComments(@Root() checklistItem: ChecklistItem): Promise<ChecklistItemComment[]> {\n return await getRepository(ChecklistItemComment).findBy({ checklistItem: { id: checklistItem.id } })\n }\n\n @FieldResolver(type => Number)\n async checklistItemCommentCount(@Root() checklistItem: ChecklistItem): Promise<number> {\n return await getRepository(ChecklistItemComment).countBy({ checklistItem: { id: checklistItem.id } })\n }\n\n @FieldResolver(type => [Attachment])\n async checklistItemAttachments(@Root() checklistItem: ChecklistItem): Promise<Attachment[]> {\n return await getRepository(Attachment).find({\n where: {\n refType: ChecklistItem.name,\n refBy: checklistItem.id\n },\n order: {\n createdAt: 'DESC'\n }\n })\n }\n\n @FieldResolver(type => Number)\n async checklistItemAttachmentCount(@Root() checklistItem: ChecklistItem): Promise<number> {\n return await getRepository(Attachment).count({\n where: {\n refType: ChecklistItem.name,\n refBy: checklistItem.id\n }\n })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() checklistItem: ChecklistItem): Promise<User> {\n return await getRepository(User).findOneBy({ id: checklistItem.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() checklistItem: ChecklistItem): Promise<User> {\n return await getRepository(User).findOneBy({ id: checklistItem.creatorId })\n }\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import { User } from '@things-factory/auth-base';
2
2
  import { Checklist } from '../checklist/checklist';
3
+ import { ChecklistItemComment } from '../checklist-item-comment/checklist-item-comment';
3
4
  export declare enum ChecklistItemConfirmStatus {
4
5
  T = "\uC801\uD569",
5
6
  F = "\uBD80\uC801\uD569"
@@ -13,7 +14,7 @@ export declare class ChecklistItem {
13
14
  inspctionCriteria?: string;
14
15
  constructionConfirmStatus?: ChecklistItemConfirmStatus;
15
16
  supervisoryConfirmStatus?: ChecklistItemConfirmStatus;
16
- comment?: string;
17
+ checklistItemComments?: ChecklistItemComment[];
17
18
  checklist?: Checklist;
18
19
  checklistId?: string;
19
20
  createdAt?: Date;
@@ -6,6 +6,7 @@ const typeorm_1 = require("typeorm");
6
6
  const type_graphql_1 = require("type-graphql");
7
7
  const auth_base_1 = require("@things-factory/auth-base");
8
8
  const checklist_1 = require("../checklist/checklist");
9
+ const checklist_item_comment_1 = require("../checklist-item-comment/checklist-item-comment");
9
10
  var ChecklistItemConfirmStatus;
10
11
  (function (ChecklistItemConfirmStatus) {
11
12
  ChecklistItemConfirmStatus["T"] = "\uC801\uD569";
@@ -58,10 +59,10 @@ tslib_1.__decorate([
58
59
  tslib_1.__metadata("design:type", String)
59
60
  ], ChecklistItem.prototype, "supervisoryConfirmStatus", void 0);
60
61
  tslib_1.__decorate([
61
- (0, typeorm_1.Column)({ nullable: true, comment: '참고 사항' }),
62
- (0, type_graphql_1.Field)({ nullable: true }),
63
- tslib_1.__metadata("design:type", String)
64
- ], ChecklistItem.prototype, "comment", void 0);
62
+ (0, typeorm_1.OneToMany)(() => checklist_item_comment_1.ChecklistItemComment, checklistItemComment => checklistItemComment.checklistItem),
63
+ (0, type_graphql_1.Field)(() => [checklist_item_comment_1.ChecklistItemComment]),
64
+ tslib_1.__metadata("design:type", Array)
65
+ ], ChecklistItem.prototype, "checklistItemComments", void 0);
65
66
  tslib_1.__decorate([
66
67
  (0, typeorm_1.ManyToOne)(type => checklist_1.Checklist),
67
68
  (0, type_graphql_1.Field)(type => checklist_1.Checklist, { nullable: true }),
@@ -1 +1 @@
1
- {"version":3,"file":"checklist-item.js","sourceRoot":"","sources":["../../../server/service/checklist-item/checklist-item.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 PrimaryGeneratedColumn\n} from 'typeorm'\nimport { ObjectType, Field, ID, Int, registerEnumType } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport { Checklist } from '../checklist/checklist'\n\nexport enum ChecklistItemConfirmStatus {\n T = '적합',\n F = '부적합'\n}\n\nregisterEnumType(ChecklistItemConfirmStatus, {\n name: 'ChecklistItemConfirmStatus',\n description: '적합 상태'\n})\n\n@Entity({ comment: '체크 리스트 항목' })\n@Index('ix_checklist_item_0', (checklistItem: ChecklistItem) => [checklistItem.checklist], { where: '\"deleted_at\" IS NULL' })\n@ObjectType()\nexport class ChecklistItem {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @Column({ nullable: true, comment: '시퀀스' })\n @Field(type => Int, { nullable: true })\n sequence?: number\n\n @Column({ nullable: false, comment: '구분 (텍스트)' })\n @Field({ nullable: false })\n mainType?: string\n\n @Column({ nullable: false, comment: '상세 구분 (텍스트)' })\n @Field({ nullable: false })\n detailType?: string\n\n @Column({ nullable: true, comment: '검사 항목' })\n @Field({ nullable: true })\n name?: string\n\n @Column({ nullable: true, comment: '검사 기준' })\n @Field({ nullable: true })\n inspctionCriteria?: string\n\n @Column({ nullable: true, comment: '시공 관리자 적합 여부 (T: 적합, F: 부적합)' })\n @Field({ nullable: true })\n constructionConfirmStatus?: ChecklistItemConfirmStatus\n\n @Column({ nullable: true, comment: '감리 관리자 적합 여부 (T: 적합, F: 부적합)' })\n @Field({ nullable: true })\n supervisoryConfirmStatus?: ChecklistItemConfirmStatus\n\n @Column({ nullable: true, comment: '참고 사항' })\n @Field({ nullable: true })\n comment?: string\n\n // 체크리스트 정보 (상위 테이블 참조)\n @ManyToOne(type => Checklist)\n @Field(type => Checklist, { nullable: true })\n checklist?: Checklist\n\n @RelationId((checklistItem: ChecklistItem) => checklistItem.checklist)\n checklistId?: string\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((checklistItem: ChecklistItem) => checklistItem.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((checklistItem: ChecklistItem) => checklistItem.updater)\n updaterId?: string\n}\n"]}
1
+ {"version":3,"file":"checklist-item.js","sourceRoot":"","sources":["../../../server/service/checklist-item/checklist-item.ts"],"names":[],"mappings":";;;;AAAA,qCAWgB;AAChB,+CAA2E;AAE3E,yDAAgD;AAChD,sDAAkD;AAClD,6FAAuF;AAEvF,IAAY,0BAGX;AAHD,WAAY,0BAA0B;IACpC,gDAAQ,CAAA;IACR,sDAAS,CAAA;AACX,CAAC,EAHW,0BAA0B,GAA1B,kCAA0B,KAA1B,kCAA0B,QAGrC;AAED,IAAA,+BAAgB,EAAC,0BAA0B,EAAE;IAC3C,IAAI,EAAE,4BAA4B;IAClC,WAAW,EAAE,OAAO;CACrB,CAAC,CAAA;AAKK,IAAM,aAAa,GAAnB,MAAM,aAAa;CAuEzB,CAAA;AAtEC;IAAC,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;yCACC;AAEnB;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;;+CACtB;AAEjB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAChD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;+CACV;AAEjB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IACnD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;iDACR;AAEnB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC5C,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACb;AAEb;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC5C,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACA;AAE1B;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;IACnE,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gEAC4B;AAEtD;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;IACnE,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+DAC2B;AAGrD;IAAC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,6CAAoB,EAAE,oBAAoB,CAAC,EAAE,CAAC,oBAAoB,CAAC,aAAa,CAAC;IACjG,IAAA,oBAAK,EAAC,GAAG,EAAE,CAAC,CAAC,6CAAoB,CAAC,CAAC;;4DACU;AAG9C;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,qBAAS,CAAC;IAC5B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,qBAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACjC,qBAAS;gDAAA;AAErB;IAAC,IAAA,oBAAU,EAAC,CAAC,aAA4B,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC;;kDAClD;AAEpB;IAAC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;gDAAA;AAEhB;IAAC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;gDAAA;AAEhB;IAAC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;gDAAA;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;8CAAA;AAEd;IAAC,IAAA,oBAAU,EAAC,CAAC,aAA4B,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC;;gDAClD;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;8CAAA;AAEd;IAAC,IAAA,oBAAU,EAAC,CAAC,aAA4B,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC;;gDAClD;AAtEP,aAAa;IAHzB,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAChC,IAAA,eAAK,EAAC,qBAAqB,EAAE,CAAC,aAA4B,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAC5H,IAAA,yBAAU,GAAE;GACA,aAAa,CAuEzB;AAvEY,sCAAa","sourcesContent":["import {\n CreateDateColumn,\n UpdateDateColumn,\n DeleteDateColumn,\n Entity,\n Index,\n Column,\n RelationId,\n ManyToOne,\n OneToMany,\n PrimaryGeneratedColumn\n} from 'typeorm'\nimport { ObjectType, Field, ID, Int, registerEnumType } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport { Checklist } from '../checklist/checklist'\nimport { ChecklistItemComment } from '../checklist-item-comment/checklist-item-comment'\n\nexport enum ChecklistItemConfirmStatus {\n T = '적합',\n F = '부적합'\n}\n\nregisterEnumType(ChecklistItemConfirmStatus, {\n name: 'ChecklistItemConfirmStatus',\n description: '적합 상태'\n})\n\n@Entity({ comment: '체크 리스트 항목' })\n@Index('ix_checklist_item_0', (checklistItem: ChecklistItem) => [checklistItem.checklist], { where: '\"deleted_at\" IS NULL' })\n@ObjectType()\nexport class ChecklistItem {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @Column({ nullable: true, comment: '시퀀스' })\n @Field(type => Int, { nullable: true })\n sequence?: number\n\n @Column({ nullable: false, comment: '구분 (텍스트)' })\n @Field({ nullable: false })\n mainType?: string\n\n @Column({ nullable: false, comment: '상세 구분 (텍스트)' })\n @Field({ nullable: false })\n detailType?: string\n\n @Column({ nullable: true, comment: '검사 항목' })\n @Field({ nullable: true })\n name?: string\n\n @Column({ nullable: true, comment: '검사 기준' })\n @Field({ nullable: true })\n inspctionCriteria?: string\n\n @Column({ nullable: true, comment: '시공 관리자 적합 여부 (T: 적합, F: 부적합)' })\n @Field({ nullable: true })\n constructionConfirmStatus?: ChecklistItemConfirmStatus\n\n @Column({ nullable: true, comment: '감리 관리자 적합 여부 (T: 적합, F: 부적합)' })\n @Field({ nullable: true })\n supervisoryConfirmStatus?: ChecklistItemConfirmStatus\n\n // 조치 사항 정보 (하위 테이블 참조)\n @OneToMany(() => ChecklistItemComment, checklistItemComment => checklistItemComment.checklistItem)\n @Field(() => [ChecklistItemComment])\n checklistItemComments?: ChecklistItemComment[]\n\n // 체크리스트 정보 (상위 테이블 참조)\n @ManyToOne(type => Checklist)\n @Field(type => Checklist, { nullable: true })\n checklist?: Checklist\n\n @RelationId((checklistItem: ChecklistItem) => checklistItem.checklist)\n checklistId?: string\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((checklistItem: ChecklistItem) => checklistItem.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((checklistItem: ChecklistItem) => checklistItem.updater)\n updaterId?: string\n}\n"]}
@@ -0,0 +1,16 @@
1
+ import { HistoryActionType, HistoryEntityInterface } from '@operato/typeorm-history';
2
+ import { User } from '@things-factory/auth-base';
3
+ import { ChecklistItemComment } from './checklist-item-comment';
4
+ import { ChecklistItem } from '../checklist-item/checklist-item';
5
+ export declare class ChecklistItemCommentHistory implements HistoryEntityInterface<ChecklistItemComment> {
6
+ readonly id: string;
7
+ comment?: string;
8
+ checklistItem?: ChecklistItem;
9
+ checklistItemId?: string;
10
+ createdAt?: Date;
11
+ deletedAt?: Date;
12
+ creator?: User;
13
+ creatorId?: string;
14
+ originalId: string;
15
+ action: HistoryActionType;
16
+ }
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChecklistItemCommentHistory = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const typeorm_1 = require("typeorm");
7
+ const typeorm_history_1 = require("@operato/typeorm-history");
8
+ const auth_base_1 = require("@things-factory/auth-base");
9
+ const env_1 = require("@things-factory/env");
10
+ const checklist_item_1 = require("../checklist-item/checklist-item");
11
+ const ORMCONFIG = env_1.config.get('ormconfig', {});
12
+ const DATABASE_TYPE = ORMCONFIG.type;
13
+ let ChecklistItemCommentHistory = class ChecklistItemCommentHistory {
14
+ };
15
+ tslib_1.__decorate([
16
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
17
+ (0, type_graphql_1.Field)(type => type_graphql_1.ID),
18
+ tslib_1.__metadata("design:type", String)
19
+ ], ChecklistItemCommentHistory.prototype, "id", void 0);
20
+ tslib_1.__decorate([
21
+ (0, typeorm_1.Column)({ nullable: true, comment: '조치 사항 코멘트' }),
22
+ (0, type_graphql_1.Field)({ nullable: true }),
23
+ tslib_1.__metadata("design:type", String)
24
+ ], ChecklistItemCommentHistory.prototype, "comment", void 0);
25
+ tslib_1.__decorate([
26
+ (0, typeorm_1.ManyToOne)(type => checklist_item_1.ChecklistItem),
27
+ (0, type_graphql_1.Field)(type => checklist_item_1.ChecklistItem, { nullable: true }),
28
+ tslib_1.__metadata("design:type", checklist_item_1.ChecklistItem)
29
+ ], ChecklistItemCommentHistory.prototype, "checklistItem", void 0);
30
+ tslib_1.__decorate([
31
+ (0, typeorm_1.RelationId)((checklistItemComment) => checklistItemComment.checklistItem),
32
+ tslib_1.__metadata("design:type", String)
33
+ ], ChecklistItemCommentHistory.prototype, "checklistItemId", void 0);
34
+ tslib_1.__decorate([
35
+ (0, typeorm_1.Column)({ nullable: true }),
36
+ (0, type_graphql_1.Field)({ nullable: true }),
37
+ tslib_1.__metadata("design:type", Date)
38
+ ], ChecklistItemCommentHistory.prototype, "createdAt", void 0);
39
+ tslib_1.__decorate([
40
+ (0, typeorm_1.Column)({ nullable: true }),
41
+ (0, type_graphql_1.Field)({ nullable: true }),
42
+ tslib_1.__metadata("design:type", Date)
43
+ ], ChecklistItemCommentHistory.prototype, "deletedAt", void 0);
44
+ tslib_1.__decorate([
45
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
46
+ (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
47
+ tslib_1.__metadata("design:type", auth_base_1.User)
48
+ ], ChecklistItemCommentHistory.prototype, "creator", void 0);
49
+ tslib_1.__decorate([
50
+ (0, typeorm_1.RelationId)((checklistItemComment) => checklistItemComment.creator),
51
+ tslib_1.__metadata("design:type", String)
52
+ ], ChecklistItemCommentHistory.prototype, "creatorId", void 0);
53
+ tslib_1.__decorate([
54
+ (0, typeorm_history_1.HistoryOriginalIdColumn)(),
55
+ tslib_1.__metadata("design:type", String)
56
+ ], ChecklistItemCommentHistory.prototype, "originalId", void 0);
57
+ tslib_1.__decorate([
58
+ (0, typeorm_history_1.HistoryActionColumn)({
59
+ nullable: false,
60
+ type: DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
61
+ ? 'enum'
62
+ : DATABASE_TYPE == 'oracle'
63
+ ? 'varchar2'
64
+ : DATABASE_TYPE == 'mssql'
65
+ ? 'nvarchar'
66
+ : 'varchar',
67
+ enum: DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb' ? typeorm_history_1.HistoryActionType : undefined,
68
+ length: DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb' ? undefined : 32
69
+ }),
70
+ tslib_1.__metadata("design:type", String)
71
+ ], ChecklistItemCommentHistory.prototype, "action", void 0);
72
+ ChecklistItemCommentHistory = tslib_1.__decorate([
73
+ (0, typeorm_1.Entity)(),
74
+ (0, typeorm_1.Index)('ix_checklist-item-comment_history_0', (checklistItemCommentHistory) => [
75
+ checklistItemCommentHistory.originalId
76
+ ]),
77
+ (0, typeorm_1.Index)('ix_checklist-item-comment_history_1', (checklistItemCommentHistory) => [
78
+ checklistItemCommentHistory.checklistItem
79
+ ]),
80
+ (0, type_graphql_1.ObjectType)({ description: 'History Entity of ChecklistItemComment' })
81
+ ], ChecklistItemCommentHistory);
82
+ exports.ChecklistItemCommentHistory = ChecklistItemCommentHistory;
83
+ //# sourceMappingURL=checklist-item-comment-history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checklist-item-comment-history.js","sourceRoot":"","sources":["../../../server/service/checklist-item-comment/checklist-item-comment-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 { ChecklistItemComment } from './checklist-item-comment'\nimport { ChecklistItem } from '../checklist-item/checklist-item'\n\nconst ORMCONFIG = config.get('ormconfig', {})\nconst DATABASE_TYPE = ORMCONFIG.type\n\n@Entity()\n@Index('ix_checklist-item-comment_history_0', (checklistItemCommentHistory: ChecklistItemCommentHistory) => [\n checklistItemCommentHistory.originalId\n])\n@Index('ix_checklist-item-comment_history_1', (checklistItemCommentHistory: ChecklistItemCommentHistory) => [\n checklistItemCommentHistory.checklistItem\n])\n@ObjectType({ description: 'History Entity of ChecklistItemComment' })\nexport class ChecklistItemCommentHistory implements HistoryEntityInterface<ChecklistItemComment> {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @Column({ nullable: true, comment: '조치 사항 코멘트' })\n @Field({ nullable: true })\n comment?: string\n\n // 체크리스트 아이템 정보 (상위 테이블 참조)\n @ManyToOne(type => ChecklistItem)\n @Field(type => ChecklistItem, { nullable: true })\n checklistItem?: ChecklistItem\n\n @RelationId((checklistItemComment: ChecklistItemComment) => checklistItemComment.checklistItem)\n checklistItemId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n createdAt?: Date\n\n @Column({ nullable: true })\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((checklistItemComment: ChecklistItemComment) => checklistItemComment.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 : DATABASE_TYPE == 'mssql'\n ? 'nvarchar'\n : 'varchar',\n enum: DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb' ? HistoryActionType : undefined,\n length: DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb' ? undefined : 32\n })\n public action!: HistoryActionType\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import { ChecklistItemComment } from './checklist-item-comment';
2
+ import { NewChecklistItemComment, ChecklistItemCommentPatch } from './checklist-item-comment-type';
3
+ export declare class ChecklistItemCommentMutation {
4
+ createChecklistItemComment(checklistItemComment: NewChecklistItemComment, context: ResolverContext): Promise<ChecklistItemComment>;
5
+ updateChecklistItemComment(id: string, patch: ChecklistItemCommentPatch, context: ResolverContext): Promise<ChecklistItemComment>;
6
+ deleteChecklistItemComment(id: string, context: ResolverContext): Promise<boolean>;
7
+ }
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChecklistItemCommentMutation = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const shell_1 = require("@things-factory/shell");
7
+ const checklist_item_comment_1 = require("./checklist-item-comment");
8
+ const checklist_item_comment_type_1 = require("./checklist-item-comment-type");
9
+ let ChecklistItemCommentMutation = class ChecklistItemCommentMutation {
10
+ async createChecklistItemComment(checklistItemComment, context) {
11
+ const { user, tx } = context.state;
12
+ const { comment, checklistItemId } = checklistItemComment;
13
+ const result = await (0, shell_1.getRepository)(checklist_item_comment_1.ChecklistItemComment, tx).save({
14
+ comment,
15
+ checklistItem: { id: checklistItemId },
16
+ createdAt: new Date(),
17
+ creator: user,
18
+ updater: user
19
+ });
20
+ return result;
21
+ }
22
+ async updateChecklistItemComment(id, patch, context) {
23
+ const { user, tx } = context.state;
24
+ const repository = (0, shell_1.getRepository)(checklist_item_comment_1.ChecklistItemComment, tx);
25
+ const checklistItemComment = await repository.findOne({
26
+ where: { id }
27
+ });
28
+ const result = await repository.save(Object.assign(Object.assign(Object.assign({}, checklistItemComment), patch), { updater: user }));
29
+ return result;
30
+ }
31
+ async deleteChecklistItemComment(id, context) {
32
+ const { tx } = context.state;
33
+ await (0, shell_1.getRepository)(checklist_item_comment_1.ChecklistItemComment, tx).softDelete({ id });
34
+ return true;
35
+ }
36
+ };
37
+ tslib_1.__decorate([
38
+ (0, type_graphql_1.Directive)('@transaction'),
39
+ (0, type_graphql_1.Mutation)(returns => checklist_item_comment_1.ChecklistItemComment, { description: 'To create new ChecklistItemComment' }),
40
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('checklistItemComment')),
41
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
42
+ tslib_1.__metadata("design:type", Function),
43
+ tslib_1.__metadata("design:paramtypes", [checklist_item_comment_type_1.NewChecklistItemComment, Object]),
44
+ tslib_1.__metadata("design:returntype", Promise)
45
+ ], ChecklistItemCommentMutation.prototype, "createChecklistItemComment", null);
46
+ tslib_1.__decorate([
47
+ (0, type_graphql_1.Directive)('@transaction'),
48
+ (0, type_graphql_1.Mutation)(returns => checklist_item_comment_1.ChecklistItemComment, { description: 'To modify ChecklistItemComment information' }),
49
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
50
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('patch')),
51
+ tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
52
+ tslib_1.__metadata("design:type", Function),
53
+ tslib_1.__metadata("design:paramtypes", [String, checklist_item_comment_type_1.ChecklistItemCommentPatch, Object]),
54
+ tslib_1.__metadata("design:returntype", Promise)
55
+ ], ChecklistItemCommentMutation.prototype, "updateChecklistItemComment", null);
56
+ tslib_1.__decorate([
57
+ (0, type_graphql_1.Directive)('@transaction'),
58
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete ChecklistItemComment' }),
59
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
60
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
61
+ tslib_1.__metadata("design:type", Function),
62
+ tslib_1.__metadata("design:paramtypes", [String, Object]),
63
+ tslib_1.__metadata("design:returntype", Promise)
64
+ ], ChecklistItemCommentMutation.prototype, "deleteChecklistItemComment", null);
65
+ ChecklistItemCommentMutation = tslib_1.__decorate([
66
+ (0, type_graphql_1.Resolver)(checklist_item_comment_1.ChecklistItemComment)
67
+ ], ChecklistItemCommentMutation);
68
+ exports.ChecklistItemCommentMutation = ChecklistItemCommentMutation;
69
+ //# sourceMappingURL=checklist-item-comment-mutation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checklist-item-comment-mutation.js","sourceRoot":"","sources":["../../../server/service/checklist-item-comment/checklist-item-comment-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AACtE,iDAAqD;AACrD,qEAA+D;AAC/D,+EAAkG;AAG3F,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IAGjC,AAAN,KAAK,CAAC,0BAA0B,CACD,oBAA6C,EACnE,OAAwB;QAE/B,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAClC,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,oBAAoB,CAAA;QAEzD,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAa,EAAC,6CAAoB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;YAChE,OAAO;YACP,aAAa,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE;YACtC,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC;IAIK,AAAN,KAAK,CAAC,0BAA0B,CACnB,EAAU,EACP,KAAgC,EACvC,OAAwB;QAE/B,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAElC,MAAM,UAAU,GAAG,IAAA,qBAAa,EAAC,6CAAoB,EAAE,EAAE,CAAC,CAAA;QAC1D,MAAM,oBAAoB,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YACpD,KAAK,EAAE,EAAE,EAAE,EAAE;SACd,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,+CAC/B,oBAAoB,GACpB,KAAK,KACR,OAAO,EAAE,IAAI,IACb,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC;IAIK,AAAN,KAAK,CAAC,0BAA0B,CAAY,EAAU,EAAS,OAAwB;QACrF,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE5B,MAAM,IAAA,qBAAa,EAAC,6CAAoB,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QAEhE,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AAlDO;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,6CAAoB,EAAE,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC;IAE9F,mBAAA,IAAA,kBAAG,EAAC,sBAAsB,CAAC,CAAA;IAC3B,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAD6C,qDAAuB;;8EAe3E;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,6CAAoB,EAAE,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;IAEtG,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IACT,mBAAA,IAAA,kBAAG,EAAC,OAAO,CAAC,CAAA;IACZ,mBAAA,IAAA,kBAAG,GAAE,CAAA;;qDADe,uDAAyB;;8EAiB/C;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC;IAC9C,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;8EAM7D;AApDU,4BAA4B;IADxC,IAAA,uBAAQ,EAAC,6CAAoB,CAAC;GAClB,4BAA4B,CAqDxC;AArDY,oEAA4B","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { getRepository } from '@things-factory/shell'\nimport { ChecklistItemComment } from './checklist-item-comment'\nimport { NewChecklistItemComment, ChecklistItemCommentPatch } from './checklist-item-comment-type'\n\n@Resolver(ChecklistItemComment)\nexport class ChecklistItemCommentMutation {\n @Directive('@transaction')\n @Mutation(returns => ChecklistItemComment, { description: 'To create new ChecklistItemComment' })\n async createChecklistItemComment(\n @Arg('checklistItemComment') checklistItemComment: NewChecklistItemComment,\n @Ctx() context: ResolverContext\n ): Promise<ChecklistItemComment> {\n const { user, tx } = context.state\n const { comment, checklistItemId } = checklistItemComment\n\n const result = await getRepository(ChecklistItemComment, tx).save({\n comment,\n checklistItem: { id: checklistItemId },\n createdAt: new Date(),\n creator: user,\n updater: user\n })\n\n return result\n }\n\n @Directive('@transaction')\n @Mutation(returns => ChecklistItemComment, { description: 'To modify ChecklistItemComment information' })\n async updateChecklistItemComment(\n @Arg('id') id: string,\n @Arg('patch') patch: ChecklistItemCommentPatch,\n @Ctx() context: ResolverContext\n ): Promise<ChecklistItemComment> {\n const { user, tx } = context.state\n\n const repository = getRepository(ChecklistItemComment, tx)\n const checklistItemComment = await repository.findOne({\n where: { id }\n })\n\n const result = await repository.save({\n ...checklistItemComment,\n ...patch,\n updater: user\n })\n\n return result\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete ChecklistItemComment' })\n async deleteChecklistItemComment(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { tx } = context.state\n\n await getRepository(ChecklistItemComment, tx).softDelete({ id })\n\n return true\n }\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import { Pagination } from '@things-factory/shell';
2
+ import { User } from '@things-factory/auth-base';
3
+ import { ChecklistItemComment } from './checklist-item-comment';
4
+ export declare class ChecklistItemCommentQuery {
5
+ checklistItemComments(checklistItemId: string, pagination: Pagination, context: ResolverContext): Promise<ChecklistItemComment[]>;
6
+ creator(checklistItemComment: ChecklistItemComment): Promise<User>;
7
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChecklistItemCommentQuery = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const shell_1 = require("@things-factory/shell");
7
+ const auth_base_1 = require("@things-factory/auth-base");
8
+ const checklist_item_comment_1 = require("./checklist-item-comment");
9
+ let ChecklistItemCommentQuery = class ChecklistItemCommentQuery {
10
+ async checklistItemComments(checklistItemId, pagination, context) {
11
+ const { limit, page } = pagination;
12
+ // 페이지네이션을 위한 offset 계산
13
+ const offset = (page - 1) * limit;
14
+ // 코멘트와 총 개수를 가져오는 쿼리
15
+ const items = await (0, shell_1.getRepository)(checklist_item_comment_1.ChecklistItemComment)
16
+ .createQueryBuilder('cic')
17
+ .innerJoin('cic.checklistItem', 'ci')
18
+ .where('cic.checklistItem = :checklistItemId', { checklistItemId })
19
+ .skip(offset)
20
+ .take(limit)
21
+ .orderBy('cic.createdAt', 'DESC')
22
+ .getMany();
23
+ return items;
24
+ }
25
+ async creator(checklistItemComment) {
26
+ return checklistItemComment.creatorId && (await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: checklistItemComment.creatorId }));
27
+ }
28
+ };
29
+ tslib_1.__decorate([
30
+ (0, type_graphql_1.Query)(returns => [checklist_item_comment_1.ChecklistItemComment], { description: 'To fetch multiple ChecklistItemComments' }),
31
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('checklistItemId')),
32
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('pagination')),
33
+ tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
34
+ tslib_1.__metadata("design:type", Function),
35
+ tslib_1.__metadata("design:paramtypes", [String, shell_1.Pagination, Object]),
36
+ tslib_1.__metadata("design:returntype", Promise)
37
+ ], ChecklistItemCommentQuery.prototype, "checklistItemComments", null);
38
+ tslib_1.__decorate([
39
+ (0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
40
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
41
+ tslib_1.__metadata("design:type", Function),
42
+ tslib_1.__metadata("design:paramtypes", [checklist_item_comment_1.ChecklistItemComment]),
43
+ tslib_1.__metadata("design:returntype", Promise)
44
+ ], ChecklistItemCommentQuery.prototype, "creator", null);
45
+ ChecklistItemCommentQuery = tslib_1.__decorate([
46
+ (0, type_graphql_1.Resolver)(checklist_item_comment_1.ChecklistItemComment)
47
+ ], ChecklistItemCommentQuery);
48
+ exports.ChecklistItemCommentQuery = ChecklistItemCommentQuery;
49
+ //# sourceMappingURL=checklist-item-comment-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checklist-item-comment-query.js","sourceRoot":"","sources":["../../../server/service/checklist-item-comment/checklist-item-comment-query.ts"],"names":[],"mappings":";;;;AAAA,+CAA6E;AAC7E,iDAAiE;AACjE,yDAAgD;AAChD,qEAA+D;AAGxD,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IAE9B,AAAN,KAAK,CAAC,qBAAqB,CACD,eAAuB,EAC5B,UAAsB,EAClC,OAAwB;QAE/B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,UAAU,CAAA;QAElC,uBAAuB;QACvB,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA;QAEjC,qBAAqB;QACrB,MAAM,KAAK,GAAG,MAAM,IAAA,qBAAa,EAAC,6CAAoB,CAAC;aACpD,kBAAkB,CAAC,KAAK,CAAC;aACzB,SAAS,CAAC,mBAAmB,EAAE,IAAI,CAAC;aACpC,KAAK,CAAC,sCAAsC,EAAE,EAAE,eAAe,EAAE,CAAC;aAClE,IAAI,CAAC,MAAM,CAAC;aACZ,IAAI,CAAC,KAAK,CAAC;aACX,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC;aAChC,OAAO,EAAE,CAAA;QAEZ,OAAO,KAAK,CAAA;IACd,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,oBAA0C;QAC9D,OAAO,oBAAoB,CAAC,SAAS,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,oBAAoB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IACxH,CAAC;CACF,CAAA;AA3BO;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,6CAAoB,CAAC,EAAE,EAAE,WAAW,EAAE,yCAAyC,EAAE,CAAC;IAElG,mBAAA,IAAA,kBAAG,EAAC,iBAAiB,CAAC,CAAA;IACtB,mBAAA,IAAA,kBAAG,EAAC,YAAY,CAAC,CAAA;IACjB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;qDADyB,kBAAU;;sEAmB1C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAuB,6CAAoB;;wDAE/D;AA5BU,yBAAyB;IADrC,IAAA,uBAAQ,EAAC,6CAAoB,CAAC;GAClB,yBAAyB,CA6BrC;AA7BY,8DAAyB","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Arg, Ctx } from 'type-graphql'\nimport { getRepository, Pagination } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { ChecklistItemComment } from './checklist-item-comment'\n\n@Resolver(ChecklistItemComment)\nexport class ChecklistItemCommentQuery {\n @Query(returns => [ChecklistItemComment], { description: 'To fetch multiple ChecklistItemComments' })\n async checklistItemComments(\n @Arg('checklistItemId') checklistItemId: string,\n @Arg('pagination') pagination: Pagination,\n @Ctx() context: ResolverContext\n ): Promise<ChecklistItemComment[]> {\n const { limit, page } = pagination\n\n // 페이지네이션을 위한 offset 계산\n const offset = (page - 1) * limit\n\n // 코멘트와 총 개수를 가져오는 쿼리\n const items = await getRepository(ChecklistItemComment)\n .createQueryBuilder('cic')\n .innerJoin('cic.checklistItem', 'ci')\n .where('cic.checklistItem = :checklistItemId', { checklistItemId })\n .skip(offset)\n .take(limit)\n .orderBy('cic.createdAt', 'DESC')\n .getMany()\n\n return items\n }\n\n @FieldResolver(type => User)\n async creator(@Root() checklistItemComment: ChecklistItemComment): Promise<User> {\n return checklistItemComment.creatorId && (await getRepository(User).findOneBy({ id: checklistItemComment.creatorId }))\n }\n}\n"]}
@@ -0,0 +1,14 @@
1
+ import { ChecklistItemComment } from './checklist-item-comment';
2
+ export declare class NewChecklistItemComment {
3
+ comment?: string;
4
+ checklistItemId?: string;
5
+ }
6
+ export declare class ChecklistItemCommentPatch {
7
+ id?: string;
8
+ comment?: string;
9
+ checklistItemId?: string;
10
+ }
11
+ export declare class ChecklistItemCommentList {
12
+ items: ChecklistItemComment[];
13
+ total: number;
14
+ }
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChecklistItemCommentList = exports.ChecklistItemCommentPatch = exports.NewChecklistItemComment = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const checklist_item_comment_1 = require("./checklist-item-comment");
7
+ let NewChecklistItemComment = class NewChecklistItemComment {
8
+ };
9
+ tslib_1.__decorate([
10
+ (0, type_graphql_1.Field)({ nullable: true }),
11
+ tslib_1.__metadata("design:type", String)
12
+ ], NewChecklistItemComment.prototype, "comment", void 0);
13
+ tslib_1.__decorate([
14
+ (0, type_graphql_1.Field)({ nullable: true }),
15
+ tslib_1.__metadata("design:type", String)
16
+ ], NewChecklistItemComment.prototype, "checklistItemId", void 0);
17
+ NewChecklistItemComment = tslib_1.__decorate([
18
+ (0, type_graphql_1.InputType)()
19
+ ], NewChecklistItemComment);
20
+ exports.NewChecklistItemComment = NewChecklistItemComment;
21
+ let ChecklistItemCommentPatch = class ChecklistItemCommentPatch {
22
+ };
23
+ tslib_1.__decorate([
24
+ (0, type_graphql_1.Field)(type => type_graphql_1.ID, { nullable: true }),
25
+ tslib_1.__metadata("design:type", String)
26
+ ], ChecklistItemCommentPatch.prototype, "id", void 0);
27
+ tslib_1.__decorate([
28
+ (0, type_graphql_1.Field)({ nullable: true }),
29
+ tslib_1.__metadata("design:type", String)
30
+ ], ChecklistItemCommentPatch.prototype, "comment", void 0);
31
+ tslib_1.__decorate([
32
+ (0, type_graphql_1.Field)({ nullable: true }),
33
+ tslib_1.__metadata("design:type", String)
34
+ ], ChecklistItemCommentPatch.prototype, "checklistItemId", void 0);
35
+ ChecklistItemCommentPatch = tslib_1.__decorate([
36
+ (0, type_graphql_1.InputType)()
37
+ ], ChecklistItemCommentPatch);
38
+ exports.ChecklistItemCommentPatch = ChecklistItemCommentPatch;
39
+ let ChecklistItemCommentList = class ChecklistItemCommentList {
40
+ };
41
+ tslib_1.__decorate([
42
+ (0, type_graphql_1.Field)(type => [checklist_item_comment_1.ChecklistItemComment]),
43
+ tslib_1.__metadata("design:type", Array)
44
+ ], ChecklistItemCommentList.prototype, "items", void 0);
45
+ tslib_1.__decorate([
46
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int),
47
+ tslib_1.__metadata("design:type", Number)
48
+ ], ChecklistItemCommentList.prototype, "total", void 0);
49
+ ChecklistItemCommentList = tslib_1.__decorate([
50
+ (0, type_graphql_1.ObjectType)()
51
+ ], ChecklistItemCommentList);
52
+ exports.ChecklistItemCommentList = ChecklistItemCommentList;
53
+ //# sourceMappingURL=checklist-item-comment-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checklist-item-comment-type.js","sourceRoot":"","sources":["../../../server/service/checklist-item-comment/checklist-item-comment-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAoE;AACpE,qEAA+D;AAGxD,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;CAMnC,CAAA;AALC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACV;AAEhB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gEACF;AALb,uBAAuB;IADnC,IAAA,wBAAS,GAAE;GACC,uBAAuB,CAMnC;AANY,0DAAuB;AAS7B,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;CASrC,CAAA;AARC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDAC3B;AAEX;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACV;AAEhB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kEACF;AARb,yBAAyB;IADrC,IAAA,wBAAS,GAAE;GACC,yBAAyB,CASrC;AATY,8DAAyB;AAY/B,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;CAMpC,CAAA;AALC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,6CAAoB,CAAC,CAAC;;uDACT;AAE7B;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;uDACN;AALF,wBAAwB;IADpC,IAAA,yBAAU,GAAE;GACA,wBAAwB,CAMpC;AANY,4DAAwB","sourcesContent":["import { ObjectType, Field, InputType, Int, ID } from 'type-graphql'\nimport { ChecklistItemComment } from './checklist-item-comment'\n\n@InputType()\nexport class NewChecklistItemComment {\n @Field({ nullable: true })\n comment?: string\n\n @Field({ nullable: true })\n checklistItemId?: string\n}\n\n@InputType()\nexport class ChecklistItemCommentPatch {\n @Field(type => ID, { nullable: true })\n id?: string\n\n @Field({ nullable: true })\n comment?: string\n\n @Field({ nullable: true })\n checklistItemId?: string\n}\n\n@ObjectType()\nexport class ChecklistItemCommentList {\n @Field(type => [ChecklistItemComment])\n items: ChecklistItemComment[]\n\n @Field(type => Int)\n total: number\n}\n"]}
@@ -0,0 +1,12 @@
1
+ import { User } from '@things-factory/auth-base';
2
+ import { ChecklistItem } from '../checklist-item/checklist-item';
3
+ export declare class ChecklistItemComment {
4
+ readonly id: string;
5
+ comment?: string;
6
+ checklistItem?: ChecklistItem;
7
+ checklistItemId?: string;
8
+ createdAt?: Date;
9
+ deletedAt?: Date;
10
+ creator?: User;
11
+ creatorId?: string;
12
+ }
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChecklistItemComment = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const typeorm_1 = require("typeorm");
6
+ const type_graphql_1 = require("type-graphql");
7
+ const auth_base_1 = require("@things-factory/auth-base");
8
+ const checklist_item_1 = require("../checklist-item/checklist-item");
9
+ let ChecklistItemComment = class ChecklistItemComment {
10
+ };
11
+ tslib_1.__decorate([
12
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
13
+ (0, type_graphql_1.Field)(type => type_graphql_1.ID),
14
+ tslib_1.__metadata("design:type", String)
15
+ ], ChecklistItemComment.prototype, "id", void 0);
16
+ tslib_1.__decorate([
17
+ (0, typeorm_1.Column)({ nullable: true, comment: '조치 사항 코멘트' }),
18
+ (0, type_graphql_1.Field)({ nullable: true }),
19
+ tslib_1.__metadata("design:type", String)
20
+ ], ChecklistItemComment.prototype, "comment", void 0);
21
+ tslib_1.__decorate([
22
+ (0, typeorm_1.ManyToOne)(type => checklist_item_1.ChecklistItem),
23
+ (0, type_graphql_1.Field)(type => checklist_item_1.ChecklistItem, { nullable: true }),
24
+ tslib_1.__metadata("design:type", checklist_item_1.ChecklistItem)
25
+ ], ChecklistItemComment.prototype, "checklistItem", void 0);
26
+ tslib_1.__decorate([
27
+ (0, typeorm_1.RelationId)((checklistItemComment) => checklistItemComment.checklistItem),
28
+ tslib_1.__metadata("design:type", String)
29
+ ], ChecklistItemComment.prototype, "checklistItemId", void 0);
30
+ tslib_1.__decorate([
31
+ (0, typeorm_1.CreateDateColumn)(),
32
+ (0, type_graphql_1.Field)({ nullable: true }),
33
+ tslib_1.__metadata("design:type", Date)
34
+ ], ChecklistItemComment.prototype, "createdAt", void 0);
35
+ tslib_1.__decorate([
36
+ (0, typeorm_1.DeleteDateColumn)(),
37
+ (0, type_graphql_1.Field)({ nullable: true }),
38
+ tslib_1.__metadata("design:type", Date)
39
+ ], ChecklistItemComment.prototype, "deletedAt", void 0);
40
+ tslib_1.__decorate([
41
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
42
+ (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
43
+ tslib_1.__metadata("design:type", auth_base_1.User)
44
+ ], ChecklistItemComment.prototype, "creator", void 0);
45
+ tslib_1.__decorate([
46
+ (0, typeorm_1.RelationId)((checklistItemComment) => checklistItemComment.creator),
47
+ tslib_1.__metadata("design:type", String)
48
+ ], ChecklistItemComment.prototype, "creatorId", void 0);
49
+ ChecklistItemComment = tslib_1.__decorate([
50
+ (0, typeorm_1.Entity)(),
51
+ (0, typeorm_1.Index)('ix_checklist_item_comment_0', (checklistItemComment) => [checklistItemComment.checklistItem, checklistItemComment.createdAt], {
52
+ where: '"deleted_at" IS NULL'
53
+ }),
54
+ (0, type_graphql_1.ObjectType)({ description: 'Entity for ChecklistItemComment' })
55
+ ], ChecklistItemComment);
56
+ exports.ChecklistItemComment = ChecklistItemComment;
57
+ //# sourceMappingURL=checklist-item-comment.js.map