## Linear reference: https://linear.app/chatwoot/issue/CW-4649/re-imagine-assignments ## Description This PR introduces the foundation for Assignment V2 system by implementing agent_capacity and their association with inboxes and users. ## Type of change - [ ] New feature (non-breaking change which adds functionality) ## How Has This Been Tested? Test Coverage: - Controller specs for assignment policies CRUD operations - Enterprise-specific specs for balanced assignment order - Model specs for community/enterprise separation ## Checklist: - [ ] My code follows the style guidelines of this project - [ ] I have performed a self-review of my code - [ ] I have commented on my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [ ] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] New and existing unit tests pass locally with my changes - [ ] Any dependent changes have been merged and published in downstream modules --------- Co-authored-by: Pranav <pranav@chatwoot.com>
25 lines
965 B
Ruby
25 lines
965 B
Ruby
# == Schema Information
|
|
#
|
|
# Table name: inbox_capacity_limits
|
|
#
|
|
# id :bigint not null, primary key
|
|
# conversation_limit :integer not null
|
|
# created_at :datetime not null
|
|
# updated_at :datetime not null
|
|
# agent_capacity_policy_id :bigint not null
|
|
# inbox_id :bigint not null
|
|
#
|
|
# Indexes
|
|
#
|
|
# idx_on_agent_capacity_policy_id_inbox_id_71c7ec4caf (agent_capacity_policy_id,inbox_id) UNIQUE
|
|
# index_inbox_capacity_limits_on_agent_capacity_policy_id (agent_capacity_policy_id)
|
|
# index_inbox_capacity_limits_on_inbox_id (inbox_id)
|
|
#
|
|
class InboxCapacityLimit < ApplicationRecord
|
|
belongs_to :agent_capacity_policy
|
|
belongs_to :inbox
|
|
|
|
validates :conversation_limit, presence: true, numericality: { greater_than: 0, only_integer: true }
|
|
validates :inbox_id, uniqueness: { scope: :agent_capacity_policy_id }
|
|
end
|