// Code generated by MockGen. DO NOT EDIT.
// Source: ./central/db/dbutil/useralerts/useralerts.go

// Package mock_cdc is a generated GoMock package.
package mock_cdc

import (
	context "context"
	reflect "reflect"

	gomock "github.com/golang/mock/gomock"
	entity "github.com/tidbcloud/metrics-server/central/db/entity"
	gorm "gorm.io/gorm"
)

// MockUserAlertService is a mock of UserAlertService interface.
type MockUserAlertService struct {
	ctrl     *gomock.Controller
	recorder *MockUserAlertServiceMockRecorder
}

// MockUserAlertServiceMockRecorder is the mock recorder for MockUserAlertService.
type MockUserAlertServiceMockRecorder struct {
	mock *MockUserAlertService
}

// NewMockUserAlertService creates a new mock instance.
func NewMockUserAlertService(ctrl *gomock.Controller) *MockUserAlertService {
	mock := &MockUserAlertService{ctrl: ctrl}
	mock.recorder = &MockUserAlertServiceMockRecorder{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockUserAlertService) EXPECT() *MockUserAlertServiceMockRecorder {
	return m.recorder
}

// DeleteUserAlerts mocks base method.
func (m *MockUserAlertService) DeleteUserAlerts(ctx context.Context, tx *gorm.DB, projectID entity.ID, userIDs ...entity.ID) error {
	m.ctrl.T.Helper()
	varargs := []interface{}{ctx, tx, projectID}
	for _, a := range userIDs {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "DeleteUserAlerts", varargs...)
	ret0, _ := ret[0].(error)
	return ret0
}

// DeleteUserAlerts indicates an expected call of DeleteUserAlerts.
func (mr *MockUserAlertServiceMockRecorder) DeleteUserAlerts(ctx, tx, projectID interface{}, userIDs ...interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	varargs := append([]interface{}{ctx, tx, projectID}, userIDs...)
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteUserAlerts", reflect.TypeOf((*MockUserAlertService)(nil).DeleteUserAlerts), varargs...)
}

// GetEmailUserAlertsByProjectID mocks base method.
func (m *MockUserAlertService) GetEmailUserAlertsByProjectID(ctx context.Context, tx *gorm.DB, projectID entity.ID) ([]entity.UserAlert, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetEmailUserAlertsByProjectID", ctx, tx, projectID)
	ret0, _ := ret[0].([]entity.UserAlert)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetEmailUserAlertsByProjectID indicates an expected call of GetEmailUserAlertsByProjectID.
func (mr *MockUserAlertServiceMockRecorder) GetEmailUserAlertsByProjectID(ctx, tx, projectID interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetEmailUserAlertsByProjectID", reflect.TypeOf((*MockUserAlertService)(nil).GetEmailUserAlertsByProjectID), ctx, tx, projectID)
}

// GetUserAlertByID mocks base method.
func (m *MockUserAlertService) GetUserAlertByID(ctx context.Context, tx *gorm.DB, id entity.ID) (*entity.UserAlert, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetUserAlertByID", ctx, tx, id)
	ret0, _ := ret[0].(*entity.UserAlert)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetUserAlertByID indicates an expected call of GetUserAlertByID.
func (mr *MockUserAlertServiceMockRecorder) GetUserAlertByID(ctx, tx, id interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserAlertByID", reflect.TypeOf((*MockUserAlertService)(nil).GetUserAlertByID), ctx, tx, id)
}

// GetUserAlertByUserAndProjectID mocks base method.
func (m *MockUserAlertService) GetUserAlertByUserAndProjectID(ctx context.Context, tx *gorm.DB, userID, projectID entity.ID) (*entity.UserAlert, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetUserAlertByUserAndProjectID", ctx, tx, userID, projectID)
	ret0, _ := ret[0].(*entity.UserAlert)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetUserAlertByUserAndProjectID indicates an expected call of GetUserAlertByUserAndProjectID.
func (mr *MockUserAlertServiceMockRecorder) GetUserAlertByUserAndProjectID(ctx, tx, userID, projectID interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserAlertByUserAndProjectID", reflect.TypeOf((*MockUserAlertService)(nil).GetUserAlertByUserAndProjectID), ctx, tx, userID, projectID)
}

// GetWebhookUserAlertsByProjectID mocks base method.
func (m *MockUserAlertService) GetWebhookUserAlertsByProjectID(ctx context.Context, tx *gorm.DB, projectID entity.ID) ([]entity.UserAlert, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetWebhookUserAlertsByProjectID", ctx, tx, projectID)
	ret0, _ := ret[0].([]entity.UserAlert)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetWebhookUserAlertsByProjectID indicates an expected call of GetWebhookUserAlertsByProjectID.
func (mr *MockUserAlertServiceMockRecorder) GetWebhookUserAlertsByProjectID(ctx, tx, projectID interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWebhookUserAlertsByProjectID", reflect.TypeOf((*MockUserAlertService)(nil).GetWebhookUserAlertsByProjectID), ctx, tx, projectID)
}
