package audit

import (
	"context"

	auditent "github.com/tidbcloud/devops/entity/audit"
	"github.com/tidbcloud/devops/entity/event"
)

func (s *svc) HandleClusterMaintenaceEvent(uuid string, event *event.ClusterMaintenanceEvent) error {
	adtLog, err := EventToAuditLog(event.BaseEvent, auditent.AuditLogTypeClusterMaintenance, event.Details)
	if err != nil {
		return err
	}

	return s.Create(context.TODO(), adtLog)
}

func (s *svc) HandleChangeEvent(uuid string, event *event.ChangeEvent) error {
	adtLog, err := EventToAuditLog(event.BaseEvent, auditent.AuditLogTypeChange, event.Details)
	if err != nil {
		return err
	}

	return s.Create(context.TODO(), adtLog)
}

func (s *svc) HandleOperationEvent(uuid string, event *event.OperationEvent) error {
	adtLog, err := EventToAuditLog(event.BaseEvent, auditent.AuditLogTypeOperation, event.Details)
	if err != nil {
		return err
	}

	return s.Create(context.TODO(), adtLog)
}

func (s *svc) HandleJumpEvent(uuid string, event *event.JumpEvent) error {
	adtLog, err := EventToAuditLog(event.BaseEvent, auditent.AuditLogTypeJump, event.Details)
	if err != nil {
		return err
	}

	return s.Create(context.TODO(), adtLog)
}
