@@ -83,7 +83,9 @@ class BusinessHostSelector: host = self.user.business_account.parent_company else: raise Exception(_("User haven't rights to access host account information")) - return BusinessHostSerializer(host, context={'worker_amount': host.accounts.count()}) + return BusinessHostSerializer( + host, context={'worker_amount': host.accounts.count(), 'token_cap_enabled': host.token_cap_enabled} + ) def get_all_account_statistics( self, @@ -181,9 +181,14 @@ class BusinessHostService: company.token_cap_emails = token_cap_emails if (token_cap_enabled := serializer.validated_data.get('token_cap_enabled', None)) is not None: company.token_cap_enabled = token_cap_enabled + if ( + company.token_cap_enabled + and (token_cap := serializer.validated_data.get('token_cap', None)) is not None + ): + company.token_cap = token_cap company.save() if serialize: - return BusinessHostSerializer(company) + return BusinessHostSerializer(company, context={'token_cap_enabled': company.token_cap_enabled}) return company def delete(self, request: Request): @@ -191,6 +191,7 @@ class BusinessAccountDataSerializer(serializers.Serializer): class BusinessHostUpdateSerializer(serializers.Serializer): token_cap_emails = serializers.ListField(child=serializers.EmailField(), required=False) token_cap_enabled = serializers.BooleanField(required=False) + token_cap = serializers.DecimalField(max_digits=15, decimal_places=2, required=False) class DeletedAccountDataSerializer(serializers.Serializer): @@ -256,12 +257,21 @@ class BusinessHostSerializer(serializers.Serializer): worker_amount = serializers.SerializerMethodField() is_ip_whitelist_enabled = serializers.BooleanField(read_only=True, source='ip_whitelist.is_enabled') is_log_history_enabled = serializers.BooleanField(read_only=True) + token_cap = serializers.DecimalField(max_digits=15, decimal_places=2) token_cap_emails = serializers.ListField(child=serializers.EmailField()) token_cap_enabled = serializers.BooleanField() def get_worker_amount(self, obj): return self.context.get('worker_amount') + def get_fields(self): + fields = super().get_fields() + + if not self.context.get('token_cap_enabled', False): + fields.pop('token_cap') + + return fields + class AddModelsSerializer(serializers.Serializer): models = serializers.ListField(child=serializers.CharField())