From 7bce40d0e1233167b776d9b36717b72cbe851087 Mon Sep 17 00:00:00 2001 From: christoph-maurer Date: Thu, 22 Jan 2026 14:57:37 +0100 Subject: [PATCH 1/2] Extend metabase.graphql by DataKind LIFECYCLE_DATA --- apis/metabase.graphql | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/apis/metabase.graphql b/apis/metabase.graphql index f90c5c1..b2c8c6b 100644 --- a/apis/metabase.graphql +++ b/apis/metabase.graphql @@ -655,6 +655,13 @@ type Database implements Node { locale: Locale where: HygrothermalDataPropositionInput ): HygrothermalDataConnection @cost(weight: "10") + allLifeCycleData( + after: String + before: String + first: NonNegativeInt + last: NonNegativeInt + locale: Locale + ): LifeCycleDataConnection @cost(weight: "10") allOpticalData( after: String before: String @@ -689,6 +696,7 @@ type Database implements Node { locale: Locale where: HygrothermalDataPropositionInput ): Boolean @cost(weight: "10") + hasLifeCycleData(locale: Locale): Boolean @cost(weight: "10") hasOpticalData(locale: Locale, where: OpticalDataPropositionInput): Boolean @cost(weight: "10") hasPhotovoltaicData( @@ -697,6 +705,7 @@ type Database implements Node { ): Boolean @cost(weight: "10") hygrothermalData(id: Uuid!, locale: Locale): HygrothermalData @cost(weight: "10") + lifeCycleData(id: Uuid!, locale: Locale): LifeCycleData @cost(weight: "10") id: ID! locator: Url! name: String! @@ -1182,6 +1191,38 @@ type InstitutionsEdge { node: Institution! } +type LifeCycleData implements Data { + appliedMethod: AppliedMethod! + approvals: [DataApproval!]! + component: Component @cost(weight: "10") + componentId: Uuid! + createdAt: DateTime! + creator: Institution @cost(weight: "10") + creatorId: Uuid! + database: Database @cost(weight: "10") + databaseId: Uuid! + description: String + id: ID! + locale: Locale! + name: String + resources: [GetHttpsResource!]! + resourceTree: GetHttpsResourceTree! + timestamp: DateTime! + uuid: Uuid! + warnings: [String!]! +} + +type LifeCycleDataConnection { + edges: [LifeCycleDataEdge!]! + pageInfo: PageInfo! + totalCount: NonNegativeInt! +} + +type LifeCycleDataEdge { + cursor: String! + node: LifeCycleData! +} + type LoginUserError { code: LoginUserErrorCode! message: String! @@ -4018,6 +4059,7 @@ enum CreateOpenIdConnectApplicationErrorCode { enum DataKind { CALORIMETRIC_DATA HYGROTHERMAL_DATA + LIFECYCLE_DATA OPTICAL_DATA PHOTOVOLTAIC_DATA GEOMETRIC_DATA From 68d68d38f72c723cb4f6c5a56bf12c0907a35bf9 Mon Sep 17 00:00:00 2001 From: christoph-maurer Date: Thu, 22 Jan 2026 16:37:15 +0100 Subject: [PATCH 2/2] Extend database.graphql, add LifeCycleDataPropositionInput --- apis/database.graphql | 75 ++++++++++++++++++++++++++++++++++++++++++- apis/metabase.graphql | 14 +++++++- 2 files changed, 87 insertions(+), 2 deletions(-) diff --git a/apis/database.graphql b/apis/database.graphql index 39d82de..18a6eac 100644 --- a/apis/database.graphql +++ b/apis/database.graphql @@ -230,6 +230,11 @@ type Query { """ hygrothermalData(id: Uuid!, locale: Locale): HygrothermalData! + """ + Confer `Query#calorimetricData`. + """ + lifeCycleData(id: Uuid!, locale: Locale): LifeCycleData! + """ Confer `Query#calorimetricData`. """ @@ -332,6 +337,18 @@ type Query { before: Cursor ): HygrothermalDataConnection! + """ + Confer `Query#allCalorimetricData`. + """ + allLifeCycleData( + where: LifeCycleDataPropositionInput + locale: Locale + first: NonNegativeInt + after: Cursor + last: NonNegativeInt + before: Cursor + ): LifeCycleDataConnection! + """ Confer `Query#allCalorimetricData`. """ @@ -382,6 +399,14 @@ type Query { locale: Locale ): Boolean! + """ + Confer `Query#hasCalorimetricData`. + """ + hasLifeCycleData( + where: LifeCycleDataPropositionInput + locale: Locale + ): Boolean! + """ Confer `Query#hasCalorimetricData`. """ @@ -825,6 +850,17 @@ input HygrothermalDataPropositionInput { resources: GetHttpsResourcesPropositionInput } +""" +See `DataPropositionInput`. +""" +input LifeCycleDataPropositionInput { + componentId: UuidPropositionInput + and: [LifeCycleDataPropositionInput!] + not: LifeCycleDataPropositionInput + or: [LifeCycleDataPropositionInput!] + resources: GetHttpsResourcesPropositionInput +} + """ Proposition for values of enum type `OpticalComponentType`. Multiple sub-propositions are combined conjunctively, where the conjunction of an empty @@ -997,6 +1033,23 @@ type HygrothermalDataEdge { node: HygrothermalData! } +""" +See `DataConnection`. +""" +type LifeCycleDataConnection { + edges: [LifeCycleDataEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +""" +See `DataEdge`. +""" +type LifeCycleDataEdge { + cursor: Cursor! + node: LifeCycleData! +} + """ See `DataConnection`. """ @@ -1354,6 +1407,25 @@ type HygrothermalData implements Node & Data { approval: ResponseApproval! } +type LifeCycleData implements Node & Data { + id: ID! + uuid: Uuid! + timestamp: DateTime! + locale: Locale! + databaseId: Uuid! + componentId: Uuid! + name: String + description: String + warnings: [String!]! + creatorId: Uuid! + createdAt: DateTime! + appliedMethod: AppliedMethod! + resources: [GetHttpsResource!]! + resourceTree: GetHttpsResourceTree! + approvals: [DataApproval!]! + approval: ResponseApproval! +} + type PhotovoltaicData implements Node & Data { id: ID! uuid: Uuid! @@ -1495,12 +1567,13 @@ type CrossDatabaseDataReference { } """ -Data kind, either calorimetric, hygrothermal, optical, or photovoltaic. +Data kind, either calorimetric, hygrothermal, lifeCycle, optical, or photovoltaic. """ enum DataKind { CALORIMETRIC_DATA GEOMETRIC_DATA HYGROTHERMAL_DATA + LIFECYCLE_DATA OPTICAL_DATA PHOTOVOLTAIC_DATA } diff --git a/apis/metabase.graphql b/apis/metabase.graphql index b2c8c6b..1a7249c 100644 --- a/apis/metabase.graphql +++ b/apis/metabase.graphql @@ -661,6 +661,7 @@ type Database implements Node { first: NonNegativeInt last: NonNegativeInt locale: Locale + where: LifeCycleDataPropositionInput ): LifeCycleDataConnection @cost(weight: "10") allOpticalData( after: String @@ -696,7 +697,10 @@ type Database implements Node { locale: Locale where: HygrothermalDataPropositionInput ): Boolean @cost(weight: "10") - hasLifeCycleData(locale: Locale): Boolean @cost(weight: "10") + hasLifeCycleData( + locale: Locale + where: LifeCycleDataPropositionInput + ): Boolean @cost(weight: "10") hasOpticalData(locale: Locale, where: OpticalDataPropositionInput): Boolean @cost(weight: "10") hasPhotovoltaicData( @@ -3247,6 +3251,14 @@ input JsonValueKindOperationFilterInput { notIn: [JsonValueKind!] @cost(weight: "10") } +input LifeCycleDataPropositionInput { + and: [LifeCycleDataPropositionInput!] + componentId: UuidPropositionInput + not: LifeCycleDataPropositionInput + or: [LifeCycleDataPropositionInput!] + resources: GetHttpsResourcesPropositionInput +} + input ListComponentCategoryOperationFilterInput { all: ComponentCategoryOperationFilterInput @cost(weight: "10") none: ComponentCategoryOperationFilterInput @cost(weight: "10")