From b12151a491b128979825d4c97b55524e4cbca03f Mon Sep 17 00:00:00 2001 From: Shivam Mishra Date: Fri, 17 Jan 2025 13:29:57 +0530 Subject: [PATCH] feat: setup captain limits for account --- enterprise/app/models/enterprise/account.rb | 24 ++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/enterprise/app/models/enterprise/account.rb b/enterprise/app/models/enterprise/account.rb index bc07e1171..5dd088a4e 100644 --- a/enterprise/app/models/enterprise/account.rb +++ b/enterprise/app/models/enterprise/account.rb @@ -2,7 +2,11 @@ module Enterprise::Account def usage_limits { agents: agent_limits.to_i, - inboxes: get_limits(:inboxes).to_i + inboxes: get_limits(:inboxes).to_i, + captain: { + documents: get_captain_limit(:documents).to_i, + generated_responses: get_captain_limit(:responses).to_i + } } end @@ -13,8 +17,26 @@ module Enterprise::Account plan_features[plan_name] end + def captain_monthly_limit + plan_quota = InstallationConfig.find_by(name: 'CAPTAIN_CLOUD_PLAN_LIMITS')&.value + return 0 if plan_quota.blank? + + plan_quota = JSON.parse(plan_quota) if plan_quota.present? + plan_quota[plan_name.downcase] + end + private + def get_captain_limit(name) + captain_monthly_limit[name.to_s] + + # In case we need to calculate the limit based on the number of agents + # available_limit = captain_monthly_limit[name.to_s] + # number_of_agents = custom_attributes['subscribed_quantity'] || 1 + + # available_limit.to_i * number_of_agents.to_i + end + def plan_name custom_attributes['plan_name'] end