package db

import (
	"time"

	"github.com/tidbcloud/jiraport/pkg/entity"
)

func (c *Client) GetNotificationActionExecInfo(actionExecInfoID uint) (*entity.NotificationActionExecInfo, error) {
	actionExecInfo := &entity.NotificationActionExecInfo{ID: actionExecInfoID}
	err := c.dataDB.Preload("Notification").Preload("Notification.Issue").First(actionExecInfo).Error
	if err != nil {
		return nil, err
	}
	return actionExecInfo, nil
}

// set action finished
func (c *Client) SetNotificationActionExecInfoFinished(
	actionExecInfoID uint,
	status uint) error {
	actionExecInfo := entity.NotificationActionExecInfo{
		ID:           actionExecInfoID,
		Done:         status,
		FinishedTime: time.Now(),
	}
	return c.dataDB.
		Model(&actionExecInfo).
		Select("Done", "FinishedTime").
		Updates(&actionExecInfo).
		Error
}
