68 lines
910 B
GraphQL
68 lines
910 B
GraphQL
scalar Time
|
|
|
|
type User {
|
|
id: ID!
|
|
name: String
|
|
email: String!
|
|
connectedAt: Time!
|
|
createdAt: Time!
|
|
}
|
|
|
|
type Project {
|
|
id: ID!
|
|
title: String!
|
|
tasks: [Task]!
|
|
params: ProjectParams!
|
|
acl: [Access]!
|
|
taskCategories: [TaskCategory]!
|
|
}
|
|
|
|
type Task {
|
|
id: ID!
|
|
label: String
|
|
category: TaskCategory
|
|
estimations: Estimations
|
|
}
|
|
|
|
type TaskCategory {
|
|
id: ID!
|
|
label: String!
|
|
costPerTimeUnit: Float!
|
|
}
|
|
|
|
type Access {
|
|
id: ID!
|
|
user: User!
|
|
level: String!
|
|
}
|
|
|
|
type ProjectParams {
|
|
timeUnit: TimeUnit
|
|
currency: String!
|
|
roundUpEstimations: Boolean!
|
|
hideFinancialPreviewOnPrint: Boolean!
|
|
}
|
|
|
|
type TimeUnit {
|
|
label: String!
|
|
acronym: String!
|
|
}
|
|
|
|
type Estimations {
|
|
optimistic: Float!
|
|
likely: Float!
|
|
pessimistic: Float!
|
|
}
|
|
|
|
input ProjectsFilter {
|
|
ids: [ID]
|
|
limit: Int
|
|
offset: Int
|
|
search: String
|
|
}
|
|
|
|
type Query {
|
|
currentUser: User
|
|
projects(filter: ProjectsFilter): [Project]
|
|
}
|