@things-factory/dataset 9.0.2 → 9.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/service/data-archive/data-archive-mutation.js +18 -6
- package/dist-server/service/data-archive/data-archive-mutation.js.map +1 -1
- package/dist-server/service/data-archive/data-archive-query.js +15 -5
- package/dist-server/service/data-archive/data-archive-query.js.map +1 -1
- package/dist-server/service/data-archive/data-archive-type.js +11 -8
- package/dist-server/service/data-archive/data-archive-type.js.map +1 -1
- package/dist-server/service/data-archive/data-archive.js +10 -5
- package/dist-server/service/data-archive/data-archive.js.map +1 -1
- package/dist-server/service/data-key-set/data-key-item-type.js +10 -8
- package/dist-server/service/data-key-set/data-key-item-type.js.map +1 -1
- package/dist-server/service/data-key-set/data-key-set-mutation.js +18 -6
- package/dist-server/service/data-key-set/data-key-set-mutation.js.map +1 -1
- package/dist-server/service/data-key-set/data-key-set-query.js +19 -6
- package/dist-server/service/data-key-set/data-key-set-query.js.map +1 -1
- package/dist-server/service/data-key-set/data-key-set-type.js +17 -11
- package/dist-server/service/data-key-set/data-key-set-type.js.map +1 -1
- package/dist-server/service/data-key-set/data-key-set.js +8 -3
- package/dist-server/service/data-key-set/data-key-set.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc-mutation.js +6 -2
- package/dist-server/service/data-ooc/data-ooc-mutation.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc-query.js +27 -9
- package/dist-server/service/data-ooc/data-ooc-query.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc-subscription.d.ts +5 -0
- package/dist-server/service/data-ooc/data-ooc-subscription.js +15 -1
- package/dist-server/service/data-ooc/data-ooc-subscription.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc-type.js +29 -20
- package/dist-server/service/data-ooc/data-ooc-type.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc.js +11 -6
- package/dist-server/service/data-ooc/data-ooc.js.map +1 -1
- package/dist-server/service/data-sample/data-sample-mutation.js +3 -1
- package/dist-server/service/data-sample/data-sample-mutation.js.map +1 -1
- package/dist-server/service/data-sample/data-sample-query.js +24 -8
- package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
- package/dist-server/service/data-sample/data-sample-type.js +13 -13
- package/dist-server/service/data-sample/data-sample-type.js.map +1 -1
- package/dist-server/service/data-sample/data-sample.js +11 -6
- package/dist-server/service/data-sample/data-sample.js.map +1 -1
- package/dist-server/service/data-sensor/data-sensor-mutation.js +15 -5
- package/dist-server/service/data-sensor/data-sensor-mutation.js.map +1 -1
- package/dist-server/service/data-sensor/data-sensor-query.js +24 -8
- package/dist-server/service/data-sensor/data-sensor-query.js.map +1 -1
- package/dist-server/service/data-sensor/data-sensor-type.js +19 -19
- package/dist-server/service/data-sensor/data-sensor-type.js.map +1 -1
- package/dist-server/service/data-sensor/data-sensor.js +11 -9
- package/dist-server/service/data-sensor/data-sensor.js.map +1 -1
- package/dist-server/service/data-set/data-set-mutation.js +25 -9
- package/dist-server/service/data-set/data-set-mutation.js.map +1 -1
- package/dist-server/service/data-set/data-set-query.js +24 -8
- package/dist-server/service/data-set/data-set-query.js.map +1 -1
- package/dist-server/service/data-set/data-set-type.js +3 -1
- package/dist-server/service/data-set/data-set-type.js.map +1 -1
- package/dist-server/service/data-set-history/data-set-history-type.js +3 -3
- package/dist-server/service/data-set-history/data-set-history-type.js.map +1 -1
- package/dist-server/service/data-set-history/data-set-history.js +56 -37
- package/dist-server/service/data-set-history/data-set-history.js.map +1 -1
- package/dist-server/service/data-spec/data-spec.js +24 -14
- package/dist-server/service/data-spec/data-spec.js.map +1 -1
- package/dist-server/service/data-summary/data-summary-mutation.js +6 -2
- package/dist-server/service/data-summary/data-summary-mutation.js.map +1 -1
- package/dist-server/service/data-summary/data-summary-query.js +25 -8
- package/dist-server/service/data-summary/data-summary-query.js.map +1 -1
- package/dist-server/service/data-summary/data-summary-type.js +25 -23
- package/dist-server/service/data-summary/data-summary-type.js.map +1 -1
- package/dist-server/service/data-summary/data-summary.js +8 -6
- package/dist-server/service/data-summary/data-summary.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data-summary-query.js","sourceRoot":"","sources":["../../../server/service/data-summary/data-summary-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { In } from 'typeorm'\nimport { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { DataKeySet } from '../data-key-set/data-key-set.js'\nimport { DataItem } from '../data-set/data-item-type.js'\nimport { DataSet } from '../data-set/data-set.js'\nimport { DataSummary } from './data-summary.js'\nimport { DataSummaryList, DynamicDataSummary } from './data-summary-type.js'\nimport { queryDataSummaryByPeriod } from '../../controllers/query-data-summary-by-period.js'\n\n@Resolver(DataSummary)\nexport class DataSummaryQuery {\n @Query(returns => DataSummary!, { nullable: true, description: 'To fetch a DataSummary' })\n async dataSummary(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<DataSummary> {\n const { domain } = context.state\n\n return await getRepository(DataSummary).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Query(returns => DataSummaryList, { description: 'To fetch multiple DataSummaries' })\n async dataSummaries(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DataSummaryList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(DataSummary),\n searchables: ['name', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => [DynamicDataSummary], { description: 'To fetch multiple dynamically grouped DataSummaries' })\n async dataSummaryByPeriod(\n @Arg('period') period: 'today' | 'this month' | '30 days' | 'this year' | '12 months' | 'date range' | 'month',\n @Arg('dataSetName') dataSetName: string,\n @Arg('dataKeys', type => [String], { nullable: true }) dataKeys: string[] | null,\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DynamicDataSummary[]> {\n return await queryDataSummaryByPeriod(period, dataSetName, dataKeys, params, context)\n }\n\n @Directive('@privilege(category: \"data-summary\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataSummaryList, { description: 'To fetch multiple data summaries by data set name' })\n async dataSummariesByDataSetName(\n @Arg('dataSetName') dataSetName: string,\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DataSummaryList> {\n const { domain } = context.state\n\n const dataSet = await getRepository(DataSet).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, name: dataSetName },\n relations: ['dataKeySet']\n })\n\n if (!dataSet) {\n throw new Error(`dataSet not found by the given dataSetName(${dataSetName})`)\n }\n\n const dataKeyItems = dataSet.dataKeySet?.dataKeyItems || []\n const searchables = dataKeyItems.map((item, index) => `key0${index + 1}`)\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(DataSummary),\n params,\n domain,\n alias: 'summary',\n searchables: ['name', 'description'].concat(searchables)\n }).innerJoin('summary.dataSet', 'ds', 'ds.id = :dataSetName', {\n dataSetName: dataSet.id\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"data-summary\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataSummaryList, { description: 'To fetch multiple data summaries by data set' })\n async dataSummariesByDataSet(\n @Arg('dataSetId') dataSetId: string,\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DataSummaryList> {\n const { domain } = context.state\n\n const dataSet = await getRepository(DataSet).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id: dataSetId },\n relations: ['dataKeySet']\n })\n\n if (!dataSet) {\n throw new Error(`dataSet not found by the given dataSetId(${dataSetId})`)\n }\n\n const dataKeyItems = dataSet.dataKeySet?.dataKeyItems || []\n const searchables = dataKeyItems.map((item, index) => `key0${index + 1}`)\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(DataSummary),\n params,\n domain,\n alias: 'summary',\n searchables: ['name', 'description'].concat(searchables)\n }).innerJoin('summary.dataSet', 'ds', 'ds.id = :dataSetId', {\n dataSetId\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"data-summary\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataSummaryList, { description: 'To fetch multiple data summaries by data key set' })\n async dataSummariesByDataKeySet(\n @Arg('dataKeySetId') dataKeySetId: string,\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DataSummaryList> {\n const { domain } = context.state\n\n const dataKeySet = await getRepository(DataKeySet).findOneBy({ id: dataKeySetId })\n const dataKeyItems = dataKeySet?.dataKeyItems || []\n const searchables = dataKeyItems.map((item, index) => `key0${index + 1}`)\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(DataSummary),\n params,\n domain,\n alias: 'summary',\n searchables: ['name', 'description'].concat(searchables)\n }).innerJoin('summary.dataSet', 'ds', 'ds.dataKeySet = :dataKeySetId', {\n dataKeySetId\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => [DataItem])\n async dataItems(@Root() dataSummary: DataSummary): Promise<DataItem[]> {\n const dataSet = dataSummary.dataSetId && (await getRepository(DataSet).findOneBy({ id: dataSummary.dataSetId }))\n\n return dataSet?.dataItems.filter(item => item.active) || []\n }\n\n @FieldResolver(type => DataSet)\n async dataSet(@Root() dataSummary: DataSummary): Promise<DataSet> {\n return dataSummary.dataSetId && (await getRepository(DataSet).findOneBy({ id: dataSummary.dataSetId }))\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() dataSummary: DataSummary): Promise<Domain> {\n return dataSummary.domainId && (await getRepository(Domain).findOneBy({ id: dataSummary.domainId }))\n }\n\n @FieldResolver(type => User)\n async updater(@Root() dataSummary: DataSummary): Promise<User> {\n return dataSummary.updaterId && (await getRepository(User).findOneBy({ id: dataSummary.updaterId }))\n }\n\n @FieldResolver(type => User)\n async creator(@Root() dataSummary: DataSummary): Promise<User> {\n return dataSummary.creatorId && (await getRepository(User).findOneBy({ id: dataSummary.creatorId }))\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"data-summary-query.js","sourceRoot":"","sources":["../../../server/service/data-summary/data-summary-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { In } from 'typeorm'\nimport { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { DataKeySet } from '../data-key-set/data-key-set.js'\nimport { DataItem } from '../data-set/data-item-type.js'\nimport { DataSet } from '../data-set/data-set.js'\nimport { DataSummary } from './data-summary.js'\nimport { DataSummaryList, DynamicDataSummary } from './data-summary-type.js'\nimport { queryDataSummaryByPeriod } from '../../controllers/query-data-summary-by-period.js'\n\n@Resolver(DataSummary)\nexport class DataSummaryQuery {\n @Query(returns => DataSummary!, {\n nullable: true,\n description:\n 'Retrieves a single data summary by its unique identifier. This query fetches aggregated statistical information about data samples including averages, counts, and other summary statistics for a specific time period.'\n })\n async dataSummary(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<DataSummary> {\n const { domain } = context.state\n\n return await getRepository(DataSummary).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Query(returns => DataSummaryList, {\n description:\n 'Retrieves multiple data summaries with pagination and filtering support. This query allows searching summaries by name and description, and is used for listing and browsing aggregated statistical data across all datasets.'\n })\n async dataSummaries(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DataSummaryList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(DataSummary),\n searchables: ['name', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => [DynamicDataSummary], {\n description:\n 'Retrieves dynamically grouped data summaries for a specific time period and dataset. This query provides aggregated statistical information grouped by data keys, enabling trend analysis and performance monitoring across different dimensions.'\n })\n async dataSummaryByPeriod(\n @Arg('period') period: 'today' | 'this month' | '30 days' | 'this year' | '12 months' | 'date range' | 'month',\n @Arg('dataSetName') dataSetName: string,\n @Arg('dataKeys', type => [String], { nullable: true }) dataKeys: string[] | null,\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DynamicDataSummary[]> {\n return await queryDataSummaryByPeriod(period, dataSetName, dataKeys, params, context)\n }\n\n @Directive('@privilege(category: \"data-summary\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataSummaryList, {\n description:\n \"Retrieves data summaries that belong to a specific dataset by dataset name. This query filters summaries by dataset name and includes searchable fields based on the dataset's key configuration, enabling targeted statistical analysis within a particular dataset context.\"\n })\n async dataSummariesByDataSetName(\n @Arg('dataSetName') dataSetName: string,\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DataSummaryList> {\n const { domain } = context.state\n\n const dataSet = await getRepository(DataSet).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, name: dataSetName },\n relations: ['dataKeySet']\n })\n\n if (!dataSet) {\n throw new Error(`dataSet not found by the given dataSetName(${dataSetName})`)\n }\n\n const dataKeyItems = dataSet.dataKeySet?.dataKeyItems || []\n const searchables = dataKeyItems.map((item, index) => `key0${index + 1}`)\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(DataSummary),\n params,\n domain,\n alias: 'summary',\n searchables: ['name', 'description'].concat(searchables)\n }).innerJoin('summary.dataSet', 'ds', 'ds.id = :dataSetName', {\n dataSetName: dataSet.id\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"data-summary\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataSummaryList, {\n description:\n \"Retrieves data summaries that belong to a specific dataset by dataset ID. This query filters summaries by dataset ID and includes searchable fields based on the dataset's key configuration, enabling targeted statistical analysis within a particular dataset context.\"\n })\n async dataSummariesByDataSet(\n @Arg('dataSetId') dataSetId: string,\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DataSummaryList> {\n const { domain } = context.state\n\n const dataSet = await getRepository(DataSet).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id: dataSetId },\n relations: ['dataKeySet']\n })\n\n if (!dataSet) {\n throw new Error(`dataSet not found by the given dataSetId(${dataSetId})`)\n }\n\n const dataKeyItems = dataSet.dataKeySet?.dataKeyItems || []\n const searchables = dataKeyItems.map((item, index) => `key0${index + 1}`)\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(DataSummary),\n params,\n domain,\n alias: 'summary',\n searchables: ['name', 'description'].concat(searchables)\n }).innerJoin('summary.dataSet', 'ds', 'ds.id = :dataSetId', {\n dataSetId\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"data-summary\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataSummaryList, {\n description:\n 'Retrieves data summaries that belong to datasets using a specific data key set. This query filters summaries by key set ID and enables cross-dataset statistical analysis based on shared key configurations, useful for comparing aggregated data across related datasets.'\n })\n async dataSummariesByDataKeySet(\n @Arg('dataKeySetId') dataKeySetId: string,\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DataSummaryList> {\n const { domain } = context.state\n\n const dataKeySet = await getRepository(DataKeySet).findOneBy({ id: dataKeySetId })\n const dataKeyItems = dataKeySet?.dataKeyItems || []\n const searchables = dataKeyItems.map((item, index) => `key0${index + 1}`)\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(DataSummary),\n params,\n domain,\n alias: 'summary',\n searchables: ['name', 'description'].concat(searchables)\n }).innerJoin('summary.dataSet', 'ds', 'ds.dataKeySet = :dataKeySetId', {\n dataKeySetId\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => [DataItem], {\n description:\n 'Retrieves the data items (field definitions) associated with this data summary. These items define the structure and validation rules for the summary data, including field names, types, and constraints.'\n })\n async dataItems(@Root() dataSummary: DataSummary): Promise<DataItem[]> {\n const dataSet = dataSummary.dataSetId && (await getRepository(DataSet).findOneBy({ id: dataSummary.dataSetId }))\n\n return dataSet?.dataItems.filter(item => item.active) || []\n }\n\n @FieldResolver(type => DataSet, {\n description:\n 'Retrieves the dataset that this data summary belongs to. This field resolver provides access to the dataset configuration and settings associated with the summary.'\n })\n async dataSet(@Root() dataSummary: DataSummary): Promise<DataSet> {\n return dataSummary.dataSetId && (await getRepository(DataSet).findOneBy({ id: dataSummary.dataSetId }))\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() dataSummary: DataSummary): Promise<Domain> {\n return dataSummary.domainId && (await getRepository(Domain).findOneBy({ id: dataSummary.domainId }))\n }\n\n @FieldResolver(type => User)\n async updater(@Root() dataSummary: DataSummary): Promise<User> {\n return dataSummary.updaterId && (await getRepository(User).findOneBy({ id: dataSummary.updaterId }))\n }\n\n @FieldResolver(type => User)\n async creator(@Root() dataSummary: DataSummary): Promise<User> {\n return dataSummary.creatorId && (await getRepository(User).findOneBy({ id: dataSummary.creatorId }))\n }\n}\n"]}
|
@@ -8,7 +8,7 @@ let NewDataSummary = class NewDataSummary {
|
|
8
8
|
};
|
9
9
|
exports.NewDataSummary = NewDataSummary;
|
10
10
|
tslib_1.__decorate([
|
11
|
-
(0, type_graphql_1.Field)(),
|
11
|
+
(0, type_graphql_1.Field)({ description: 'Name of the data summary for identification.' }),
|
12
12
|
tslib_1.__metadata("design:type", String)
|
13
13
|
], NewDataSummary.prototype, "name", void 0);
|
14
14
|
tslib_1.__decorate([
|
@@ -30,11 +30,11 @@ tslib_1.__decorate([
|
|
30
30
|
tslib_1.__metadata("design:type", String)
|
31
31
|
], DataSummaryPatch.prototype, "name", void 0);
|
32
32
|
tslib_1.__decorate([
|
33
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
33
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Description of the data summary.' }),
|
34
34
|
tslib_1.__metadata("design:type", String)
|
35
35
|
], DataSummaryPatch.prototype, "description", void 0);
|
36
36
|
tslib_1.__decorate([
|
37
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
37
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Create/Update flag for batch operations.' }),
|
38
38
|
tslib_1.__metadata("design:type", String)
|
39
39
|
], DataSummaryPatch.prototype, "cuFlag", void 0);
|
40
40
|
exports.DataSummaryPatch = DataSummaryPatch = tslib_1.__decorate([
|
@@ -54,84 +54,86 @@ let DynamicDataSummary = class DynamicDataSummary {
|
|
54
54
|
};
|
55
55
|
exports.DynamicDataSummary = DynamicDataSummary;
|
56
56
|
tslib_1.__decorate([
|
57
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
57
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Month identifier for the summary period.' }),
|
58
58
|
tslib_1.__metadata("design:type", String)
|
59
59
|
], DynamicDataSummary.prototype, "month", void 0);
|
60
60
|
tslib_1.__decorate([
|
61
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
61
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Date identifier for the summary period.' }),
|
62
62
|
tslib_1.__metadata("design:type", String)
|
63
63
|
], DynamicDataSummary.prototype, "date", void 0);
|
64
64
|
tslib_1.__decorate([
|
65
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
65
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Period identifier for the summary (e.g., hour, day, shift).' }),
|
66
66
|
tslib_1.__metadata("design:type", String)
|
67
67
|
], DynamicDataSummary.prototype, "period", void 0);
|
68
68
|
tslib_1.__decorate([
|
69
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
69
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Total number of data samples in this summary period.' }),
|
70
70
|
tslib_1.__metadata("design:type", Number)
|
71
71
|
], DynamicDataSummary.prototype, "count", void 0);
|
72
72
|
tslib_1.__decorate([
|
73
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
73
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Number of out-of-control (OOC) samples in this summary period.' }),
|
74
74
|
tslib_1.__metadata("design:type", Number)
|
75
75
|
], DynamicDataSummary.prototype, "countOoc", void 0);
|
76
76
|
tslib_1.__decorate([
|
77
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
77
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Number of out-of-specification (OOS) samples in this summary period.' }),
|
78
78
|
tslib_1.__metadata("design:type", Number)
|
79
79
|
], DynamicDataSummary.prototype, "countOos", void 0);
|
80
80
|
tslib_1.__decorate([
|
81
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
81
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'First partition key for data categorization.' }),
|
82
82
|
tslib_1.__metadata("design:type", String)
|
83
83
|
], DynamicDataSummary.prototype, "key01", void 0);
|
84
84
|
tslib_1.__decorate([
|
85
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
85
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Second partition key for data categorization.' }),
|
86
86
|
tslib_1.__metadata("design:type", String)
|
87
87
|
], DynamicDataSummary.prototype, "key02", void 0);
|
88
88
|
tslib_1.__decorate([
|
89
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
89
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Third partition key for data categorization.' }),
|
90
90
|
tslib_1.__metadata("design:type", String)
|
91
91
|
], DynamicDataSummary.prototype, "key03", void 0);
|
92
92
|
tslib_1.__decorate([
|
93
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
93
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Fourth partition key for data categorization.' }),
|
94
94
|
tslib_1.__metadata("design:type", String)
|
95
95
|
], DynamicDataSummary.prototype, "key04", void 0);
|
96
96
|
tslib_1.__decorate([
|
97
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
97
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Fifth partition key for data categorization.' }),
|
98
98
|
tslib_1.__metadata("design:type", String)
|
99
99
|
], DynamicDataSummary.prototype, "key05", void 0);
|
100
100
|
tslib_1.__decorate([
|
101
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
101
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'First aggregated data value for this summary period.' }),
|
102
102
|
tslib_1.__metadata("design:type", Number)
|
103
103
|
], DynamicDataSummary.prototype, "data01", void 0);
|
104
104
|
tslib_1.__decorate([
|
105
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
105
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Second aggregated data value for this summary period.' }),
|
106
106
|
tslib_1.__metadata("design:type", Number)
|
107
107
|
], DynamicDataSummary.prototype, "data02", void 0);
|
108
108
|
tslib_1.__decorate([
|
109
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
109
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Third aggregated data value for this summary period.' }),
|
110
110
|
tslib_1.__metadata("design:type", Number)
|
111
111
|
], DynamicDataSummary.prototype, "data03", void 0);
|
112
112
|
tslib_1.__decorate([
|
113
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
113
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Fourth aggregated data value for this summary period.' }),
|
114
114
|
tslib_1.__metadata("design:type", Number)
|
115
115
|
], DynamicDataSummary.prototype, "data04", void 0);
|
116
116
|
tslib_1.__decorate([
|
117
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
117
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Fifth aggregated data value for this summary period.' }),
|
118
118
|
tslib_1.__metadata("design:type", Number)
|
119
119
|
], DynamicDataSummary.prototype, "data05", void 0);
|
120
120
|
exports.DynamicDataSummary = DynamicDataSummary = tslib_1.__decorate([
|
121
|
-
(0, type_graphql_1.ObjectType)(
|
121
|
+
(0, type_graphql_1.ObjectType)({
|
122
|
+
description: 'Represents a dynamic data summary with flexible key-value pairs for different summary periods.'
|
123
|
+
})
|
122
124
|
], DynamicDataSummary);
|
123
125
|
let DataSummaryList = class DataSummaryList {
|
124
126
|
};
|
125
127
|
exports.DataSummaryList = DataSummaryList;
|
126
128
|
tslib_1.__decorate([
|
127
|
-
(0, type_graphql_1.Field)(type => [data_summary_js_1.DataSummary]),
|
129
|
+
(0, type_graphql_1.Field)(type => [data_summary_js_1.DataSummary], { description: 'List of data summaries.' }),
|
128
130
|
tslib_1.__metadata("design:type", Array)
|
129
131
|
], DataSummaryList.prototype, "items", void 0);
|
130
132
|
tslib_1.__decorate([
|
131
|
-
(0, type_graphql_1.Field)(type => type_graphql_1.Int),
|
133
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Total number of data summaries in the list.' }),
|
132
134
|
tslib_1.__metadata("design:type", Number)
|
133
135
|
], DataSummaryList.prototype, "total", void 0);
|
134
136
|
exports.DataSummaryList = DataSummaryList = tslib_1.__decorate([
|
135
|
-
(0, type_graphql_1.ObjectType)()
|
137
|
+
(0, type_graphql_1.ObjectType)({ description: 'Represents a paginated list of data summaries.' })
|
136
138
|
], DataSummaryList);
|
137
139
|
//# sourceMappingURL=data-summary-type.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data-summary-type.js","sourceRoot":"","sources":["../../../server/service/data-summary/data-summary-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAoE;AACpE,uDAA+C;AAGxC,IAAM,cAAc,GAApB,MAAM,cAAc;CAM1B,CAAA;AANY,wCAAc;AAEzB;IADC,IAAA,oBAAK,
|
1
|
+
{"version":3,"file":"data-summary-type.js","sourceRoot":"","sources":["../../../server/service/data-summary/data-summary-type.ts"],"names":[],"mappings":"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","sourcesContent":["import { ObjectType, Field, InputType, Int, ID } from 'type-graphql'\nimport { DataSummary } from './data-summary.js'\n\n@InputType()\nexport class NewDataSummary {\n @Field({ description: 'Name of the data summary for identification.' })\n name: string\n\n @Field({ nullable: true })\n description?: string\n}\n\n@InputType()\nexport class DataSummaryPatch {\n @Field(type => ID, { nullable: true })\n id?: string\n\n @Field({ nullable: true })\n name?: string\n\n @Field({ nullable: true, description: 'Description of the data summary.' })\n description?: string\n\n @Field({ nullable: true, description: 'Create/Update flag for batch operations.' })\n cuFlag?: string\n}\n\n@ObjectType({\n description: 'Represents a dynamic data summary with flexible key-value pairs for different summary periods.'\n})\nexport class DynamicDataSummary {\n @Field({ nullable: true, description: 'Month identifier for the summary period.' })\n month?: string = ''\n\n @Field({ nullable: true, description: 'Date identifier for the summary period.' })\n date?: string = ''\n\n @Field({ nullable: true, description: 'Period identifier for the summary (e.g., hour, day, shift).' })\n period?: string = ''\n\n @Field({ nullable: true, description: 'Total number of data samples in this summary period.' })\n count?: number\n\n @Field({ nullable: true, description: 'Number of out-of-control (OOC) samples in this summary period.' })\n countOoc?: number\n\n @Field({ nullable: true, description: 'Number of out-of-specification (OOS) samples in this summary period.' })\n countOos?: number\n\n @Field({ nullable: true, description: 'First partition key for data categorization.' })\n key01?: string = ''\n\n @Field({ nullable: true, description: 'Second partition key for data categorization.' })\n key02?: string = ''\n\n @Field({ nullable: true, description: 'Third partition key for data categorization.' })\n key03?: string = ''\n\n @Field({ nullable: true, description: 'Fourth partition key for data categorization.' })\n key04?: string = ''\n\n @Field({ nullable: true, description: 'Fifth partition key for data categorization.' })\n key05?: string = ''\n\n @Field({ nullable: true, description: 'First aggregated data value for this summary period.' })\n data01?: number\n\n @Field({ nullable: true, description: 'Second aggregated data value for this summary period.' })\n data02?: number\n\n @Field({ nullable: true, description: 'Third aggregated data value for this summary period.' })\n data03?: number\n\n @Field({ nullable: true, description: 'Fourth aggregated data value for this summary period.' })\n data04?: number\n\n @Field({ nullable: true, description: 'Fifth aggregated data value for this summary period.' })\n data05?: number\n}\n\n@ObjectType({ description: 'Represents a paginated list of data summaries.' })\nexport class DataSummaryList {\n @Field(type => [DataSummary], { description: 'List of data summaries.' })\n items: DataSummary[]\n\n @Field(type => Int, { description: 'Total number of data summaries in the list.' })\n total: number\n}\n"]}
|
@@ -22,7 +22,7 @@ let DataSummary = class DataSummary {
|
|
22
22
|
exports.DataSummary = DataSummary;
|
23
23
|
tslib_1.__decorate([
|
24
24
|
(0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
|
25
|
-
(0, type_graphql_1.Field)(type => type_graphql_1.ID),
|
25
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.ID, { description: 'Unique identifier for the data summary.' }),
|
26
26
|
tslib_1.__metadata("design:type", String)
|
27
27
|
], DataSummary.prototype, "id", void 0);
|
28
28
|
tslib_1.__decorate([
|
@@ -79,28 +79,28 @@ tslib_1.__decorate([
|
|
79
79
|
], DataSummary.prototype, "dataItems", void 0);
|
80
80
|
tslib_1.__decorate([
|
81
81
|
(0, typeorm_1.Column)('simple-json', { nullable: true }),
|
82
|
-
(0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
|
82
|
+
(0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true, description: 'Aggregated statistical data for this summary period.' }),
|
83
83
|
tslib_1.__metadata("design:type", Object)
|
84
84
|
], DataSummary.prototype, "summary", void 0);
|
85
85
|
tslib_1.__decorate([
|
86
86
|
(0, typeorm_1.Column)({
|
87
87
|
nullable: true
|
88
88
|
}),
|
89
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
89
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Total number of data samples in this summary period.' }),
|
90
90
|
tslib_1.__metadata("design:type", Number)
|
91
91
|
], DataSummary.prototype, "count", void 0);
|
92
92
|
tslib_1.__decorate([
|
93
93
|
(0, typeorm_1.Column)({
|
94
94
|
nullable: true
|
95
95
|
}),
|
96
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
96
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Number of out-of-control (OOC) samples in this summary period.' }),
|
97
97
|
tslib_1.__metadata("design:type", Number)
|
98
98
|
], DataSummary.prototype, "countOoc", void 0);
|
99
99
|
tslib_1.__decorate([
|
100
100
|
(0, typeorm_1.Column)({
|
101
101
|
nullable: true
|
102
102
|
}),
|
103
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
103
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Number of out-of-specification (OOS) samples in this summary period.' }),
|
104
104
|
tslib_1.__metadata("design:type", Number)
|
105
105
|
], DataSummary.prototype, "countOos", void 0);
|
106
106
|
tslib_1.__decorate([
|
@@ -195,6 +195,8 @@ exports.DataSummary = DataSummary = tslib_1.__decorate([
|
|
195
195
|
dataSummary.period
|
196
196
|
], { unique: true }),
|
197
197
|
(0, typeorm_1.Index)('ix_data_summary_1', (dataSummary) => [dataSummary.domain, dataSummary.dataSet, dataSummary.date, dataSummary.period], { unique: false }),
|
198
|
-
(0, type_graphql_1.ObjectType)({
|
198
|
+
(0, type_graphql_1.ObjectType)({
|
199
|
+
description: 'Represents an aggregated summary of collected data for a dataset, including statistics, counts, and partition keys for reporting and analysis.'
|
200
|
+
})
|
199
201
|
], DataSummary);
|
200
202
|
//# sourceMappingURL=data-summary.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data-summary.js","sourceRoot":"","sources":["../../../server/service/data-summary/data-summary.ts"],"names":[],"mappings":";;;;AAAA,qCASgB;AAChB,+CAA2E;AAE3E,iDAA4D;AAC5D,yDAAgD;AAEhD,qEAAwD;AACxD,yDAA2E;
|
1
|
+
{"version":3,"file":"data-summary.js","sourceRoot":"","sources":["../../../server/service/data-summary/data-summary.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CreateDateColumn,\n UpdateDateColumn,\n Entity,\n Index,\n Column,\n RelationId,\n ManyToOne,\n PrimaryGeneratedColumn\n} from 'typeorm'\nimport { ObjectType, Field, Int, ID, registerEnumType } from 'type-graphql'\n\nimport { Domain, ScalarObject } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\n\nimport { DataItem } from '../data-set/data-item-type.js'\nimport { DataSet, DataSetSummaryPeriodType } from '../data-set/data-set.js'\n\n@Entity()\n@Index(\n 'ix_data_summary_0',\n (dataSummary: DataSummary) => [\n dataSummary.domain,\n dataSummary.dataSet,\n dataSummary.key01,\n dataSummary.key02,\n dataSummary.key03,\n dataSummary.key04,\n dataSummary.key05,\n dataSummary.date,\n dataSummary.period\n ],\n { unique: true }\n)\n@Index(\n 'ix_data_summary_1',\n (dataSummary: DataSummary) => [dataSummary.domain, dataSummary.dataSet, dataSummary.date, dataSummary.period],\n { unique: false }\n)\n@ObjectType({\n description:\n 'Represents an aggregated summary of collected data for a dataset, including statistics, counts, and partition keys for reporting and analysis.'\n})\nexport class DataSummary {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID, { description: 'Unique identifier for the data summary.' })\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain)\n domain?: Domain\n\n @RelationId((dataSummary: DataSummary) => dataSummary.domain)\n domainId?: string\n\n @Column()\n @Field({ nullable: true })\n name?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n description?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n type?: DataSetSummaryPeriodType\n\n @Column({ nullable: true, default: '', length: 20 })\n @Field({ nullable: true })\n date?: string = ''\n\n @Column({ nullable: true, default: '', length: 20 })\n @Field({ nullable: true })\n period?: string = ''\n\n @ManyToOne(type => DataSet)\n @Field(type => DataSet, { nullable: false })\n dataSet?: DataSet\n\n @RelationId((dataSample: DataSummary) => dataSample.dataSet)\n dataSetId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n dataSetVersion?: number\n\n @Field(type => [DataItem], { nullable: true })\n dataItems?: DataItem[]\n\n @Column('simple-json', { nullable: true })\n @Field(type => ScalarObject, { nullable: true, description: 'Aggregated statistical data for this summary period.' })\n summary?: any\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true, description: 'Total number of data samples in this summary period.' })\n count?: number\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true, description: 'Number of out-of-control (OOC) samples in this summary period.' })\n countOoc?: number\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true, description: 'Number of out-of-specification (OOS) samples in this summary period.' })\n countOos?: number\n\n @Column({ nullable: true, default: '', length: 100 })\n @Field({ nullable: true })\n key01?: string = ''\n\n @Column({ nullable: true, default: '', length: 100 })\n @Field({ nullable: true })\n key02?: string = ''\n\n @Column({ nullable: true, default: '', length: 100 })\n @Field({ nullable: true })\n key03?: string = ''\n\n @Column({ nullable: true, default: '', length: 100 })\n @Field({ nullable: true })\n key04?: string = ''\n\n @Column({ nullable: true, default: '', length: 100 })\n @Field({ nullable: true })\n key05?: string = ''\n\n @Column({ type: 'real', nullable: true })\n @Field({ nullable: true })\n data01?: number\n\n @Column({ type: 'real', nullable: true })\n @Field({ nullable: true })\n data02?: number\n\n @Column({ type: 'real', nullable: true })\n @Field({ nullable: true })\n data03?: number\n\n @Column({ type: 'real', nullable: true })\n @Field({ nullable: true })\n data04?: number\n\n @Column({ type: 'real', nullable: true })\n @Field({ nullable: true })\n data05?: number\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((dataSummary: DataSummary) => dataSummary.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((dataSummary: DataSummary) => dataSummary.updater)\n updaterId?: string\n}\n"]}
|