87 lines
3.1 KiB
MySQL
87 lines
3.1 KiB
MySQL
|
|
alter table crm_opportunity
|
||
|
|
add column if not exists channel_expansion_id bigint;
|
||
|
|
|
||
|
|
create index if not exists idx_crm_opportunity_channel_expansion
|
||
|
|
on crm_opportunity(channel_expansion_id);
|
||
|
|
|
||
|
|
do $$
|
||
|
|
begin
|
||
|
|
if not exists (
|
||
|
|
select 1
|
||
|
|
from pg_constraint
|
||
|
|
where conname = 'fk_crm_opportunity_channel_expansion'
|
||
|
|
) then
|
||
|
|
alter table crm_opportunity
|
||
|
|
add constraint fk_crm_opportunity_channel_expansion
|
||
|
|
foreign key (channel_expansion_id) references crm_channel_expansion(id);
|
||
|
|
end if;
|
||
|
|
end $$;
|
||
|
|
|
||
|
|
alter table crm_channel_expansion
|
||
|
|
add column if not exists channel_code varchar(50),
|
||
|
|
add column if not exists office_address varchar(255),
|
||
|
|
add column if not exists channel_industry varchar(100),
|
||
|
|
add column if not exists contact_established_date date,
|
||
|
|
add column if not exists intent_level varchar(20),
|
||
|
|
add column if not exists has_desktop_exp boolean,
|
||
|
|
add column if not exists channel_attribute varchar(100),
|
||
|
|
add column if not exists internal_attribute varchar(100);
|
||
|
|
|
||
|
|
update crm_channel_expansion
|
||
|
|
set channel_industry = coalesce(channel_industry, industry)
|
||
|
|
where channel_industry is null and industry is not null;
|
||
|
|
|
||
|
|
update crm_channel_expansion
|
||
|
|
set intent_level = coalesce(intent_level, 'medium'),
|
||
|
|
has_desktop_exp = coalesce(has_desktop_exp, false);
|
||
|
|
|
||
|
|
alter table crm_channel_expansion
|
||
|
|
alter column intent_level set default 'medium',
|
||
|
|
alter column intent_level set not null,
|
||
|
|
alter column has_desktop_exp set default false,
|
||
|
|
alter column has_desktop_exp set not null;
|
||
|
|
|
||
|
|
do $$
|
||
|
|
begin
|
||
|
|
if not exists (
|
||
|
|
select 1
|
||
|
|
from pg_constraint
|
||
|
|
where conname = 'crm_channel_expansion_intent_level_check'
|
||
|
|
) then
|
||
|
|
alter table crm_channel_expansion
|
||
|
|
add constraint crm_channel_expansion_intent_level_check
|
||
|
|
check (intent_level in ('high', 'medium', 'low'));
|
||
|
|
end if;
|
||
|
|
end $$;
|
||
|
|
|
||
|
|
create table if not exists crm_channel_expansion_contact (
|
||
|
|
id bigint generated by default as identity primary key,
|
||
|
|
channel_expansion_id bigint not null,
|
||
|
|
contact_name varchar(50),
|
||
|
|
contact_mobile varchar(20),
|
||
|
|
contact_title varchar(100),
|
||
|
|
sort_order integer not null default 1,
|
||
|
|
created_at timestamptz not null default now(),
|
||
|
|
updated_at timestamptz not null default now(),
|
||
|
|
constraint fk_crm_channel_expansion_contact_channel
|
||
|
|
foreign key (channel_expansion_id) references crm_channel_expansion(id) on delete cascade
|
||
|
|
);
|
||
|
|
|
||
|
|
create index if not exists idx_crm_channel_expansion_contact_channel
|
||
|
|
on crm_channel_expansion_contact(channel_expansion_id);
|
||
|
|
|
||
|
|
insert into crm_channel_expansion_contact (channel_expansion_id, contact_name, contact_mobile, contact_title, sort_order, created_at, updated_at)
|
||
|
|
select c.id, c.contact_name, c.contact_mobile, c.contact_title, 1, now(), now()
|
||
|
|
from crm_channel_expansion c
|
||
|
|
where (coalesce(btrim(c.contact_name), '') <> '' or coalesce(btrim(c.contact_mobile), '') <> '' or coalesce(btrim(c.contact_title), '') <> '')
|
||
|
|
and not exists (
|
||
|
|
select 1
|
||
|
|
from crm_channel_expansion_contact cc
|
||
|
|
where cc.channel_expansion_id = c.id
|
||
|
|
);
|
||
|
|
|
||
|
|
alter table crm_expansion_followup
|
||
|
|
add column if not exists visit_start_time timestamptz,
|
||
|
|
add column if not exists evaluation_content text,
|
||
|
|
add column if not exists next_plan text;
|