mirror of
https://github.com/bitwarden/server.git
synced 2026-06-01 01:55:55 -05:00
* feat(billing): add subscription discount response model * feat(billing): implement discount audience filters * feat(billing): introduce subscription discount service * feat(billing): add query for applicable discounts * feat(api): add endpoint for applicable discounts * chore(billing): register new billing services and queries * refactor(tests): rename discount audience filter test methods for clarity * refactor(billing): remove unused Id property from SubscriptionDiscountResponseModel * feat(billing): add feature flag to GetApplicableDiscountsAsync endpoint * format(billing): dotnet format and remove pricing import * refactor(billing): change discount audience filter factory to singleton * test(discount): add test to verify filter retrieval for all audience types * feat(billing): add DiscountTierType enum * feat(billing): define Stripe product IDs and tier mapping * feat(billing): introduce DiscountEligibility record * feat(billing): update IDiscountAudienceFilter for tier eligibility * feat(billing): add ListSubscriptionsAsync to IStripeAdapter * feat(billing): implement ListSubscriptionsAsync in StripeAdapter * feat(billing): implement AllUsersFilter for discount audience * feat(billing): refactor UserHasNoPreviousSubscriptionsFilter for tier eligibility * feat(billing): update DiscountAudienceFilterFactory for DI * feat(billing): update ISubscriptionDiscountService for tier eligibility * feat(billing): implement SubscriptionDiscountService tier eligibility * feat(billing): update SubscriptionDiscountResponseModel with tier eligibility * feat(billing): add GetTierEligibilityDictionary utility * feat(billing): update GetApplicableDiscountsQuery to use tier eligibility * chore(billing): update DI registrations for discount services * test(billing): add/update unit tests for discount features * fix(billing): remove unneeded import * fix(billing): run dotnet format * refactor(billing): remove unused Teams and Enterprise discount tiers * refactor(billing): move DiscountEligibility to Models namespace * refactor(billing): update discount audience filter DI to scoped * perf(billing): optimize UserHasNoPreviousSubscriptionsFilter with caching * refactor(billing): remove StripeProductIds from subscription discount response model * test(billing): update GetApplicableDiscountsQueryTests after StripeProductIds removal * fix(billing): Run dotnet format