Created
August 25, 2025 19:41
-
-
Save h22k/b928f69f44e8ad71bbaaf516f98d2518 to your computer and use it in GitHub Desktop.
graphql schema for internal onboarding and offboarding process manager project
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| scalar UUID | |
| scalar DateTime | |
| enum EmployeeStatus { | |
| ACTIVE | |
| ONBOARDING | |
| OFFBOARDING | |
| DEACTIVE | |
| } | |
| enum ProcessType { | |
| ONBOARDING | |
| OFFBOARDING | |
| } | |
| type Employee { | |
| id: UUID! | |
| name: String! | |
| address: String | |
| salary: Float | |
| status: EmployeeStatus! | |
| team: Team! | |
| roles: [Role!]! | |
| permissions: [Permission!]! | |
| processes: [Process]! | |
| manager: Employee | |
| informationPage: InformationPage | |
| } | |
| type EmployeePublic { | |
| name: String! | |
| } | |
| type Team { | |
| id: UUID! | |
| name: String! | |
| manager: Employee! | |
| members: [Employee!]! | |
| workflow: Workflow | |
| } | |
| type Role { | |
| id: UUID! | |
| name: String! | |
| permissions: [Permission!]! | |
| employees: [Employee!]! | |
| } | |
| type Permission { | |
| id: UUID! | |
| name: String! | |
| roles: [Role!]! | |
| employees: [Employee!]! | |
| } | |
| type Task { | |
| id: UUID! | |
| name: String! | |
| team: Team! | |
| dynamicDeadline: String | |
| workflows: [Workflow!]! | |
| } | |
| type Workflow { | |
| id: UUID! | |
| name: String! | |
| team: Team! | |
| tasks: [Task!]! | |
| } | |
| type Process { | |
| id: UUID! | |
| employee: Employee! | |
| team: Team! | |
| type: ProcessType! | |
| dateStart: DateTime! | |
| dateEnd: DateTime | |
| tasks: [Task!]! | |
| } | |
| type ProcessTask { | |
| id: UUID! | |
| process: Process! | |
| task: Task! | |
| taskDeadline: DateTime! | |
| taskAssignee: Employee! | |
| isCompleted: Boolean! | |
| connectedTo: ProcessTask | |
| } | |
| type ProcessTaskPublic { | |
| taskDeadline: DateTime! | |
| taskAssignee: EmployeePublic! | |
| isCompleted: Boolean! | |
| connectedTo: ProcessTaskPublic | |
| } | |
| type ProcessInformation { | |
| processTasks: [ProcessTaskPublic!]! | |
| } | |
| type InformationPage { | |
| id: UUID! | |
| employee: Employee! | |
| url: String! | |
| } | |
| input EmployeeFilter { | |
| status: EmployeeStatus | |
| teamId: UUID | |
| roleId: UUID | |
| text: String | |
| } | |
| input CreateEmployeeInput { | |
| name: String! | |
| address: String | |
| salary: Float | |
| teamId: UUID! | |
| roleIds: [UUID!] | |
| permissionIds: [UUID!] | |
| status: EmployeeStatus = ONBOARDING | |
| } | |
| input UpdateEmployeeInput { | |
| id: UUID! | |
| name: String | |
| address: String | |
| salary: Float | |
| status: EmployeeStatus | |
| teamId: UUID | |
| roleIds: [UUID!] | |
| permissionIds: [UUID!] | |
| } | |
| input CreateTeamInput { | |
| name: String! | |
| managerId: UUID! | |
| } | |
| input CreateRoleInput { | |
| name: String! | |
| permissionIds: [UUID!] | |
| } | |
| input CreatePermissionInput { | |
| name: String! | |
| } | |
| input CreateTaskInput { | |
| name: String! | |
| teamId: UUID! | |
| dynamicDeadline: String! | |
| } | |
| input UpdateTaskInput { | |
| id: UUID! | |
| name: String | |
| teamId: UUID | |
| dynamicDeadline: String | |
| } | |
| input CreateWorkflowInput { | |
| teamId: UUID! | |
| name: String! | |
| taskIds: [UUID!] | |
| } | |
| input UpdateWorkflowTasksInput { | |
| workflowId: UUID! | |
| addTaskIds: [UUID!] | |
| removeTaskIds: [UUID!] | |
| } | |
| input StartProcessInput { | |
| employeeId: UUID! | |
| teamId: UUID | |
| type: ProcessType! | |
| } | |
| input CompleteProcessTaskInput { | |
| processTaskId: UUID! | |
| } | |
| input AssignProcessTaskInput { | |
| processTaskId: UUID! | |
| assigneeEmployeeId: UUID | |
| taskDeadline: DateTime | |
| } | |
| type Query { | |
| employee(id: UUID!): Employee | |
| team(id: UUID!): Team | |
| role(id: UUID!): Role | |
| permission(id: UUID!): Permission | |
| task(id: UUID!): Task | |
| workflow(id: UUID!): Workflow | |
| process(id: UUID!): Process | |
| processTask(id: UUID!): ProcessTask | |
| informationPage(processID: UUID!): InformationPage | |
| processInformation(processID: UUID!): ProcessInformation | |
| employees: [Employee!]! | |
| teams: [Team!]! | |
| roles: [Role!]! | |
| permissions: [Permission!]! | |
| tasks: [Task!]! | |
| workflows: [Workflow!]! | |
| processes: [Process!]! | |
| } | |
| type Mutation { | |
| createEmployee(input: CreateEmployeeInput!): Employee! | |
| updateEmployee(input: UpdateEmployeeInput!): Employee! | |
| addRoleToEmployee(employeeId: UUID!, roleId: UUID!): Employee! | |
| removeRoleFromEmployee(employeeId: UUID!, roleId: UUID!): Employee! | |
| grantPermissionToEmployee(employeeId: UUID!, permissionId: UUID!): Employee! | |
| revokePermissionFromEmployee(employeeId: UUID!, permissionId: UUID!): Employee! | |
| createTeam(input: CreateTeamInput!): Team! | |
| createWorkflow(input: CreateWorkflowInput!): Workflow! | |
| updateWorkflowTasks(input: UpdateWorkflowTasksInput!): Workflow! | |
| createTask(input: CreateTaskInput!): Task! | |
| updateTask(input: UpdateTaskInput!): Task! | |
| startProcess(input: StartProcessInput!): Process! | |
| assignProcessTask(input: AssignProcessTaskInput!): ProcessTask! | |
| completeProcessTask(input: CompleteProcessTaskInput!): ProcessTask! | |
| createRole(input: CreateRoleInput!): Role! | |
| createPermission(input: CreatePermissionInput!): Permission! | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment