@dssp/project 1.0.0-alpha.51 → 1.0.0-alpha.53

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.
@@ -9,7 +9,7 @@ export * from './manager/manager';
9
9
  export * from './manager/manager-type';
10
10
  export * from './task/task';
11
11
  export * from './project/project';
12
- export declare const entities: (typeof import("./project/project").Project | typeof import("./task/task").Task | typeof import("./task-resource/task-resource").TaskResource | typeof import("./resource/resource").Resource | typeof import("./construction-detail-type/construction-detail-type").ConstructionDetailType | typeof import("./construction-type/construction-type").ConstructionType | typeof import("./inspection-drawing-type/inspection-drawing-type").InspectionDrawingType | typeof import("./inspection-part/inspection-part").InspectionPart | typeof import("./worker-type/worker-type").WorkerType | typeof import("./manager/manager").Manager | typeof import("./task-checklist-binding/task-checklist-binding").TaskChecklistBinding)[];
12
+ export declare const entities: (typeof import("./project/project").Project | typeof import("./task/task").Task | typeof import("./task-checklist-binding/task-checklist-binding").TaskChecklistBinding | typeof import("./task-resource/task-resource").TaskResource | typeof import("./resource/resource").Resource | typeof import("./construction-detail-type/construction-detail-type").ConstructionDetailType | typeof import("./construction-type/construction-type").ConstructionType | typeof import("./inspection-drawing-type/inspection-drawing-type").InspectionDrawingType | typeof import("./inspection-part/inspection-part").InspectionPart | typeof import("./worker-type/worker-type").WorkerType | typeof import("./manager/manager").Manager)[];
13
13
  export declare const schema: {
14
- resolverClasses: (typeof import("./project/project-query").ProjectQuery | typeof import("./project/project-mutation").ProjectMutation | typeof import("./task-resource/task-resource-query").TaskResourceQuery | typeof import("./task-resource/task-resource-mutation").TaskResourceMutation | typeof import("./resource/resource-query").ResourceQuery | typeof import("./resource/resource-mutation").ResourceMutation | typeof import("./construction-detail-type/construction-detail-type-query").ConstructionDetailTypeQuery | typeof import("./construction-detail-type/construction-detail-type-mutation").ConstructionDetailTypeMutation | typeof import("./construction-type/construction-type-query").ConstructionTypeQuery | typeof import("./construction-type/construction-type-mutation").ConstructionTypeMutation | typeof import("./inspection-drawing-type/inspection-drawing-type-query").InspectionDrawingTypeQuery | typeof import("./inspection-drawing-type/inspection-drawing-type-mutation").InspectionDrawingTypeMutation | typeof import("./inspection-part/inspection-part-query").InspectionPartQuery | typeof import("./inspection-part/inspection-part-mutation").InspectionPartMutation | typeof import("./worker-type/worker-type-query").WorkerTypeQuery | typeof import("./worker-type/worker-type-mutation").WorkerTypeMutation | typeof import("./manager/manager-query").ManagerQuery | typeof import("./manager/manager-mutation").ManagerMutation | typeof import("./task/task-query").TaskQuery | typeof import("./task/task-mutation").TaskMutation | typeof import("./task-checklist-binding/task-checklist-binding-query").TaskChecklistBindingQuery | typeof import("./task-checklist-binding/task-checklist-binding-mutation").TaskChecklistBindingMutation)[];
14
+ resolverClasses: (typeof import("./task-resource/task-resource-query").TaskResourceQuery | typeof import("./task-resource/task-resource-mutation").TaskResourceMutation | typeof import("./resource/resource-query").ResourceQuery | typeof import("./resource/resource-mutation").ResourceMutation | typeof import("./task/task-query").TaskQuery | typeof import("./task/task-mutation").TaskMutation | typeof import("./project/project-query").ProjectQuery | typeof import("./project/project-mutation").ProjectMutation | typeof import("./task-checklist-binding/task-checklist-binding-query").TaskChecklistBindingQuery | typeof import("./task-checklist-binding/task-checklist-binding-mutation").TaskChecklistBindingMutation | typeof import("./construction-detail-type/construction-detail-type-query").ConstructionDetailTypeQuery | typeof import("./construction-detail-type/construction-detail-type-mutation").ConstructionDetailTypeMutation | typeof import("./construction-type/construction-type-query").ConstructionTypeQuery | typeof import("./construction-type/construction-type-mutation").ConstructionTypeMutation | typeof import("./inspection-drawing-type/inspection-drawing-type-query").InspectionDrawingTypeQuery | typeof import("./inspection-drawing-type/inspection-drawing-type-mutation").InspectionDrawingTypeMutation | typeof import("./inspection-part/inspection-part-query").InspectionPartQuery | typeof import("./inspection-part/inspection-part-mutation").InspectionPartMutation | typeof import("./worker-type/worker-type-query").WorkerTypeQuery | typeof import("./worker-type/worker-type-mutation").WorkerTypeMutation | typeof import("./manager/manager-query").ManagerQuery | typeof import("./manager/manager-mutation").ManagerMutation)[];
15
15
  };
