[HttpGet]
[Route("getUserById/{id}")]
public async Task<IActionResult> GetUserById(int id)
{
    try
    {
        var user = await _userManager.FindByIdAsync(id.ToString());

        if (user == null)
        {
            return NotFound("User not found.");
        }

        var userViewModel = new UserViewModel
        {
            Name = user.Name,
            Surname = user.Surname,
            Email = user.Email,
            Physical_Address = user.Physical_Address,
            PhoneNumber = user.PhoneNumber,
            Date_of_Birth = user.Date_of_Birth,
            User_Status_ID = user.User_Status_ID,
            User_Type_ID = user.User_Type_ID,
            Id_Number = user.ID_Number
        };

        // Fetch the base64 string photo from user.Photo
        string base64Photo = user.Photo;

        // Convert base64 string to byte array
        byte[] photoBytes = Convert.FromBase64String(base64Photo);

        // Convert byte array to IFormFile-like object
        var memoryStream = new MemoryStream(photoBytes);

        userViewModel.Photo = new FormFile(memoryStream, 0, photoBytes.Length, "Photo", "photo.jpg")
        {
            Headers = new HeaderDictionary(),
            ContentType = "image/jpeg" // Set the content type as appropriate
        };

        return Ok(userViewModel);
    }
    catch (Exception ex)
    {
        // Log the exception for debugging
        Console.WriteLine(ex.Message);
        return BadRequest("An error occurred while fetching user details.");
    }
}