package dbuser

import (
	"context"

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

	"github.com/tidbcloud/account/internel/dao/dbuser"

	"github.com/tidbcloud/account/internel/dao/entity"
)

func (r *DBUserSvc) CreateCommandUserAction(ctx context.Context, operator uint64, userId uint64, email string, orgId uint64, projectId uint64, status entity.CommandStatus, action entity.CommandAction, targetType entity.TargetType, operatorType entity.TargetType) error {
	tilog.Info(ctx, "CreateCommandUserAction", zap.Any("operator", operator), zap.Any("userId", userId),
		zap.Any("email", email), zap.Any("orgId", orgId), zap.Any("status", status), zap.Any("action", action), zap.Any("targetType", targetType))

	return r.hub.DBUser.CreateCommandUserAction(ctx, r.db, operator, userId, email, orgId, projectId, status, action, targetType, operatorType)
}

func (r *DBUserSvc) ListCommandUserActions(ctx context.Context, filter dbuser.CommandUserActionFilter) ([]entity.CommandUserAction, error) {

	return r.hub.DBUser.ListCommandUserActions(ctx, r.db, filter)
}

func (r *DBUserSvc) UpdateCommandUserAction(ctx context.Context, id uint64, operator uint64, userId uint64, orgId uint64, projectId uint64, status entity.CommandStatus, action entity.CommandAction) error {
	return r.hub.DBUser.UpdateCommandUserAction(ctx, r.db, id, operator, userId, orgId, projectId, status, action)
}
