// Package worker_sampledataapp add by blacknc <blacknc@163.com> at 2023/09/25 17:08:31
package worker_sampledataapp

import (
	"dataservices/internal/entity"
	"dataservices/internal/repository"
	"time"

	"github.com/tidbcloud/tiinf/monitor/tilog"
	"go.uber.org/zap"
)

type SuccessState struct{}

func (s *SuccessState) String() string {
	return entity.SampleDataTaskStateSuccee
}

func (s *SuccessState) Exec(c *SampleDataappContext) {
	tilog.Info(c.ctx, "sample dataapp task execute succeed", zap.Uint64("dataapp_id", c.dataapp.ID))
	c.err = nil
	c.task.CostMS = int(time.Since(c.task.CreatedAt.Time).Milliseconds())
	if err := repository.UpdateDataAppStatus(c.ctx, c.dataapp.ID, entity.DataAppStatusNormal); err != nil {
		tilog.Error(c.ctx, "uplodate dataapp status failed", zap.Uint64("dataapp_id", c.dataapp.ID), zap.Error(err))
	}
}
