207 lines
2.8 KiB
GraphQL
207 lines
2.8 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 InvitedUserAccount {
|
|
id: ID!
|
|
email: String!
|
|
invitedOn: Time!
|
|
member: MemberList!
|
|
}
|
|
|
|
type Team {
|
|
id: ID!
|
|
createdAt: Time!
|
|
name: String!
|
|
members: [Member!]!
|
|
}
|
|
|
|
|
|
type InvitedMember {
|
|
email: String!
|
|
invitedOn: Time!
|
|
}
|
|
|
|
type Project {
|
|
id: ID!
|
|
createdAt: Time!
|
|
name: String!
|
|
team: Team
|
|
taskGroups: [TaskGroup!]!
|
|
members: [Member!]!
|
|
invitedMembers: [InvitedMember!]!
|
|
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 CausedBy {
|
|
id: ID!
|
|
fullName: String!
|
|
profileIcon: ProfileIcon
|
|
}
|
|
|
|
type TaskActivityData {
|
|
name: String!
|
|
value: String!
|
|
}
|
|
|
|
enum ActivityType {
|
|
TASK_ADDED
|
|
TASK_MOVED
|
|
TASK_MARKED_COMPLETE
|
|
TASK_MARKED_INCOMPLETE
|
|
TASK_DUE_DATE_CHANGED
|
|
TASK_DUE_DATE_ADDED
|
|
TASK_DUE_DATE_REMOVED
|
|
TASK_CHECKLIST_CHANGED
|
|
TASK_CHECKLIST_ADDED
|
|
TASK_CHECKLIST_REMOVED
|
|
}
|
|
|
|
type TaskActivity {
|
|
id: ID!
|
|
type: ActivityType!
|
|
data: [TaskActivityData!]!
|
|
causedBy: CausedBy!
|
|
createdAt: Time!
|
|
}
|
|
|
|
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!
|
|
activity: [TaskActivity!]!
|
|
}
|
|
|
|
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!]!
|
|
}
|