I have a design question and need some advice for it. I have a brand class, which has several social media collection object, where I can do $brand->getSocialMedia()->get('facebook'). Now Facebook is one of the classes which has several functionalities of course, it can get the brand's fanpage and events etc. But I created a \SocialMedia\PlatformInterface so I could create GooglePlus, Instagram
etc classes from it. My question is, I have a lot of technically the same things like getId, getName etc, so I could create an abstract class for those functions. Then I am left with the more specialised functionality. If Facebook were to extend the abstract class, and instagram too, should I hard code their ids for database in their respective classes? It's not like they're changing IDs (I need
them in the DB of course to see if a Brand has a specific SocialMedia) and I can't have duplicate Facebook entities either.
which has several social media = which has a social media