| 
					
				 | 
			
			
				@@ -3,6 +3,8 @@ from collections import defaultdict 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from json import JSONDecodeError 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from typing import Optional 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from psycopg2 import IntegrityError 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from core.entities.model_entities import DefaultModelEntity, DefaultModelProviderEntity 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from core.entities.provider_configuration import ProviderConfigurations, ProviderConfiguration, ProviderModelBundle 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from core.entities.provider_entities import CustomConfiguration, CustomProviderConfiguration, CustomModelConfiguration, \ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -380,17 +382,28 @@ class ProviderManager: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if quota.quota_type == ProviderQuotaType.TRIAL: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     # Init trial provider records if not exists 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if ProviderQuotaType.TRIAL not in provider_quota_to_provider_record_dict: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        provider_record = Provider( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            tenant_id=tenant_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            provider_name=provider_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            provider_type=ProviderType.SYSTEM.value, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            quota_type=ProviderQuotaType.TRIAL.value, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            quota_limit=quota.quota_limit, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            quota_used=0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            is_valid=True 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        db.session.add(provider_record) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        db.session.commit() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            provider_record = Provider( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                tenant_id=tenant_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                provider_name=provider_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                provider_type=ProviderType.SYSTEM.value, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                quota_type=ProviderQuotaType.TRIAL.value, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                quota_limit=quota.quota_limit, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                quota_used=0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                is_valid=True 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            db.session.add(provider_record) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            db.session.commit() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        except IntegrityError: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            db.session.rollback() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            provider_record = db.session.query(Provider) \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                .filter( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                Provider.tenant_id == tenant_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                Provider.provider_name == provider_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                Provider.provider_type == ProviderType.SYSTEM.value, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                Provider.quota_type == ProviderQuotaType.TRIAL.value, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                Provider.is_valid == True 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            ).first() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         provider_name_to_provider_records_dict[provider_name].append(provider_record) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |