My oldest is only 5, but I can see some similarities to your post above.
We can definitely count obsessed with lego. We go through patches where it is all he plays with for several days. Transformers are the other big hit.
We also have days where he doesn't want to do anything: today being a prime example. He has literally eaten or watched TV all day. Been offered a trip to the park, a bike ride, baking with me, board game: no, no, no, no, no. So we have left him to it. I take days like that as he needs a slob day (we got out of PJ's at lunch time).
Battles: over what??? There are some things that we insist on, but others are optional. So dirty clothes MUST go in the laundry basket. But pegging out washing, or putting back in the wardrobe I'd ask if he wants to help.
Did he ask for swimming lessons, or have you decided he should go? Maybe its time to have a break for a few months?
He doesn't struggle for friends.
I guess I'm trying to say some of it doesn't sound unusual, but if hes that unhappy, maybe something needs to change, but I don't know what.
Hope thats been some use, suspect it might not have been tho. Sorry.