type ProjectPermission {
  team: RoleCode!
  project: RoleCode!
  org: RoleCode!
}

type Project {
  id: ID!
  createdAt: Time!
  name: String!
  team: Team
  taskGroups: [TaskGroup!]!
  members: [Member!]!
  invitedMembers: [InvitedMember!]!
  publicOn: Time
  permission: ProjectPermission!
  labels: [ProjectLabel!]!
}

type ProjectLabel {
  id: ID!
  createdDate: Time!
  labelColor: LabelColor!
  name: String
}

type LabelColor {
  id: ID!
  name: String!
  position: Float!
  colorHex: String!
}

type Member {
  id: ID!
  role: Role!
  fullName: String!
  username: String!
  profileIcon: ProfileIcon!
  owned: OwnedList!
  member: MemberList!
}

type InvitedMember {
  email: String!
  invitedOn: Time!
}
