model Task {
fields {
title Text
complete Boolean
owner Identity
project Project?
}
actions {
create createTask() with (name, project.id?) {
@set(task.owner = ctx.identity)
@permission(expression: ctx.isAuthenticated)
}
get getTask(id)
update updateTask(id) with (name, project.id)
update completeTask(id) {
@set(todo.complete = true)
}
list listTasks(project.id?)
delete deleteTask(id)
} @permission(
actions: [get, list, update, delete],
expression: todo.owner == ctx.identity
)
}
model Project {
fields {
name Text
tasks Task[]
}
actions {
create createProject() with (name)
get getProject(id)
update updateProject(id) with (name)
list listProjects()
delete deleteProject(id)
}
@on([create], sendNewProjectEmail)
}
job SendDailySummaryEmail {
@schedule("every weekday at 9am")
}