feat: add CRM lead assignment strategies

This commit is contained in:
Codex
2026-06-29 20:51:24 +08:00
parent f6710ace8b
commit ec23cd3b9b
10 changed files with 375 additions and 20 deletions

View File

@@ -0,0 +1,30 @@
alter table public.crm_config
add column if not exists assignment_mode text not null default 'none',
add column if not exists assignment_pool jsonb not null default '[]'::jsonb,
add column if not exists assignment_cursor integer not null default 0,
add column if not exists assignment_config jsonb not null default '{}'::jsonb;
do $$
begin
if not exists (
select 1
from pg_constraint
where conname = 'crm_config_assignment_mode_check'
) then
alter table public.crm_config
add constraint crm_config_assignment_mode_check
check (assignment_mode in ('none', 'direct', 'round_robin', 'referrer'));
end if;
end $$;
alter table public.referral_leads
add column if not exists assigned_to_user_id uuid references public.platform_users(id) on delete set null,
add column if not exists assignment_mode text,
add column if not exists assigned_at timestamptz,
add column if not exists assigned_by uuid references public.platform_users(id) on delete set null;
create index if not exists idx_referral_leads_assignee
on public.referral_leads(tenant_id, assigned_to_user_id, status, bound_at desc);
create index if not exists idx_crm_config_assignment_mode
on public.crm_config(tenant_id, assignment_mode);