Support multiple Duo add-on tiers in Duo management page
What does this MR do and why?
Resolves https://gitlab.com/gitlab-org/gitlab/-/issues/468440+.
This MR uses the new GetAddOnPurchases to retrieve both Duo add-on tiers, if they are both added to the namespace, and sets the page to use the higher one. This is to account for cases where, for example, a namespace would have a Duo Pro add-on, but also a Duo Enterprise trial add-on.
MR acceptance checklist
Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Screenshots or screen recordings
| Case | Screenshot | 
|---|---|
| SaaS: Duo Pro only |  | 
| SaaS: Duo Enterprise only |  | 
| SaaS: Duo Pro and Enterprise |  | 
| SM/Dedicated: Duo Pro only |  | 
| SM/Dedicated: Duo Enterprise only |  | 
| SM/Dedicated: Duo Pro and Enterprise |  | 
How to set up and validate locally
First, enable the feature flags gitlab_duo_usage_menu_item and self_managed_code_suggestions. Then:
- Start GDK, CDot, and Zsim.
- Set up a user and namespace for testing:
- For SaaS, create a new user with a new group.
- For SM, use the root user.
 
- For each test case, create an order in Zuora with an Ultimate subscription and the appropriate Duo add-on tier. Assign it to the group for SaaS, or use the new license from that order for SM/Dedicated.
- Navigate to the appropriate page and confirm that the correct add-on tier is used on the page.
- For SaaS, there are two pages: http://gdk.test:3000/groups/:group/-/settings/gitlab_duo_usage and http://gdk.test:3000/groups/:group/-/settings/usage_quotas.
- For SM, the page is http://gdk.test:3000/admin/code_suggestions.
 
Edited  by Mohamed Moustafa