title: Design suggestion in OOP
body: <p>Problem</p>
  
  <ol>
  <li>An <code>Organization</code> can have 1 or more <code>Credential</code>'s.</li>
  <li>There can be 1 Credential for each of the deployment environment
  like DEV, TEST, UAT, PROD etc.</li>
  <li>The Credential can be for UI or for App-to-App communication.</li>
  </ol>
  
  <p>Moreover, a user can indicate that the credentials across all the environments are the same. Or, a user can indicate that the user-name across environments is the same but he wants to supply different passwords for each environment.</p>
  
  <p>As you can see, there are two dimensions upon which a credential can be qualified i.e. endpoint type and environment. Wondering how to model this kind of relationship in OOP world.</p>