// Code generated by ndpgen. DO NOT EDIT.
//
// This file contains mock implementations for non-WASM builds.
// These mocks allow IDE support, compilation, and unit testing on non-WASM platforms.
// Plugin authors can use the exported mock instances to set expectations in tests.
//
//go:build !wasip1

package host

import "github.com/stretchr/testify/mock"

// User represents the User data structure.
// User represents a Navidrome user with minimal information exposed to plugins.
// Sensitive fields like password, email, and internal IDs are intentionally excluded.
type User struct {
	UserName string `json:"userName"`
	Name     string `json:"name"`
	IsAdmin  bool   `json:"isAdmin"`
}

// mockUsersService is the mock implementation for testing.
type mockUsersService struct {
	mock.Mock
}

// UsersMock is the auto-instantiated mock instance for testing.
// Use this to set expectations: host.UsersMock.On("MethodName", args...).Return(values...)
var UsersMock = &mockUsersService{}

// GetUsers is the mock method for UsersGetUsers.
func (m *mockUsersService) GetUsers() ([]User, error) {
	args := m.Called()
	return args.Get(0).([]User), args.Error(1)
}

// UsersGetUsers delegates to the mock instance.
// GetUsers returns all users the plugin has been granted access to.
// Only minimal user information (userName, name, isAdmin) is returned.
// Sensitive fields like password and email are never exposed.
//
// Returns a slice of users the plugin can access, or an empty slice if none configured.
func UsersGetUsers() ([]User, error) {
	return UsersMock.GetUsers()
}

// GetAdmins is the mock method for UsersGetAdmins.
func (m *mockUsersService) GetAdmins() ([]User, error) {
	args := m.Called()
	return args.Get(0).([]User), args.Error(1)
}

// UsersGetAdmins delegates to the mock instance.
// GetAdmins returns only admin users the plugin has been granted access to.
// This is a convenience method that filters GetUsers results to include only admins.
//
// Returns a slice of admin users the plugin can access, or an empty slice if none.
func UsersGetAdmins() ([]User, error) {
	return UsersMock.GetAdmins()
}
