package task

import "github.com/tidbcloud/aisupport/packages/sdk-go/contracts/entity/base"

type (
	TaskPriority   string
	TaskGroup      string
	TaskMemberRole string
)

const (
	TaskPriorityP0 = "p0"
	TaskPriorityP1 = "p1"
	TaskPriorityP2 = "p2"
	TaskPriorityP3 = "p3"

	TaskGroupDefault = ""

	TaskMemberRoleOperator = "operator"
	TaskMemberRoleBackup   = "backup"
)

type TaskMember struct {
	TaskID      uint64         `json:"task_id,omitempty"`
	MemberEmail string         `json:"member_email"`
	Role        TaskMemberRole `json:"role"`
}

type Task struct {
	base.Updatable `json:",inline"`

	Title        string       `json:"title"`
	Description  string       `json:"description"`
	Priority     TaskPriority `json:"priority"`
	DueAt        *int64       `json:"due_at"`
	Creator      string       `json:"creator"`
	StartedAt    *int64       `json:"started_at"`
	CompletedAt  *int64       `json:"completed_at"`
	ParentTaskID uint64       `json:"parent_task_id"`
	TaskListID   uint64       `json:"task_list_id"`
	Group        TaskGroup    `json:"group"`
	Members      []TaskMember `json:"members"`
}
