package model

import (
	"time"

	"gorm.io/gorm"

	"github.com/pingcap-inc/clinic/pkg/jiradb"
)

func ListRecentCommentWithClinicLink(recent time.Duration) ([]jiradb.JiraAction, error) {
	actions := []jiradb.JiraAction{}
	err := jiradb.Transaction(func(txn *gorm.DB) error {
		err := txn.Table("jiraaction").Where(
			"UPDATED > ? AND (actionbody LIKE '%clinic.pingcap.com%' OR actionbody LIKE '%clinic-ingress-679409387.cn-north-1.elb.amazonaws.com.cn%')",
			time.Now().Add(-recent),
		).Find(&actions).Error
		if err != nil && err != gorm.ErrRecordNotFound {
			return err
		}
		return nil
	})
	if err != nil {
		return nil, err
	}
	return actions, nil
}

func ListCommentByIssueId(issueId uint) ([]jiradb.JiraAction, error) {
	actions := []jiradb.JiraAction{}
	err := jiradb.Transaction(func(txn *gorm.DB) error {
		return txn.Table("jiraaction").Where(&jiradb.JiraAction{
			IssueId: issueId,
		}).Find(&actions).Error
	})
	return actions, err
}
