-- Chatwoot enterprise agent capacity policy links. ALTER TABLE account_users ADD COLUMN IF NOT EXISTS agent_capacity_policy_id INTEGER; CREATE INDEX IF NOT EXISTS idx_account_users_agent_capacity_policy_id ON account_users(agent_capacity_policy_id) WHERE deleted_at IS NULL; CREATE TABLE IF NOT EXISTS agent_capacity_policies ( id SERIAL PRIMARY KEY, account_id INTEGER NOT NULL, name VARCHAR(255) NOT NULL, description TEXT, assignment_logic VARCHAR(50) DEFAULT 'round_robin', exclusion_rules JSONB NOT NULL DEFAULT '{}', created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() ); CREATE INDEX IF NOT EXISTS idx_agent_capacity_policies_account_id ON agent_capacity_policies(account_id); CREATE TABLE IF NOT EXISTS inbox_capacity_limits ( id SERIAL PRIMARY KEY, agent_capacity_policy_id INTEGER NOT NULL, inbox_id INTEGER NOT NULL, conversation_limit INTEGER NOT NULL CHECK (conversation_limit >= 0), created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), UNIQUE(agent_capacity_policy_id, inbox_id) ); CREATE INDEX IF NOT EXISTS idx_inbox_capacity_limits_policy_id ON inbox_capacity_limits(agent_capacity_policy_id); CREATE INDEX IF NOT EXISTS idx_inbox_capacity_limits_inbox_id ON inbox_capacity_limits(inbox_id);