This can be done easily, but it not user selectable.
The only way you can make is a user choice is by using different subnets on your LAN and the user can then chose which subnet their device is a member of. Once you have sorted this out you need:
default route specifying a routing mark for each gateway (GW1 and GW2)
don’t forget add a default route with no routing mark if you need the router to access outside and are not marking the packets from the router.
Then add IP firewall mangle rules to add a routing mark to LAN subnet 1 and mark them GW1
do the same for LAN subnet 2 - add a routing mark GW2
You really can’t do what you want in a single router - because the routing table has no idea by what IP address the router received a packet.
Remember - if your hosts says default gw = 10.0.0.2 – then it will send an ARP to learn the MAC address of 10.0.0.2, which will be the same as the MAC address for 10.0.0.1 right? It’s the same interface on the same device…
So, suppose the packet is going to google:
74.125.21.106 and the packet is from host 10.0.0.10
On the wire, the source IP is 10.0.0.10 and the destination IP is 74.125.21.106
On the wire, the source MAC is aaaa.bbbb.cccc (user’s mac) and the destination MAC is the Mikrotik’s mac (dddd.eeee.ffff)
When the Mikrotik receives the frame, its ethernet interface recognizes the destination MAC is itself - so it accepts the frame, removes the ethernet header, and sends the remaining IP packet up the stack to the IP engine.
IP now has a packet from 10.0.0.10 to 74.125.21.106 — there is no information which tells the router the host was using 10.0.0.2 as the default GW.
You have to use two seperate physical interfaces at the very least - so you can put policy-based routing on the packet… but you can’t have two different layer 3 interfaces which exist in the same layer 3 network…
So unfortunately, you cannot do what you want.
adyb76 gave you the correct solution - two IP networks on the same physical LAN, and policy-routing.
Honestly, the easiest thing to do is just use two routers. Make router 1 be connected to ISP1, and have 10.0.0.1 as its LAN address, and router 2 = 10.0.0.2 as its LAN address, and it’s connected to ISP2.