Skip to content

Instantly share code, notes, and snippets.

@promontis
Created September 5, 2019 14:00
Show Gist options
  • Save promontis/c352bb07a8eaee772273f718b7a6eef6 to your computer and use it in GitHub Desktop.
Save promontis/c352bb07a8eaee772273f718b7a6eef6 to your computer and use it in GitHub Desktop.
directive @cost(
complexity: Int! = 1
multipliers: [MultiplierPath!]
) on FIELD_DEFINITION
type Address implements IComponent {
city: String
country: String
housenumber: String
id: String
postalCode: String
street: String
}
type Ceiling implements IComponent {
id: String
}
type Component implements IComponent {
id: String
}
type Door implements IComponent {
height: Int!
id: String
width: Int!
}
type Floor implements IComponent {
ceiling: Ceiling
doors: [Door]
floorNumber: Int!
id: String
name: String
rooms: [Room]
structure: FloorStructure
walls: [Wall]
windows: [Window]
}
type FloorStructure implements IComponent {
automatic: Boolean!
height: Int!
id: String
}
enum Gender {
WOMAN
MAN
}
type House implements IComponent {
address: Address
floors: [Floor]
id: String
plot: Plot
residents: [Resident]
roof: Roof
templates: HouseTemplate
}
type HouseTemplate {
Floors: [TemplateInfo]
}
interface IComponent {
id: String
}
scalar MultiplierPath
type Mutation {
applyTemplate(
id: String
propertyName: String
templateName: String
): [IComponent]
newAddress(id: String): [IComponent]
newCeiling(id: String): [IComponent]
newDoor(id: String): [IComponent]
newFloor(floorNumber: Int, id: String, name: String): [IComponent]
newFloorStructure(
automatic: Boolean = true
height: Int = 10
id: String
): [IComponent]
newHouse(id: String): [IComponent]
newPlot(height: Int = 1000, id: String, width: Int = 1000): [IComponent]
newResident(id: String, name: String): [IComponent]
newRoof(id: String): [IComponent]
newRoom(id: String): [IComponent]
newWall(id: String): [IComponent]
newWindow(id: String): [IComponent]
}
type Plot implements IComponent {
height: Int!
id: String
plotNumber: String
width: Int!
}
type Query {
Address: [Address]
Ceiling: [Ceiling]
Door(id: String!): [Door]
Doors(
after: String = ""
count: Int = 10
): [Door]
Floor(id: String!): [Floor]
Floors(
after: String = ""
count: Int = 10
): [Floor]
FloorStructure: [FloorStructure]
House: [House]
Plot: [Plot]
Resident(id: String!): [Resident]
Residents(
after: String = ""
count: Int = 10
): [Resident]
Roof: [Roof]
Room(id: String!): [Room]
Rooms(
after: String = ""
count: Int = 10
): [Room]
Wall(id: String!): [Wall]
Walls(
after: String = ""
count: Int = 10
): [Wall]
Window(id: String!): [Window]
Windows(
after: String = ""
count: Int = 10
): [Window]
}
type Resident implements IComponent {
age: Int!
gender: Gender!
id: String
name: String
optional: Boolean!
}
type Roof implements IComponent {
id: String
}
type Room implements IComponent {
area: String
id: String
residents: [Resident]
}
type TemplateInfo {
description: String
name: String
}
type Wall implements IComponent {
id: String
prototype: String
}
type Window implements IComponent {
altitude: Int!
height: Int!
id: String
width: Int!
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment