package centralmod

import (
	"context"
	"time"

	"github.com/juju/errors"
	"github.com/pingcap/log"
	"github.com/tidbcloud/account/idl/pbgen/proto/account"
	"github.com/tidbcloud/metrics-server/central/db/entity"
	"github.com/tidbcloud/metrics-server/central/model/account/grpcli"
	"go.uber.org/zap"
	"google.golang.org/protobuf/types/known/timestamppb"
)

func AddAccessLogNow(ctx context.Context, orgID entity.ID, user, content string) error {
	_, err := grpcli.CreateAuditLog(ctx, &account.CreateAuditLogRequest{AuditLog: &account.AuditLog{
		CreatedAt: &timestamppb.Timestamp{
			Seconds: time.Now().Unix(),
		},
		OrgId:   orgID.Uint64(),
		User:    user,
		Content: content,
	}})

	if err != nil {
		log.Error("AddAccessLogNow call CreateAuditLog failed",
			zap.String("User", user),
			zap.Uint64("OrgID", orgID.Uint64()),
			zap.String("Content", content),
			zap.Error(err))

		return errors.Annotate(err, "add access log failed")
	}

	return nil
}
