extend type Query @guard{
    participations(options: GeneralScope @spread): [Task!]! @paginate(defaultCount: 10 , scopes: ["search","participations"]) @can(ability: "viewAll")
    participation(id: ID! @eq): Task @find(scopes: ["participations"]) @can(ability: "view")
    trashedParticipations: [Task!]! @paginate(defaultCount: 10 , scopes: ["trashed" , "participations"]) @can(ability: "trashed")
}

extend type Mutation @guard{
    createParticipation(input: CreateTaskInput! @spread , type: TaskType! = Participation): Task! @can(ability: "create") @create
    updateParticipation(input: UpdateTaskInput! @spread): Task @can(ability: "update", find: "id" , args: "5") @update
    deleteParticipation(id: ID!): Task @can(ability: "delete", find: "id" , args: "5") @delete
    forceDeleteParticipation(id: ID!): Task @can(ability: "forceDelete", find: "id" , args: "5") @forceDelete
    restoreParticipation(id: ID!): Task @can(ability: "restore", find: "id" , args: "5") @restore
}
