
    jiW                         d Z ddlmZ ddlmZ ddlmZmZ dddddddd	ddddd	dddd
ddddd
ddddd
ddddd
dddddddddddddd	Zdede	de
eef   fdZy
)u   
Лимиты тарифа по плану подписки.
Используется для проверки: CRM-интеграции, шаблоны, срок хранения истории.
    )Any)Session)SubscriptionPlan   T	crm_counttemplates_limithistory_dayscustom_bot_allowed      N      Z   im        )	freez
start litestartbasicprobusiness
enterprisestarterprofessionaldb	tenant_idreturnc                    | j                  t              j                  t        j                  |k(  t        j                  dk(        j                         }|r|j                  sdddddS |j                  }|j                  xs i }|j                  xs dj                         j                         }|j                  d      }|+t        j                         D ]  \  }}||v s|d   } n |d}|j                  d	      }	|	/d
}
t        j                         D ]  \  }}||v s|d   }	d}
 n |
sd}	|	dk(  rd}	|j                  d      }|+t        j                         D ]  \  }}||v s|d   } n |d}|j                  d      }|8t        j                         D ]  \  }}||v s|j                  dd      } n |d}|t        |      nd|	t        |	      ndt        |      t        |      dS )u  
    Возвращает лимиты тарифа для тенанта: crm_count, templates_limit, history_days.
    - crm_count: макс. число CRM-интеграций (-1 = без лимита)
    - templates_limit: макс. шаблонов (None = без лимита)
    - history_days: сколько дней хранить/показывать историю уведомлений
    - custom_bot_allowed: разрешён ли кастомный Telegram-бот (brand bot / MTProto)
    activer   r   Tr    r	   N	templatesFr
   r   	unlimitedr   r   r   )queryr   filterr   statusfirstplanfeaturesnamestriplowerget_DEFAULT_LIMITSitemsintbool)r   r   subscriptionr)   r*   r+   r	   keylimitsr
   name_matchedr   r   s                2/var/www/notifications/app/services/plan_limits.pyget_plan_limitsr8      s8    		""i/8+

 
  |001a_cddD}}"HIIO""$**,D[)I*002 	KCd{";/		 Ill;/O*002 	KCd{"():";#		
 O+%<</L*002 	KCd{%n5	 L!&:;!*002 	KCd{%+ZZ0Dd%K"	 %!% (1'<S^!3B3N3/TXL)"#56	     )__doc__typingr   sqlalchemy.ormr   app.db.modelsr   r   r/   r1   dictstrr8    r9   r7   <module>rA      s     " , 1\`a !abfgA]abraeftR_cd T2eij "tShlm1b`de"#Bfjk
D DC DDcN Dr9   