// Code generated by MockGen. DO NOT EDIT.
// Source: ./prouct_svc.go
//
// Generated by this command:
//
//	mockgen -source=./prouct_svc.go -destination ./v3portdrivermock/prouct_svc.go -package v3portdrivermock
//

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

import (
	context "context"
	reflect "reflect"

	auditlogdto "github.com/kweaver-ai/kweaver-core/decision-agent/agent-backend/agent-factory/src/driveradapter/api/auditlogdto"
	productreq "github.com/kweaver-ai/kweaver-core/decision-agent/agent-backend/agent-factory/src/driveradapter/api/rdto/product/productreq"
	productresp "github.com/kweaver-ai/kweaver-core/decision-agent/agent-backend/agent-factory/src/driveradapter/api/rdto/product/productresp"
	gomock "go.uber.org/mock/gomock"
)

// MockIProductSvc is a mock of IProductSvc interface.
type MockIProductSvc struct {
	ctrl     *gomock.Controller
	recorder *MockIProductSvcMockRecorder
	isgomock struct{}
}

// MockIProductSvcMockRecorder is the mock recorder for MockIProductSvc.
type MockIProductSvcMockRecorder struct {
	mock *MockIProductSvc
}

// NewMockIProductSvc creates a new mock instance.
func NewMockIProductSvc(ctrl *gomock.Controller) *MockIProductSvc {
	mock := &MockIProductSvc{ctrl: ctrl}
	mock.recorder = &MockIProductSvcMockRecorder{mock}
	return mock
}

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

// Create mocks base method.
func (m *MockIProductSvc) Create(ctx context.Context, req *productreq.CreateReq) (string, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Create", ctx, req)
	ret0, _ := ret[0].(string)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Create indicates an expected call of Create.
func (mr *MockIProductSvcMockRecorder) Create(ctx, req any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockIProductSvc)(nil).Create), ctx, req)
}

// Delete mocks base method.
func (m *MockIProductSvc) Delete(ctx context.Context, id int64) (auditlogdto.ProductDeleteAuditLogInfo, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Delete", ctx, id)
	ret0, _ := ret[0].(auditlogdto.ProductDeleteAuditLogInfo)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Delete indicates an expected call of Delete.
func (mr *MockIProductSvcMockRecorder) Delete(ctx, id any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockIProductSvc)(nil).Delete), ctx, id)
}

// Detail mocks base method.
func (m *MockIProductSvc) Detail(ctx context.Context, id int64) (*productresp.DetailRes, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Detail", ctx, id)
	ret0, _ := ret[0].(*productresp.DetailRes)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Detail indicates an expected call of Detail.
func (mr *MockIProductSvcMockRecorder) Detail(ctx, id any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Detail", reflect.TypeOf((*MockIProductSvc)(nil).Detail), ctx, id)
}

// GetByKey mocks base method.
func (m *MockIProductSvc) GetByKey(ctx context.Context, key string) (*productresp.DetailRes, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetByKey", ctx, key)
	ret0, _ := ret[0].(*productresp.DetailRes)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetByKey indicates an expected call of GetByKey.
func (mr *MockIProductSvcMockRecorder) GetByKey(ctx, key any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetByKey", reflect.TypeOf((*MockIProductSvc)(nil).GetByKey), ctx, key)
}

// List mocks base method.
func (m *MockIProductSvc) List(ctx context.Context, offset, limit int) (*productresp.ListRes, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "List", ctx, offset, limit)
	ret0, _ := ret[0].(*productresp.ListRes)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// List indicates an expected call of List.
func (mr *MockIProductSvcMockRecorder) List(ctx, offset, limit any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockIProductSvc)(nil).List), ctx, offset, limit)
}

// Update mocks base method.
func (m *MockIProductSvc) Update(ctx context.Context, req *productreq.UpdateReq, id int64) (auditlogdto.ProductUpdateAuditLogInfo, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Update", ctx, req, id)
	ret0, _ := ret[0].(auditlogdto.ProductUpdateAuditLogInfo)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Update indicates an expected call of Update.
func (mr *MockIProductSvcMockRecorder) Update(ctx, req, id any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Update", reflect.TypeOf((*MockIProductSvc)(nil).Update), ctx, req, id)
}
