36 lines
1.2 KiB
Go
36 lines
1.2 KiB
Go
package domain
|
|
|
|
import "time"
|
|
|
|
const (
|
|
// statuts d'une tâche planifiée
|
|
TaskStatusActive = "active"
|
|
TaskStatusDone = "done"
|
|
)
|
|
|
|
type Task struct {
|
|
ID string `db:"id" json:"id"`
|
|
TeamID string `db:"team_id" json:"teamId"`
|
|
ModelID string `db:"model_id" json:"modelId"`
|
|
Label string `db:"label" json:"label"`
|
|
Prompt string `db:"prompt" json:"prompt"`
|
|
Cron string `db:"cron" json:"cron"`
|
|
Repeat bool `db:"repeat" json:"repeat"`
|
|
Status string `db:"status" json:"status"`
|
|
NextDatetime *time.Time `db:"next_datetime" json:"nextDatetime"`
|
|
LastDatetime *time.Time `db:"last_datetime" json:"lastDatetime"`
|
|
DateCreated time.Time `db:"_date_created" json:"_date_created"`
|
|
DateUpdated *time.Time `db:"_date_updated" json:"_date_updated"`
|
|
VersionId string `db:"_version" json:"_version"`
|
|
}
|
|
|
|
type TaskRepository interface {
|
|
ListTasks(userID string, teamID string) ([]*Task, error)
|
|
ListActiveTasks() ([]*Task, error)
|
|
GetTaskByID(userID string, teamID string, id string) (*Task, error)
|
|
CreateTask(task *Task) (*Task, error)
|
|
UpdateTask(task *Task) (*Task, error)
|
|
DeleteTask(userID string, teamID string, id string) error
|
|
FirstUserOfTeam(teamID string) (string, error)
|
|
}
|