from internal.helpers import rds_query from product_packages.get_current import get_current_alliance_count, get_current_unique_fan_count from product_packages.helpers import check_quota_for_right def check_max_alliance_count(management_schema, current_package_id, **kw): return check_quota_for_right( current_package_id, 'max_alliance_count', get_current_alliance_count(management_schema, **kw) ) def check_max_unique_fan_count(management_schema, current_package_id, **kw): return check_quota_for_right( current_package_id, 'max_unique_fan_count', get_current_unique_fan_count(management_schema, **kw) ) def check_max_workspace_count(management_schema, current_package_id, **kw): for line in rds_query(f"SELECT count(*) FROM {management_schema}.workspace"): first_workspace_has_name = -1 for mgm in rds_query(f"SELECT key,val from {management_schema}.meta_data WHERE key = 'name'"): if mgm['val']: first_workspace_has_name = 0 return check_quota_for_right( current_package_id, 'max_workspace_count', line['count'] + first_workspace_has_name ) raise RuntimeError('Reality broke, welcome to the world of impossible.')