I know that for the STP a root switch or bridge is to be elected based on the BID that consists of a priority value and the MAC address of a switch if the priority is the same then the MAC is the deciding factor, but we know that a switch has more than one MAC address to be precise for each Network Card Interface it has a unique MAC address, so I want to know does the switch has to choose between these addresses or is there something else I'm missing?
Each switch has got a base MAC address which is used for STP priority determination. Additional addresses are increments of that base address.
IEEE 802.1D defines it like this:
7.12.5 Unique identification of a bridge
A unique 48-bit Universally Administered MAC Address, termed the Bridge Address, shall be assigned to each Bridge. The Bridge Address may be the individual MAC Address of a Bridge Port, in which case, use of the address of the lowest numbered Bridge Port (Port 1) is recommended.
Switches don't usually use NICs. The switch ports are just L2, which don't use MAC addresses of their own. L3 switches use virtual L3 interfaces or SVIs which either use the base address or an increment of that.
If a switch uses modular ports (port modules or just SFP slots), those work exactly like integrated ports ie. they don't bring their own MAC address.
Most routers behave like (L3) switches - base address and increments - but some actually use more-or-less independent MAC addresses with their ports.