// Code generated by MockGen. DO NOT EDIT.
// Source: stats_service.go
//
// Generated by this command:
//
//	mockgen -source=stats_service.go -destination=../../tests/mocks/mock_stats_service.go -package=mocks
//

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

import (
	reflect "reflect"
	time "time"

	domain "nex/backend/internal/domain"

	gomock "go.uber.org/mock/gomock"
)

// MockStatsService is a mock of StatsService interface.
type MockStatsService struct {
	ctrl     *gomock.Controller
	recorder *MockStatsServiceMockRecorder
	isgomock struct{}
}

// MockStatsServiceMockRecorder is the mock recorder for MockStatsService.
type MockStatsServiceMockRecorder struct {
	mock *MockStatsService
}

// NewMockStatsService creates a new mock instance.
func NewMockStatsService(ctrl *gomock.Controller) *MockStatsService {
	mock := &MockStatsService{ctrl: ctrl}
	mock.recorder = &MockStatsServiceMockRecorder{mock}
	return mock
}

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

// Aggregate mocks base method.
func (m *MockStatsService) Aggregate(stats []domain.UsageStats, groupBy string) []map[string]any {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Aggregate", stats, groupBy)
	ret0, _ := ret[0].([]map[string]any)
	return ret0
}

// Aggregate indicates an expected call of Aggregate.
func (mr *MockStatsServiceMockRecorder) Aggregate(stats, groupBy any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Aggregate", reflect.TypeOf((*MockStatsService)(nil).Aggregate), stats, groupBy)
}

// Get mocks base method.
func (m *MockStatsService) Get(providerID, modelName string, startDate, endDate *time.Time) ([]domain.UsageStats, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Get", providerID, modelName, startDate, endDate)
	ret0, _ := ret[0].([]domain.UsageStats)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Get indicates an expected call of Get.
func (mr *MockStatsServiceMockRecorder) Get(providerID, modelName, startDate, endDate any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Get", reflect.TypeOf((*MockStatsService)(nil).Get), providerID, modelName, startDate, endDate)
}

// Record mocks base method.
func (m *MockStatsService) Record(providerID, modelName string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Record", providerID, modelName)
	ret0, _ := ret[0].(error)
	return ret0
}

// Record indicates an expected call of Record.
func (mr *MockStatsServiceMockRecorder) Record(providerID, modelName any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Record", reflect.TypeOf((*MockStatsService)(nil).Record), providerID, modelName)
}
