fix: promocode multi-tariff support in cabinet

- Balance page: handle select_subscription response — show subscription
  picker when promo code adds days and user has multiple tariffs
- API: activatePromocode now accepts optional subscriptionId
- AdminPromocodeCreate: show trial tariff info when creating
  trial_subscription promo code, warn if no trial tariff configured
This commit is contained in:
c0mrade
2026-03-26 19:43:42 +03:00
parent 9546e0ffe6
commit 6de864ac43
3 changed files with 104 additions and 10 deletions

View File

@@ -68,14 +68,21 @@ export const balanceApi = {
// Activate promo code
activatePromocode: async (
code: string,
subscriptionId?: number,
): Promise<{
success: boolean;
message: string;
balance_before: number;
balance_after: number;
bonus_description: string | null;
message?: string;
balance_before?: number;
balance_after?: number;
bonus_description?: string | null;
error?: string;
eligible_subscriptions?: Array<{ id: number; tariff_name: string; days_left: number }>;
code?: string;
}> => {
const response = await apiClient.post('/cabinet/promocode/activate', { code });
const response = await apiClient.post('/cabinet/promocode/activate', {
code,
...(subscriptionId ? { subscription_id: subscriptionId } : {}),
});
return response.data;
},