@ -21,21 +21,20 @@ import { gql } from 'apollo-server-express';
export default gql `
export default gql `
"timestamp object YYYY-MM-ddThh:mm:ss.sssZ"
"timestamp object YYYY-MM-ddThh:mm:ss.sssZ"
scalar Date
scalar Date
"only time hh-mm-ss"
"only time hh-mm-ss"
scalar Time
scalar Time
"" "
"" "
is of american format [ - ] $ [ 0 - 9 ] + . [ 0 - 9 ] [ 0 - 9 ]
is of american format [ - ] $ [ 0 - 9 ] + . [ 0 - 9 ] [ 0 - 9 ]
commas every three digits and . for decimals with 2 digits after the .
commas every three digits and . for decimals with 2 digits after the .
There can be a leading - .
There can be a leading - .
There is a currency signe at the first position or second position if - is set .
There is a currency signe at the first position or second position if - is set .
The kind of currency depends on the database .
The kind of currency depends on the database .
"" "
"" "
scalar Money
scalar Money
"The CargoBike type is central to the graph. You could call it the root."
"The CargoBike type is central to the graph. You could call it the root."
type CargoBike {
type CargoBike {
id : ID !
id : ID !
"see column A in info tabelle"
"see column A in info tabelle"
group : Group
group : Group
@ -58,8 +57,10 @@ type CargoBike {
Does not refer to an extra table in the database .
Does not refer to an extra table in the database .
"" "
"" "
dimensionsAndLoad : DimensionsAndLoad !
dimensionsAndLoad : DimensionsAndLoad !
"If offset or limit is not provided, both values are ignored"
bikeEvents ( offset : Int , limit : Int ) : [ BikeEvent ]
bikeEvents ( offset : Int , limit : Int ) : [ BikeEvent ]
equipment ( offset : Int ! , limit : Int ! ) : [ Equipment ]
"If offset or limit is not provided, both values are ignored"
equipment ( offset : Int , limit : Int ) : [ Equipment ]
"Refers to equipment that is not unique. See kommentierte info tabelle -> Fragen -> Frage 2"
"Refers to equipment that is not unique. See kommentierte info tabelle -> Fragen -> Frage 2"
equipmentType : [ EquipmentType ]
equipmentType : [ EquipmentType ]
"Sticker State"
"Sticker State"
@ -72,19 +73,20 @@ type CargoBike {
lendingStation : LendingStation
lendingStation : LendingStation
taxes : Taxes
taxes : Taxes
currentEngagements : [ Engagement ]
currentEngagements : [ Engagement ]
engagement ( offset : Int ! , limit : Int ! ) : [ Engagement ]
"If offset or limit is not provided, both values are ignored"
engagement ( offset : Int , limit : Int ) : [ Engagement ]
timeFrames : [ TimeFrame ]
timeFrames : [ TimeFrame ]
isLocked : Boolean !
isLocked : Boolean !
isLockedByMe : Boolean !
isLockedByMe : Boolean !
"null if not locked by other user"
"null if not locked by other user"
lockedBy : ID
lockedBy : ID
lockedUntil : Date
lockedUntil : Date
}
}
"" "
"" "
if you want to add bike to a lending station , create a new timeFrame with to : Date = null
if you want to add bike to a lending station , create a new timeFrame with to : Date = null
"" "
"" "
input CargoBikeCreateInput {
input CargoBikeCreateInput {
"see column A in info tabelle"
"see column A in info tabelle"
group : Group !
group : Group !
name : String !
name : String !
@ -114,12 +116,12 @@ input CargoBikeCreateInput {
providerId : ID
providerId : ID
insuranceData : InsuranceDataCreateInput !
insuranceData : InsuranceDataCreateInput !
taxes : TaxesCreateInput !
taxes : TaxesCreateInput !
}
}
"" "
"" "
if you want to add bike to a lending station , create a new timeFrame with to : Date = null
if you want to add bike to a lending station , create a new timeFrame with to : Date = null
"" "
"" "
input CargoBikeUpdateInput {
input CargoBikeUpdateInput {
id : ID !
id : ID !
"see column A in info tabelle"
"see column A in info tabelle"
group : Group
group : Group
@ -155,9 +157,9 @@ input CargoBikeUpdateInput {
taxes : TaxesUpdateInput
taxes : TaxesUpdateInput
"will keep Bike locked if set to true, default = false"
"will keep Bike locked if set to true, default = false"
keepLock : Boolean
keepLock : Boolean
}
}
type InsuranceData {
type InsuranceData {
"" "
"" "
Eventually , this field will become an enum or a separate data table and user can choose from a pool of insurance companies .
Eventually , this field will become an enum or a separate data table and user can choose from a pool of insurance companies .
"" "
"" "
@ -181,9 +183,9 @@ type InsuranceData {
"" "
"" "
projectAllowance : Money
projectAllowance : Money
notes : String
notes : String
}
}
input InsuranceDataCreateInput {
input InsuranceDataCreateInput {
"" "
"" "
Eventually , this field will become an enum or a separate data table and user can choose from a pool of insurance companies .
Eventually , this field will become an enum or a separate data table and user can choose from a pool of insurance companies .
"" "
"" "
@ -207,9 +209,9 @@ input InsuranceDataCreateInput {
"" "
"" "
projectAllowance : Money
projectAllowance : Money
notes : String
notes : String
}
}
input InsuranceDataUpdateInput {
input InsuranceDataUpdateInput {
"" "
"" "
Eventually , this field will become an enum or a separate data table and user can choose from a pool of insurance companies .
Eventually , this field will become an enum or a separate data table and user can choose from a pool of insurance companies .
"" "
"" "
@ -233,10 +235,10 @@ input InsuranceDataUpdateInput {
"" "
"" "
projectAllowance : Money
projectAllowance : Money
notes : String
notes : String
}
}
"How are the dimensions and how much weight can handle a bike. This data is merged in the CargoBike table and the BikeModel table."
"How are the dimensions and how much weight can handle a bike. This data is merged in the CargoBike table and the BikeModel table."
type DimensionsAndLoad {
type DimensionsAndLoad {
hasCoverBox : Boolean !
hasCoverBox : Boolean !
"cover box can be locked"
"cover box can be locked"
lockable : Boolean !
lockable : Boolean !
@ -250,9 +252,9 @@ type DimensionsAndLoad {
bikeWidth : Float
bikeWidth : Float
bikeHeight : Float
bikeHeight : Float
bikeWeight : Float
bikeWeight : Float
}
}
input DimensionsAndLoadCreateInput {
input DimensionsAndLoadCreateInput {
hasCoverBox : Boolean !
hasCoverBox : Boolean !
lockable : Boolean !
lockable : Boolean !
boxLength : Float !
boxLength : Float !
@ -265,9 +267,9 @@ input DimensionsAndLoadCreateInput {
bikeWidth : Float
bikeWidth : Float
bikeHeight : Float
bikeHeight : Float
bikeWeight : Float
bikeWeight : Float
}
}
input DimensionsAndLoadUpdateInput {
input DimensionsAndLoadUpdateInput {
hasCoverBox : Boolean
hasCoverBox : Boolean
lockable : Boolean
lockable : Boolean
boxLength : Float
boxLength : Float
@ -280,73 +282,73 @@ input DimensionsAndLoadUpdateInput {
bikeWidth : Float
bikeWidth : Float
bikeHeight : Float
bikeHeight : Float
bikeWeight : Float
bikeWeight : Float
}
}
"" "
"" "
Some Technical Info about the bike .
Some Technical Info about the bike .
This should be 1 - 1 Relation with the CargoBike .
This should be 1 - 1 Relation with the CargoBike .
So no id needed for mutation . One Mutation for the CargoBike will be enough .
So no id needed for mutation . One Mutation for the CargoBike will be enough .
"" "
"" "
type TechnicalEquipment {
type TechnicalEquipment {
bicycleShift : String !
bicycleShift : String !
isEBike : Boolean !
isEBike : Boolean !
hasLightSystem : Boolean !
hasLightSystem : Boolean !
specialFeatures : String
specialFeatures : String
}
}
input TechnicalEquipmentCreateInput {
input TechnicalEquipmentCreateInput {
bicycleShift : String !
bicycleShift : String !
isEBike : Boolean !
isEBike : Boolean !
hasLightSystem : Boolean !
hasLightSystem : Boolean !
specialFeatures : String
specialFeatures : String
}
}
input TechnicalEquipmentUpdateInput {
input TechnicalEquipmentUpdateInput {
bicycleShift : String
bicycleShift : String
isEBike : Boolean
isEBike : Boolean
hasLightSystem : Boolean
hasLightSystem : Boolean
specialFeatures : String
specialFeatures : String
}
}
"" "
"" "
The Security Info about the bike .
The Security Info about the bike .
his should be 1 - 1 Relation with the CargoBike .
his should be 1 - 1 Relation with the CargoBike .
So no id needed for mutation . One Mutation for the CargoBike will be enough .
So no id needed for mutation . One Mutation for the CargoBike will be enough .
"" "
"" "
type Security {
type Security {
frameNumber : String !
frameNumber : String !
keyNumberFrameLock : String
keyNumberFrameLock : String
keyNumberAXAChain : String
keyNumberAXAChain : String
policeCoding : String
policeCoding : String
adfcCoding : String
adfcCoding : String
}
}
input SecurityCreateInput {
input SecurityCreateInput {
frameNumber : String !
frameNumber : String !
keyNumberFrameLock : String
keyNumberFrameLock : String
keyNumberAXAChain : String
keyNumberAXAChain : String
policeCoding : String
policeCoding : String
adfcCoding : String
adfcCoding : String
}
}
input SecurityUpdateInput {
input SecurityUpdateInput {
frameNumber : String
frameNumber : String
keyNumberFrameLock : String
keyNumberFrameLock : String
keyNumberAXAChain : String
keyNumberAXAChain : String
policeCoding : String
policeCoding : String
adfcCoding : String
adfcCoding : String
}
}
enum StickerBikeNameState {
enum StickerBikeNameState {
OK
OK
IMPROVE
IMPROVE
PRODUCED
PRODUCED
NONEED
NONEED
MISSING
MISSING
UNKNOWN
UNKNOWN
}
}
enum Group {
enum Group {
KL
KL
LI
LI
SP
SP
@ -355,9 +357,12 @@ enum Group{
SZ
SZ
TS
TS
TK
TK
}
}
type Participant {
"" "
A participant in the organization
"" "
type Participant {
id : ID !
id : ID !
start : Date !
start : Date !
end : Date
end : Date
@ -381,9 +386,9 @@ type Participant {
"null if not locked by other user"
"null if not locked by other user"
lockedBy : ID
lockedBy : ID
lockedUntil : Date
lockedUntil : Date
}
}
input ParticipantCreateInput {
input ParticipantCreateInput {
"if not set, CURRENT_DATE will be used"
"if not set, CURRENT_DATE will be used"
start : Date
start : Date
end : Date
end : Date
@ -397,9 +402,9 @@ input ParticipantCreateInput {
"default: false"
"default: false"
memberCoreTeam : Boolean
memberCoreTeam : Boolean
workshopIds : [ ID ]
workshopIds : [ ID ]
}
}
input ParticipantUpdateInput {
input ParticipantUpdateInput {
id : ID !
id : ID !
"if not set, CURRENT_DATE will be used"
"if not set, CURRENT_DATE will be used"
start : Date
start : Date
@ -415,9 +420,12 @@ input ParticipantUpdateInput {
memberCoreTeam : Boolean
memberCoreTeam : Boolean
workshopIds : [ ID ]
workshopIds : [ ID ]
keepLock : Boolean
keepLock : Boolean
}
}
type Workshop {
"" "
A workshop event
"" "
type Workshop {
id : ID !
id : ID !
title : String !
title : String !
description : String !
description : String !
@ -431,18 +439,18 @@ type Workshop {
"null if not locked by other user"
"null if not locked by other user"
lockedBy : ID
lockedBy : ID
lockedUntil : Date
lockedUntil : Date
}
}
input WorkshopCreateInput {
input WorkshopCreateInput {
title : String !
title : String !
description : String
description : String
date : Date !
date : Date !
workshopTypeId : ID !
workshopTypeId : ID !
trainer1Id : ID !
trainer1Id : ID !
trainer2Id : ID
trainer2Id : ID
}
}
input WorkshopUpdateInput {
input WorkshopUpdateInput {
id : ID !
id : ID !
title : String
title : String
description : String
description : String
@ -451,9 +459,9 @@ input WorkshopUpdateInput {
trainer1Id : ID
trainer1Id : ID
trainer2Id : ID
trainer2Id : ID
keepLock : Boolean
keepLock : Boolean
}
}
type WorkshopType {
type WorkshopType {
id : ID !
id : ID !
name : String !
name : String !
isLocked : Boolean !
isLocked : Boolean !
@ -461,18 +469,18 @@ type WorkshopType {
"null if not locked by other user"
"null if not locked by other user"
lockedBy : ID
lockedBy : ID
lockedUntil : Date
lockedUntil : Date
}
}
input WorkshopTypeCreateInput {
input WorkshopTypeCreateInput {
name : String !
name : String !
}
}
input WorkshopTypeUpdateInput {
input WorkshopTypeUpdateInput {
id : ID !
id : ID !
name : String
name : String
}
}
type EngagementType {
type EngagementType {
id : ID !
id : ID !
name : String !
name : String !
description : String !
description : String !
@ -481,21 +489,21 @@ type EngagementType {
"null if not locked by other user"
"null if not locked by other user"
lockedBy : ID
lockedBy : ID
lockedUntil : Date
lockedUntil : Date
}
}
input EngagementTypeCreateInput {
input EngagementTypeCreateInput {
name : String !
name : String !
description : String
description : String
}
}
input EngagementTypeUpdateInput {
input EngagementTypeUpdateInput {
id : ID !
id : ID !
name : String
name : String
description : String
description : String
keepLock : Boolean
keepLock : Boolean
}
}
type Engagement {
type Engagement {
id : ID !
id : ID !
engagementType : EngagementType !
engagementType : EngagementType !
from : Date !
from : Date !
@ -507,9 +515,9 @@ type Engagement {
"null if not locked by other user"
"null if not locked by other user"
lockedBy : ID
lockedBy : ID
lockedUntil : Date
lockedUntil : Date
}
}
input EngagementCreateInput {
input EngagementCreateInput {
engagementTypeId : ID !
engagementTypeId : ID !
"will use CURRENT_DATE if not set"
"will use CURRENT_DATE if not set"
from : Date
from : Date
@ -517,8 +525,8 @@ input EngagementCreateInput {
to : Date
to : Date
participantId : ID !
participantId : ID !
cargoBikeId : ID !
cargoBikeId : ID !
}
}
input EngagementUpdateInput {
input EngagementUpdateInput {
id : ID !
id : ID !
engagementTypeId : ID
engagementTypeId : ID
from : Date
from : Date
@ -526,33 +534,33 @@ input EngagementUpdateInput {
participantId : ID
participantId : ID
cargoBikeId : ID
cargoBikeId : ID
keepLock : Boolean
keepLock : Boolean
}
}
type Taxes {
type Taxes {
costCenter : String !
costCenter : String !
organisationArea : OrganisationArea
organisationArea : OrganisationArea
}
}
input TaxesCreateInput {
input TaxesCreateInput {
costCenter : String !
costCenter : String !
organisationArea : OrganisationArea
organisationArea : OrganisationArea
}
}
input TaxesUpdateInput {
input TaxesUpdateInput {
costCenter : String
costCenter : String
organisationArea : OrganisationArea
organisationArea : OrganisationArea
}
}
enum OrganisationArea {
enum OrganisationArea {
IB
IB
ZB
ZB
}
}
"" "
"" "
This type represents a piece of equipment that represents a real physical object .
This type represents a piece of equipment that represents a real physical object .
The object must be unique . So it is possible to tell it apart from similar objects by a serial number .
The object must be unique . So it is possible to tell it apart from similar objects by a serial number .
"" "
"" "
type Equipment {
type Equipment {
id : ID !
id : ID !
serialNo : String !
serialNo : String !
title : String !
title : String !
@ -563,16 +571,16 @@ type Equipment {
"null if not locked by other user"
"null if not locked by other user"
lockedBy : ID
lockedBy : ID
lockedUntil : Date
lockedUntil : Date
}
}
input EquipmentCreateInput {
input EquipmentCreateInput {
serialNo : String !
serialNo : String !
title : String !
title : String !
description : String
description : String
cargoBikeId : ID
cargoBikeId : ID
}
}
input EquipmentUpdateInput {
input EquipmentUpdateInput {
id : ID !
id : ID !
serialNo : String
serialNo : String
title : String
title : String
@ -580,9 +588,13 @@ input EquipmentUpdateInput {
cargoBikeId : ID
cargoBikeId : ID
"will keep Bike locked if set to true, default = false"
"will keep Bike locked if set to true, default = false"
keepLock : Boolean
keepLock : Boolean
}
}
type EquipmentType {
"" "
A type of equipment that is not being tracked but can be assigned
to any bike .
"" "
type EquipmentType {
id : ID !
id : ID !
name : String !
name : String !
description : String !
description : String !
@ -591,22 +603,22 @@ type EquipmentType {
"null if not locked by other user"
"null if not locked by other user"
lockedBy : ID
lockedBy : ID
lockedUntil : Date
lockedUntil : Date
}
}
input EquipmentTypeCreateInput {
input EquipmentTypeCreateInput {
name : String
name : String
description : String
description : String
}
}
input EquipmentTypeUpdateInput {
input EquipmentTypeUpdateInput {
id : ID !
id : ID !
name : String
name : String
description : String
description : String
keepLock : Boolean
keepLock : Boolean
}
}
"An Event is a point in time, when the state of the bike somehow changed."
"An Event is a point in time, when the state of the bike somehow changed."
type BikeEvent {
type BikeEvent {
id : ID !
id : ID !
bikeEventType : BikeEventType !
bikeEventType : BikeEventType !
cargoBike : CargoBike !
cargoBike : CargoBike !
@ -617,16 +629,16 @@ type BikeEvent {
"" "
"" "
Path to documents
Path to documents
"" "
"" "
documents : [ String ] !
documents : [ String ! ] !
remark : String
remark : String
isLocked : Boolean !
isLocked : Boolean !
isLockedByMe : Boolean !
isLockedByMe : Boolean !
"null if not locked by other user"
"null if not locked by other user"
lockedBy : ID
lockedBy : ID
lockedUntil : Date
lockedUntil : Date
}
}
input BikeEventCreateInput {
input BikeEventCreateInput {
bikeEventTypeId : ID !
bikeEventTypeId : ID !
cargoBikeId : ID !
cargoBikeId : ID !
responsibleId : ID
responsibleId : ID
@ -638,9 +650,9 @@ input BikeEventCreateInput {
"" "
"" "
documents : [ String ]
documents : [ String ]
remark : String
remark : String
}
}
input BikeEventUpdateInput {
input BikeEventUpdateInput {
id : ID !
id : ID !
bikeEventTypeId : ID
bikeEventTypeId : ID
cargoBikeId : ID
cargoBikeId : ID
@ -654,45 +666,47 @@ input BikeEventUpdateInput {
documents : [ String ]
documents : [ String ]
remark : String
remark : String
keepLock : Boolean
keepLock : Boolean
}
}
type BikeEventType {
type BikeEventType {
id : ID !
id : ID !
name : String !
name : String !
isLockedByMe : Boolean !
isLockedByMe : Boolean !
isLocked : Boolean !
isLocked : Boolean !
"null if not locked by other user"
lockedBy : ID
lockedUntil : Date
lockedUntil : Date
}
}
input BikeEventTypeUpdateInput {
input BikeEventTypeUpdateInput {
id : ID !
id : ID !
name : String
name : String
keepLock : Boolean
keepLock : Boolean
}
}
"(dt. Anbieter) bezieht sich auf die Beziehung einer Person oder Organisation zum Lastenrad"
"(dt. Anbieter) bezieht sich auf die Beziehung einer Person oder Organisation zum Lastenrad"
type Provider {
type Provider {
id : ID !
id : ID !
formName : String
formName : String
privatePerson : ContactInformation
privatePerson : ContactInformation
organisation : Organisation
organisation : Organisation
cargoBikes : [ CargoBike ]
cargoBikes : [ CargoBike ! ]
isLocked : Boolean !
isLocked : Boolean !
isLockedByMe : Boolean !
isLockedByMe : Boolean !
"null if not locked by other user"
"null if not locked by other user"
lockedBy : ID
lockedBy : ID
lockedUntil : Date
lockedUntil : Date
}
}
"(dt. Anbieter)"
"(dt. Anbieter)"
input ProviderCreateInput {
input ProviderCreateInput {
formName : String !
formName : String !
privatePersonId : ID
privatePersonId : ID
organisationId : ID
organisationId : ID
cargoBikeIds : [ ID ]
cargoBikeIds : [ ID ! ]
}
}
input ProviderUpdateInput {
input ProviderUpdateInput {
id : ID !
id : ID !
formName : String
formName : String
privatePersonId : ID
privatePersonId : ID
@ -700,37 +714,37 @@ input ProviderUpdateInput {
"cargoBikes are added, you can not take existing relations away. use update cargoBike or add bike to another provider instead"
"cargoBikes are added, you can not take existing relations away. use update cargoBike or add bike to another provider instead"
cargoBikeIds : [ ID ]
cargoBikeIds : [ ID ]
keepLock : Boolean
keepLock : Boolean
}
}
"" "
"" "
A Person can have several instances of contact information .
A Person can have several instances of contact information .
The reason for this is , that some people have info for interns and externals that are different .
The reason for this is , that some people have info for interns and externals that are different .
"" "
"" "
type Person {
type Person {
id : ID !
id : ID !
name : String !
name : String !
firstName : String !
firstName : String !
contactInformation : [ ContactInformation ]
contactInformation : [ ContactInformation ! ]
isLocked : Boolean !
isLocked : Boolean !
isLockedByMe : Boolean !
isLockedByMe : Boolean !
"null if not locked by other user"
"null if not locked by other user"
lockedBy : ID
lockedBy : ID
lockedUntil : Date
lockedUntil : Date
}
}
input PersonCreateInput {
input PersonCreateInput {
name : String !
name : String !
firstName : String !
firstName : String !
}
}
input PersonUpdateInput {
input PersonUpdateInput {
id : ID !
id : ID !
name : String
name : String
firstName : String
firstName : String
keepLock : Boolean
keepLock : Boolean
}
}
type ContactInformation {
type ContactInformation {
id : ID !
id : ID !
person : Person !
person : Person !
phone : String
phone : String
@ -743,18 +757,18 @@ type ContactInformation {
"null if not locked by other user"
"null if not locked by other user"
lockedBy : ID
lockedBy : ID
lockedUntil : Date
lockedUntil : Date
}
}
input ContactInformationCreateInput {
input ContactInformationCreateInput {
personId : ID !
personId : ID !
phone : String
phone : String
phone2 : String
phone2 : String
email : String
email : String
email2 : String
email2 : String
note : String
note : String
}
}
input ContactInformationUpdateInput {
input ContactInformationUpdateInput {
id : ID !
id : ID !
personId : ID
personId : ID
phone : String
phone : String
@ -763,14 +777,14 @@ input ContactInformationUpdateInput {
email2 : String
email2 : String
note : String
note : String
keepLock : Boolean
keepLock : Boolean
}
}
type Organisation {
type Organisation {
id : ID !
id : ID !
name : String !
name : String !
address : Address
address : Address
"(dt. Ausleihstation)"
"(dt. Ausleihstation)"
lendingStations : [ LendingStation ]
lendingStations : [ LendingStation ! ]
"registration number of association"
"registration number of association"
associationNo : String
associationNo : String
"If Club, at what court registered"
"If Club, at what court registered"
@ -783,9 +797,9 @@ type Organisation {
"null if not locked by other user"
"null if not locked by other user"
lockedBy : ID
lockedBy : ID
lockedUntil : Date
lockedUntil : Date
}
}
input OrganisationCreateInput {
input OrganisationCreateInput {
address : AddressCreateInput !
address : AddressCreateInput !
name : String !
name : String !
"registration number of association"
"registration number of association"
@ -794,9 +808,9 @@ input OrganisationCreateInput {
registeredAt : String
registeredAt : String
contactInformationId : ID
contactInformationId : ID
otherData : String
otherData : String
}
}
input OrganisationUpdateInput {
input OrganisationUpdateInput {
id : ID !
id : ID !
address : AddressCreateInput
address : AddressCreateInput
name : String
name : String
@ -807,18 +821,18 @@ input OrganisationUpdateInput {
contactInformationId : ID
contactInformationId : ID
otherData : String
otherData : String
keepLock : Boolean
keepLock : Boolean
}
}
"(dt. Standort)"
"(dt. Standort)"
type LendingStation {
type LendingStation {
id : ID !
id : ID !
name : String !
name : String !
contactInformationIntern : ContactInformation
contactInformationIntern : ContactInformation
contactInformationExtern : ContactInformation
contactInformationExtern : ContactInformation
address : Address !
address : Address !
timeFrames : [ TimeFrame ] !
timeFrames : [ TimeFrame ! ] !
loanPeriod : LoanPeriod
loanPeriod : LoanPeriod
cargoBikes : [ CargoBike ]
cargoBikes : [ CargoBike ! ]
"Total amount of cargoBikes currently assigned to the lending station"
"Total amount of cargoBikes currently assigned to the lending station"
numCargoBikes : Int !
numCargoBikes : Int !
organisation : Organisation
organisation : Organisation
@ -827,24 +841,24 @@ type LendingStation {
"null if not locked by other user"
"null if not locked by other user"
lockedBy : ID
lockedBy : ID
lockedUntil : Date
lockedUntil : Date
}
}
"" "
"" "
If you want to create LendingStation with cargoBikes , use createTimeFrame and set to : Date = null
If you want to create LendingStation with cargoBikes , use createTimeFrame and set to : Date = null
"" "
"" "
input LendingStationCreateInput {
input LendingStationCreateInput {
name : String !
name : String !
contactInformationInternId : ID
contactInformationInternId : ID
contactInformationExternId : ID
contactInformationExternId : ID
address : AddressCreateInput !
address : AddressCreateInput !
loanPeriod : LoanPeriodInput
loanPeriod : LoanPeriodInput
organisationId : ID
organisationId : ID
}
}
"" "
"" "
If you want to create LendingStation with cargoBikes , use createTimeFrame and set to : Date = null
If you want to create LendingStation with cargoBikes , use createTimeFrame and set to : Date = null
"" "
"" "
input LendingStationUpdateInput {
input LendingStationUpdateInput {
id : ID !
id : ID !
name : String
name : String
contactInformationInternId : ID
contactInformationInternId : ID
@ -853,12 +867,12 @@ input LendingStationUpdateInput {
loanPeriod : LoanPeriodInput
loanPeriod : LoanPeriodInput
organisationId : ID
organisationId : ID
keepLock : Boolean
keepLock : Boolean
}
}
"" "
"" "
( dt . Ausleihzeiten ) not implemented
( dt . Ausleihzeiten ) not implemented
"" "
"" "
type LoanPeriod {
type LoanPeriod {
generalRemark : String
generalRemark : String
"notes for each day of the week, starting on Monday"
"notes for each day of the week, starting on Monday"
notes : [ String ]
notes : [ String ]
@ -867,24 +881,24 @@ type LoanPeriod {
Starting with Monday from , Monday to , Tuesday from , . . . , Sunday to
Starting with Monday from , Monday to , Tuesday from , . . . , Sunday to
"" "
"" "
loanTimes : [ String ]
loanTimes : [ String ]
}
}
"" "
"" "
( dt . Ausleihzeiten )
( dt . Ausleihzeiten )
"" "
"" "
input LoanPeriodInput {
input LoanPeriodInput {
generalRemark : String
generalRemark : String
"notes for each day of the week, starting on Monday"
"notes for each day of the week, starting on Monday"
notes : [ String ]
notes : [ String ! ]
"" "
"" "
Loan times from and until for each day of the week .
Loan times from and until for each day of the week .
Starting with Monday from , Monday to , Tuesday from , . . . , Sunday to
Starting with Monday from , Monday to , Tuesday from , . . . , Sunday to
"" "
"" "
loanTimes : [ String ]
loanTimes : [ String ! ]
}
}
"(dt. Zeitscheibe) When was a bike where"
"(dt. Zeitscheibe) When was a bike where"
type TimeFrame {
type TimeFrame {
id : ID !
id : ID !
"format YYYY-MM-dd"
"format YYYY-MM-dd"
from : Date !
from : Date !
@ -898,17 +912,17 @@ type TimeFrame {
"null if not locked by other user"
"null if not locked by other user"
lockedBy : ID
lockedBy : ID
lockedUntil : Date
lockedUntil : Date
}
}
input TimeFrameCreateInput {
input TimeFrameCreateInput {
from : Date !
from : Date !
to : Date
to : Date
note : String
note : String
lendingStationId : ID !
lendingStationId : ID !
cargoBikeId : ID !
cargoBikeId : ID !
}
}
input TimeFrameUpdateInput {
input TimeFrameUpdateInput {
id : ID !
id : ID !
from : Date
from : Date
to : Date
to : Date
@ -916,27 +930,27 @@ input TimeFrameUpdateInput {
lendingStationId : ID
lendingStationId : ID
cargoBikeId : ID
cargoBikeId : ID
keepLock : Boolean
keepLock : Boolean
}
}
type Address {
type Address {
street : String !
street : String !
number : String !
number : String !
zip : String !
zip : String !
}
}
input AddressCreateInput {
input AddressCreateInput {
street : String !
street : String !
number : String !
number : String !
zip : String !
zip : String !
}
}
input AddressUpdateInput {
input AddressUpdateInput {
street : String
street : String
number : String
number : String
zip : String
zip : String
}
}
type ActionLog {
type ActionLog {
id : ID !
id : ID !
userId : ID !
userId : ID !
date : Date !
date : Date !
@ -946,56 +960,70 @@ type ActionLog {
entriesOld : String !
entriesOld : String !
"in json format"
"in json format"
entriesNew : String !
entriesNew : String !
}
}
type Query {
type Query {
"Will (eventually) return all properties of cargo bike"
"Will (eventually) return all properties of cargo bike"
cargoBikeById ( id :ID ! ) : CargoBike
cargoBikeById ( id :ID ! ) : CargoBike
"returns cargoBikes ordered by name ascending, relations are not loaded, use cargoBikeById instead "
"Returns cargoBikes ordered by name ascending. If offset or limit is not provided, both values are ignored. "
cargoBikes ( offset : Int ! , limit : Int ! ) : [ CargoBike ] !
cargoBikes ( offset : Int , limit : Int ) : [ CargoBike ! ] !
engagementById ( id : ID ! ) : Engagement
engagementById ( id : ID ! ) : Engagement
engagements ( offset : Int ! , limit : Int ! ) : [ Engagement ] !
"If offset or limit is not provided, both values are ignored"
engagements ( offset : Int , limit : Int ) : [ Engagement ! ] !
engagementTypeById ( id : ID ! ) : EngagementType
engagementTypeById ( id : ID ! ) : EngagementType
engagementTypes ( offset : Int ! , limit : Int ! ) : [ EngagementType ] !
"If offset or limit is not provided, both values are ignored"
engagementTypes ( offset : Int , limit : Int ) : [ EngagementType ! ] !
"equipment by id, will return null if id not found"
"equipment by id, will return null if id not found"
equipmentById ( id : ID ! ) : Equipment
equipmentById ( id : ID ! ) : Equipment
equipment ( offset : Int ! , limit : Int ! ) : [ Equipment ] !
"If offset or limit is not provided, both values are ignored"
equipment ( offset : Int , limit : Int ) : [ Equipment ! ] !
equipmentTypeById ( id : ID ! ) : EquipmentType
equipmentTypeById ( id : ID ! ) : EquipmentType
equipmentTypes ( offset : Int ! , limit : Int ! ) : [ EquipmentType ] !
"If offset or limit is not provided, both values are ignored"
equipmentTypes ( offset : Int , limit : Int ) : [ EquipmentType ! ] !
"return null if id not found"
"return null if id not found"
providerById ( id :ID ! ) : Provider
providerById ( id :ID ! ) : Provider
"unique equipment with pagination, contains relation to bike (with no further joins), so if you wanna know more about the bike, use cargoBikeByI d"
"Returns providers with pagination. If offset or limit is not provided, both values are ignore d"
providers ( offset : Int ! , limit : Int ! ) : [ Provider ] !
providers ( offset : Int , limit : Int ) : [ Provider ! ] !
"participant by id"
"participant by id"
participantById ( id :ID ! ) : Participant
participantById ( id :ID ! ) : Participant
participants ( offset : Int ! , limit : Int ! ) : [ Participant ] !
"If offset or limit is not provided, both values are ignored"
participants ( offset : Int , limit : Int ) : [ Participant ! ] !
workshopTypeById ( id : ID ! ) : WorkshopType
workshopTypeById ( id : ID ! ) : WorkshopType
workshopTypes ( offset : Int ! , limit : Int ! ) : [ WorkshopType ] !
"If offset or limit is not provided, both values are ignored"
workshopTypes ( offset : Int , limit : Int ) : [ WorkshopType ! ] !
workshopById ( id : ID ! ) : Workshop
workshopById ( id : ID ! ) : Workshop
workshops ( offset : Int ! , limit : Int ! ) : [ Workshop ] !
"If offset or limit is not provided, both values are ignored"
workshops ( offset : Int , limit : Int ) : [ Workshop ! ] !
lendingStationById ( id :ID ! ) : LendingStation
lendingStationById ( id :ID ! ) : LendingStation
lendingStations ( offset : Int ! , limit : Int ! ) : [ LendingStation ] !
"If offset or limit is not provided, both values are ignored"
lendingStations ( offset : Int , limit : Int ) : [ LendingStation ! ] !
organisationById ( id : ID ! ) : Organisation
organisationById ( id : ID ! ) : Organisation
organisations ( offset : Int ! , limit : Int ! ) : [ Organisation ] !
"If offset or limit is not provided, both values are ignored"
organisations ( offset : Int , limit : Int ) : [ Organisation ! ] !
timeFrameById ( id : ID ! ) : TimeFrame
timeFrameById ( id : ID ! ) : TimeFrame
timeframes ( offset : Int ! , limit : Int ! ) : [ TimeFrame ] !
"If offset or limit is not provided, both values are ignored"
timeFrames ( offset : Int , limit : Int ) : [ TimeFrame ! ] !
contactInformationById ( id : ID ! ) : ContactInformation
contactInformationById ( id : ID ! ) : ContactInformation
contactInformation ( offset : Int ! , limit : Int ! ) : [ ContactInformation ] !
"If offset or limit is not provided, both values are ignored"
contactInformation ( offset : Int , limit : Int ) : [ ContactInformation ! ] !
personById ( id : ID ! ) : Person
personById ( id : ID ! ) : Person
persons ( offset : Int ! , limit : Int ! ) : [ Person ]
"If offset or limit is not provided, both values are ignored"
bikeEventTypes ( offset : Int ! , limit : Int ! ) : [ BikeEventType ]
persons ( offset : Int , limit : Int ) : [ Person ! ]
"If offset or limit is not provided, both values are ignored"
bikeEventTypes ( offset : Int , limit : Int ) : [ BikeEventType ! ]
bikeEventTypeByd ( id : ID ! ) : BikeEventType
bikeEventTypeByd ( id : ID ! ) : BikeEventType
bikeEvents ( offset : Int ! , limit : Int ! ) : [ BikeEvent ] !
"If offset or limit is not provided, both values are ignored"
bikeEvents ( offset : Int , limit : Int ) : [ BikeEvent ! ] !
bikeEventById ( id :ID ! ) : BikeEvent
bikeEventById ( id :ID ! ) : BikeEvent
"actionLog for current user"
"actionLog for current user"
actionLog : [ ActionLog ]
actionLog : [ ActionLog ! ]
"actionLog for specific user"
"actionLog for specific user"
actionLogByUser ( id : ID ! ) : [ ActionLog ]
actionLogByUser ( id : ID ! ) : [ ActionLog ! ]
"actionLog form all users"
"actionLog form all users"
actionLogAll : [ ActionLog ]
actionLogAll : [ ActionLog ! ]
}
}
type Mutation {
type Mutation {
"" "
"" "
CARGO BIKE
CARGO BIKE
creates new cargoBike and returns cargobike with new ID
creates new cargoBike and returns cargobike with new ID
@ -1105,6 +1133,6 @@ type Mutation {
unlockOrganisation ( id : ID ! ) : Boolean !
unlockOrganisation ( id : ID ! ) : Boolean !
updateOrganisation ( organisation : OrganisationUpdateInput ! ) : Organisation !
updateOrganisation ( organisation : OrganisationUpdateInput ! ) : Organisation !
deleteOrganisation ( id : ID ! ) : Boolean !
deleteOrganisation ( id : ID ! ) : Boolean !
}
}
` ;
` ;