4277b7b2a8
personal projects are projects that have no team. they can only seen by the project members (one of which is whoever first creates the project).
160 lines
2.1 KiB
GraphQL
160 lines
2.1 KiB
GraphQL
scalar Time
|
|
scalar UUID
|
|
scalar Upload
|
|
|
|
enum RoleCode {
|
|
owner
|
|
admin
|
|
member
|
|
observer
|
|
}
|
|
|
|
type ProjectLabel {
|
|
id: ID!
|
|
createdDate: Time!
|
|
labelColor: LabelColor!
|
|
name: String
|
|
}
|
|
|
|
type LabelColor {
|
|
id: ID!
|
|
name: String!
|
|
position: Float!
|
|
colorHex: String!
|
|
}
|
|
|
|
type TaskLabel {
|
|
id: ID!
|
|
projectLabel: ProjectLabel!
|
|
assignedDate: Time!
|
|
}
|
|
|
|
type ProfileIcon {
|
|
url: String
|
|
initials: String
|
|
bgColor: String
|
|
}
|
|
|
|
type OwnersList {
|
|
projects: [UUID!]!
|
|
teams: [UUID!]!
|
|
}
|
|
|
|
type Member {
|
|
id: ID!
|
|
role: Role!
|
|
fullName: String!
|
|
username: String!
|
|
profileIcon: ProfileIcon!
|
|
owned: OwnedList!
|
|
member: MemberList!
|
|
}
|
|
|
|
type RefreshToken {
|
|
id: ID!
|
|
userId: UUID!
|
|
expiresAt: Time!
|
|
createdAt: Time!
|
|
}
|
|
|
|
type Role {
|
|
code: String!
|
|
name: String!
|
|
}
|
|
|
|
type OwnedList {
|
|
teams: [Team!]!
|
|
projects: [Project!]!
|
|
}
|
|
|
|
type MemberList {
|
|
teams: [Team!]!
|
|
projects: [Project!]!
|
|
}
|
|
|
|
type UserAccount {
|
|
id: ID!
|
|
email: String!
|
|
createdAt: Time!
|
|
fullName: String!
|
|
initials: String!
|
|
bio: String!
|
|
role: Role!
|
|
username: String!
|
|
profileIcon: ProfileIcon!
|
|
owned: OwnedList!
|
|
member: MemberList!
|
|
}
|
|
|
|
type Team {
|
|
id: ID!
|
|
createdAt: Time!
|
|
name: String!
|
|
members: [Member!]!
|
|
}
|
|
|
|
type Project {
|
|
id: ID!
|
|
createdAt: Time!
|
|
name: String!
|
|
team: Team
|
|
taskGroups: [TaskGroup!]!
|
|
members: [Member!]!
|
|
labels: [ProjectLabel!]!
|
|
}
|
|
|
|
type TaskGroup {
|
|
id: ID!
|
|
projectID: String!
|
|
createdAt: Time!
|
|
name: String!
|
|
position: Float!
|
|
tasks: [Task!]!
|
|
}
|
|
|
|
type ChecklistBadge {
|
|
complete: Int!
|
|
total: Int!
|
|
}
|
|
|
|
type TaskBadges {
|
|
checklist: ChecklistBadge
|
|
}
|
|
|
|
type Task {
|
|
id: ID!
|
|
taskGroup: TaskGroup!
|
|
createdAt: Time!
|
|
name: String!
|
|
position: Float!
|
|
description: String
|
|
dueDate: Time
|
|
complete: Boolean!
|
|
completedAt: Time
|
|
assigned: [Member!]!
|
|
labels: [TaskLabel!]!
|
|
checklists: [TaskChecklist!]!
|
|
badges: TaskBadges!
|
|
}
|
|
|
|
type Organization {
|
|
id: ID!
|
|
name: String!
|
|
}
|
|
|
|
type TaskChecklistItem {
|
|
id: ID!
|
|
name: String!
|
|
taskChecklistID: UUID!
|
|
complete: Boolean!
|
|
position: Float!
|
|
dueDate: Time!
|
|
}
|
|
|
|
type TaskChecklist {
|
|
id: ID!
|
|
name: String!
|
|
position: Float!
|
|
items: [TaskChecklistItem!]!
|
|
}
|