@@ -10,6 +10,7 @@ export declare class ProjectQuery {
10
10
  projects(params: ListParam, context: ResolverContext): Promise<ProjectList>;
11
11
  projectByBuildingComplexId(buildingComplexId: string, context: ResolverContext): Promise<Project>;
12
12
  projectByBuildingLevelId(buildingLevelId: string, context: ResolverContext): Promise<Project>;
13
+ currentProjectType(): Promise<string>;
13
14
  rootTasks(project: Project): Promise<Task[]>;
14
15
  mainPhoto(project: Project): Promise<string | Attachment>;
15
16
  scheduleTable(project: Project): Promise<Attachment | undefined>;
@@ -52,6 +52,9 @@ let ProjectQuery = class ProjectQuery {
52
52
  const result = await queryBuilder.getOne();
53
53
  return result;
54
54
  }
55
+ async currentProjectType() {
56
+ return env_1.config.get('projectType', project_1.ProjectType.DSSP);
57
+ }
55
58
  async rootTasks(project) {
56
59
  return await (0, shell_1.getRepository)(task_1.Task).find({
57
60
  where: {
@@ -143,6 +146,12 @@ tslib_1.__decorate([
143
146
  tslib_1.__metadata("design:paramtypes", [String, Object]),
144
147
  tslib_1.__metadata("design:returntype", Promise)
145
148
  ], ProjectQuery.prototype, "projectByBuildingLevelId", null);
149
+ tslib_1.__decorate([
150
+ (0, type_graphql_1.Query)(returns => String, { description: '프로젝트 타입 조회' }),
151
+ tslib_1.__metadata("design:type", Function),
152
+ tslib_1.__metadata("design:paramtypes", []),
153
+ tslib_1.__metadata("design:returntype", Promise)
154
+ ], ProjectQuery.prototype, "currentProjectType", null);
146
155
  tslib_1.__decorate([
147
156
  (0, type_graphql_1.FieldResolver)(type => [task_1.Task], { nullable: true }),
148
157
  tslib_1.__param(0, (0, type_graphql_1.Root)()),
@@ -1 +1 @@
1
- {"version":3,"file":"project-query.js","sourceRoot":"","sources":["../../../server/service/project/project-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Arg, Args, Ctx } from 'type-graphql'\nimport { IsNull } from 'typeorm'\nimport { Domain, getRepository, ListParam, getQueryBuilderFromListParams } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { Project, ProjectType } from './project'\nimport { Task } from '../task/task'\nimport { ProjectList } from './project-type'\nimport { Attachment } from '@things-factory/attachment-base'\nimport { BuildingComplex } from '@dssp/building-complex'\nimport { config } from '@things-factory/env'\nimport { Kpi, KpiValue } from '@things-factory/kpi'\nconst projectType = config.get('projectType', ProjectType.DSSP)\n\n@Resolver(Project)\nexport class ProjectQuery {\n @Query(returns => Project!, { nullable: true, description: 'To fetch a Project' })\n async project(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Project> {\n const { domain } = context.state\n\n return await getRepository(Project).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Query(returns => ProjectList, { description: '프로젝트 리스트' })\n async projects(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ProjectList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: getRepository(Project),\n alias: 'p',\n searchables: ['name', 'description', 'state']\n })\n\n if (projectType !== ProjectType.DKPI) {\n queryBuilder.andWhere('p.building_complex_id IS NOT NULL')\n }\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => Project!, { nullable: true, description: 'To fetch a Project' })\n async projectByBuildingComplexId(\n @Arg('buildingComplexId') buildingComplexId: string,\n @Ctx() context: ResolverContext\n ): Promise<Project> {\n const { domain } = context.state\n\n return await getRepository(Project).findOne({\n where: { domain: { id: domain.id }, buildingComplex: { id: buildingComplexId } }\n })\n }\n\n @Query(returns => Project!, { description: 'To fetch Project' })\n async projectByBuildingLevelId(\n @Arg('buildingLevelId') buildingLevelId: string,\n @Ctx() context: ResolverContext\n ): Promise<Project> {\n const queryBuilder = getRepository(Project)\n .createQueryBuilder('p')\n .innerJoin('building_complexes', 'bc', 'p.building_complex_id = bc.id')\n .innerJoin('buildings', 'b', 'b.building_complex_id = bc.id')\n .innerJoin('building_levels', 'bl', 'bl.building_id = b.id')\n .where('bl.id = :buildingLevelId', { buildingLevelId })\n\n const result = await queryBuilder.getOne()\n\n return result\n }\n\n @FieldResolver(type => [Task], { nullable: true })\n async rootTasks(@Root() project: Project): Promise<Task[]> {\n return await getRepository<Task>(Task).find({\n where: {\n project: { id: project.id },\n parent: IsNull()\n }\n })\n }\n\n @FieldResolver(type => Attachment)\n async mainPhoto(@Root() project: Project): Promise<string | Attachment> {\n const attachment: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain: { id: project.domainId },\n refBy: project.id\n },\n order: { createdAt: 'ASC' }\n })\n\n return attachment\n }\n\n @FieldResolver(type => Attachment)\n async scheduleTable(@Root() project: Project): Promise<Attachment | undefined> {\n const attachment: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain: { id: project.domainId },\n refBy: project.id,\n refType: Project.name + '_schedule_table'\n }\n })\n\n return attachment\n }\n\n @FieldResolver(type => Attachment)\n async completeReport(@Root() project: Project): Promise<Attachment | undefined> {\n if (!project.completeReportId) {\n return undefined\n }\n\n const attachment: Attachment = await getRepository(Attachment).findOne({\n where: { id: project.completeReportId }\n })\n\n return attachment\n }\n\n @FieldResolver(type => BuildingComplex)\n async buildingComplex(@Root() project: Project): Promise<BuildingComplex> {\n return await getRepository(BuildingComplex).findOneBy({ id: project.buildingComplexId })\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() project: Project): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: project.domainId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() project: Project): Promise<User> {\n return await getRepository(User).findOneBy({ id: project.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() project: Project): Promise<User> {\n return await getRepository(User).findOneBy({ id: project.creatorId })\n }\n\n @FieldResolver(type => String)\n async projectType(@Root() project: Project): Promise<string> {\n return config.get('projectType', ProjectType.DSSP)\n }\n\n @FieldResolver(type => Number)\n async kpi(@Root() project: Project): Promise<number> {\n const kpi = await getRepository(Kpi).findOneBy({ domain: { id: project.domainId }, name: 'Z. 전체스코어' })\n const kpiValue = await getRepository(KpiValue).findOneBy({ group: project.id, kpi: { id: kpi.id } })\n\n return kpiValue ? (kpiValue.value || 0) * 20 : project.kpi\n }\n}\n"]}
1
+ {"version":3,"file":"project-query.js","sourceRoot":"","sources":["../../../server/service/project/project-query.ts"],"names":[],"mappings":";;;;AAAA,+CAAmF;AACnF,qCAAgC;AAChC,iDAAuG;AACvG,yDAAgD;AAChD,uCAAgD;AAChD,uCAAmC;AACnC,iDAA4C;AAC5C,qEAA4D;AAC5D,6DAAwD;AACxD,6CAA4C;AAC5C,6CAAmD;AACnD,MAAM,WAAW,GAAG,YAAM,CAAC,GAAG,CAAC,aAAa,EAAE,qBAAW,CAAC,IAAI,CAAC,CAAA;AAGxD,IAAM,YAAY,GAAlB,MAAM,YAAY;IAEjB,AAAN,KAAK,CAAC,OAAO,CAAY,EAAU,EAAS,OAAwB;QAClE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,OAAO,MAAM,IAAA,qBAAa,EAAC,iBAAO,CAAC,CAAC,OAAO,CAAC;YAC1C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;SACzC,CAAC,CAAA;IACJ,CAAC;IAGK,AAAN,KAAK,CAAC,QAAQ,CAAS,MAAiB,EAAS,OAAwB;QACvE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,MAAM,YAAY,GAAG,IAAA,qCAA6B,EAAC;YACjD,MAAM;YACN,MAAM;YACN,UAAU,EAAE,IAAA,qBAAa,EAAC,iBAAO,CAAC;YAClC,KAAK,EAAE,GAAG;YACV,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC;SAC9C,CAAC,CAAA;QAEF,IAAI,WAAW,KAAK,qBAAW,CAAC,IAAI,EAAE,CAAC;YACrC,YAAY,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAA;QAC5D,CAAC;QAED,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,0BAA0B,CACJ,iBAAyB,EAC5C,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,OAAO,MAAM,IAAA,qBAAa,EAAC,iBAAO,CAAC,CAAC,OAAO,CAAC;YAC1C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE;SACjF,CAAC,CAAA;IACJ,CAAC;IAGK,AAAN,KAAK,CAAC,wBAAwB,CACJ,eAAuB,EACxC,OAAwB;QAE/B,MAAM,YAAY,GAAG,IAAA,qBAAa,EAAC,iBAAO,CAAC;aACxC,kBAAkB,CAAC,GAAG,CAAC;aACvB,SAAS,CAAC,oBAAoB,EAAE,IAAI,EAAE,+BAA+B,CAAC;aACtE,SAAS,CAAC,WAAW,EAAE,GAAG,EAAE,+BAA+B,CAAC;aAC5D,SAAS,CAAC,iBAAiB,EAAE,IAAI,EAAE,uBAAuB,CAAC;aAC3D,KAAK,CAAC,0BAA0B,EAAE,EAAE,eAAe,EAAE,CAAC,CAAA;QAEzD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,CAAA;QAE1C,OAAO,MAAM,CAAA;IACf,CAAC;IAGK,AAAN,KAAK,CAAC,kBAAkB;QACtB,OAAO,YAAM,CAAC,GAAG,CAAC,aAAa,EAAE,qBAAW,CAAC,IAAI,CAAC,CAAA;IACpD,CAAC;IAGK,AAAN,KAAK,CAAC,SAAS,CAAS,OAAgB;QACtC,OAAO,MAAM,IAAA,qBAAa,EAAO,WAAI,CAAC,CAAC,IAAI,CAAC;YAC1C,KAAK,EAAE;gBACL,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE;gBAC3B,MAAM,EAAE,IAAA,gBAAM,GAAE;aACjB;SACF,CAAC,CAAA;IACJ,CAAC;IAGK,AAAN,KAAK,CAAC,SAAS,CAAS,OAAgB;QACtC,MAAM,UAAU,GAAe,MAAM,IAAA,qBAAa,EAAC,4BAAU,CAAC,CAAC,OAAO,CAAC;YACrE,KAAK,EAAE;gBACL,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE;gBAChC,KAAK,EAAE,OAAO,CAAC,EAAE;aAClB;YACD,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;SAC5B,CAAC,CAAA;QAEF,OAAO,UAAU,CAAA;IACnB,CAAC;IAGK,AAAN,KAAK,CAAC,aAAa,CAAS,OAAgB;QAC1C,MAAM,UAAU,GAAe,MAAM,IAAA,qBAAa,EAAC,4BAAU,CAAC,CAAC,OAAO,CAAC;YACrE,KAAK,EAAE;gBACL,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE;gBAChC,KAAK,EAAE,OAAO,CAAC,EAAE;gBACjB,OAAO,EAAE,iBAAO,CAAC,IAAI,GAAG,iBAAiB;aAC1C;SACF,CAAC,CAAA;QAEF,OAAO,UAAU,CAAA;IACnB,CAAC;IAGK,AAAN,KAAK,CAAC,cAAc,CAAS,OAAgB;QAC3C,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,UAAU,GAAe,MAAM,IAAA,qBAAa,EAAC,4BAAU,CAAC,CAAC,OAAO,CAAC;YACrE,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,gBAAgB,EAAE;SACxC,CAAC,CAAA;QAEF,OAAO,UAAU,CAAA;IACnB,CAAC;IAGK,AAAN,KAAK,CAAC,eAAe,CAAS,OAAgB;QAC5C,OAAO,MAAM,IAAA,qBAAa,EAAC,kCAAe,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAA;IAC1F,CAAC;IAGK,AAAN,KAAK,CAAC,MAAM,CAAS,OAAgB;QACnC,OAAO,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IACxE,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,OAAgB;QACpC,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;IACvE,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,OAAgB;QACpC,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;IACvE,CAAC;IAGK,AAAN,KAAK,CAAC,WAAW,CAAS,OAAgB;QACxC,OAAO,YAAM,CAAC,GAAG,CAAC,aAAa,EAAE,qBAAW,CAAC,IAAI,CAAC,CAAA;IACpD,CAAC;IAGK,AAAN,KAAK,CAAC,GAAG,CAAS,OAAgB;QAChC,MAAM,GAAG,GAAG,MAAM,IAAA,qBAAa,EAAC,SAAG,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;QACtG,MAAM,QAAQ,GAAG,MAAM,IAAA,qBAAa,EAAC,cAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QAEpG,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAA;IAC5D,CAAC;CACF,CAAA;AAlJY,oCAAY;AAEjB;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,iBAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACnE,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;2CAM1C;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,0BAAW,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;IAC3C,mBAAA,IAAA,mBAAI,GAAE,CAAA;IAAqB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAAjB,iBAAS;;4CAkBvC;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,iBAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC;IAE/E,mBAAA,IAAA,kBAAG,EAAC,mBAAmB,CAAC,CAAA;IACxB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;8DAOP;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,iBAAQ,EAAE,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAE7D,mBAAA,IAAA,kBAAG,EAAC,iBAAiB,CAAC,CAAA;IACtB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;4DAYP;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;;;;sDAGvD;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjC,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAU,iBAAO;;6CAOvC;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,4BAAU,CAAC;IACjB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAU,iBAAO;;6CAUvC;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,4BAAU,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAU,iBAAO;;iDAU3C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,4BAAU,CAAC;IACZ,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAU,iBAAO;;kDAU5C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,kCAAe,CAAC;IAChB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAU,iBAAO;;mDAE7C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IAChB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAU,iBAAO;;0CAEpC;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAU,iBAAO;;2CAErC;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAU,iBAAO;;2CAErC;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;IACX,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAU,iBAAO;;+CAEzC;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;IACnB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAU,iBAAO;;uCAKjC;uBAjJU,YAAY;IADxB,IAAA,uBAAQ,EAAC,iBAAO,CAAC;GACL,YAAY,CAkJxB","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Arg, Args, Ctx } from 'type-graphql'\nimport { IsNull } from 'typeorm'\nimport { Domain, getRepository, ListParam, getQueryBuilderFromListParams } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { Project, ProjectType } from './project'\nimport { Task } from '../task/task'\nimport { ProjectList } from './project-type'\nimport { Attachment } from '@things-factory/attachment-base'\nimport { BuildingComplex } from '@dssp/building-complex'\nimport { config } from '@things-factory/env'\nimport { Kpi, KpiValue } from '@things-factory/kpi'\nconst projectType = config.get('projectType', ProjectType.DSSP)\n\n@Resolver(Project)\nexport class ProjectQuery {\n @Query(returns => Project!, { nullable: true, description: 'To fetch a Project' })\n async project(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Project> {\n const { domain } = context.state\n\n return await getRepository(Project).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Query(returns => ProjectList, { description: '프로젝트 리스트' })\n async projects(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ProjectList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: getRepository(Project),\n alias: 'p',\n searchables: ['name', 'description', 'state']\n })\n\n if (projectType !== ProjectType.DKPI) {\n queryBuilder.andWhere('p.building_complex_id IS NOT NULL')\n }\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => Project!, { nullable: true, description: 'To fetch a Project' })\n async projectByBuildingComplexId(\n @Arg('buildingComplexId') buildingComplexId: string,\n @Ctx() context: ResolverContext\n ): Promise<Project> {\n const { domain } = context.state\n\n return await getRepository(Project).findOne({\n where: { domain: { id: domain.id }, buildingComplex: { id: buildingComplexId } }\n })\n }\n\n @Query(returns => Project!, { description: 'To fetch Project' })\n async projectByBuildingLevelId(\n @Arg('buildingLevelId') buildingLevelId: string,\n @Ctx() context: ResolverContext\n ): Promise<Project> {\n const queryBuilder = getRepository(Project)\n .createQueryBuilder('p')\n .innerJoin('building_complexes', 'bc', 'p.building_complex_id = bc.id')\n .innerJoin('buildings', 'b', 'b.building_complex_id = bc.id')\n .innerJoin('building_levels', 'bl', 'bl.building_id = b.id')\n .where('bl.id = :buildingLevelId', { buildingLevelId })\n\n const result = await queryBuilder.getOne()\n\n return result\n }\n\n @Query(returns => String, { description: '프로젝트 타입 조회' })\n async currentProjectType(): Promise<string> {\n return config.get('projectType', ProjectType.DSSP)\n }\n\n @FieldResolver(type => [Task], { nullable: true })\n async rootTasks(@Root() project: Project): Promise<Task[]> {\n return await getRepository<Task>(Task).find({\n where: {\n project: { id: project.id },\n parent: IsNull()\n }\n })\n }\n\n @FieldResolver(type => Attachment)\n async mainPhoto(@Root() project: Project): Promise<string | Attachment> {\n const attachment: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain: { id: project.domainId },\n refBy: project.id\n },\n order: { createdAt: 'ASC' }\n })\n\n return attachment\n }\n\n @FieldResolver(type => Attachment)\n async scheduleTable(@Root() project: Project): Promise<Attachment | undefined> {\n const attachment: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain: { id: project.domainId },\n refBy: project.id,\n refType: Project.name + '_schedule_table'\n }\n })\n\n return attachment\n }\n\n @FieldResolver(type => Attachment)\n async completeReport(@Root() project: Project): Promise<Attachment | undefined> {\n if (!project.completeReportId) {\n return undefined\n }\n\n const attachment: Attachment = await getRepository(Attachment).findOne({\n where: { id: project.completeReportId }\n })\n\n return attachment\n }\n\n @FieldResolver(type => BuildingComplex)\n async buildingComplex(@Root() project: Project): Promise<BuildingComplex> {\n return await getRepository(BuildingComplex).findOneBy({ id: project.buildingComplexId })\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() project: Project): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: project.domainId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() project: Project): Promise<User> {\n return await getRepository(User).findOneBy({ id: project.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() project: Project): Promise<User> {\n return await getRepository(User).findOneBy({ id: project.creatorId })\n }\n\n @FieldResolver(type => String)\n async projectType(@Root() project: Project): Promise<string> {\n return config.get('projectType', ProjectType.DSSP)\n }\n\n @FieldResolver(type => Number)\n async kpi(@Root() project: Project): Promise<number> {\n const kpi = await getRepository(Kpi).findOneBy({ domain: { id: project.domainId }, name: 'Z. 전체스코어' })\n const kpiValue = await getRepository(KpiValue).findOneBy({ group: project.id, kpi: { id: kpi.id } })\n\n return kpiValue ? (kpiValue.value || 0) * 20 : project.kpi\n }\n}\n"]}