How to design good class structure

(First, I’m not good at english. Sorry)

I have to make equipment like flashlight, Camcoder, PDA(for watching CCTV)

And they share same battery

At First, I implemented those equipment in character code because they have to turn on with key binding.
Then I realized character.cpp is mess since code of equipment implement.

So I thought I should make a separate class of equipment codes.

Here’s how I implemented it.
Implement all of the equipment in their respective classes.
Implement a battery class.
Create an equipment interface and create the equipment component that inherits it.
Put it all in there and instantiate the equipment so the character accesses the equipment component and uses the equipment.

However, after doing this, each piece of equipment is inaccessible to the editor because it is present in the equipment component.
(For example, situations where the editor wants to specify how many batteries a flash consumes per second, so that users can easily modify it.)
So, make a UPROPERTY (EditAnywhere) variable in the equipment component, make a Set function, and set value of equipment object in component. Equipment Component → Equipment Class I think it is inefficient because of this process.
I wonder how to design it would be more efficient.