pricing model

This commit is contained in:
msyu
2025-06-14 16:14:03 +03:00
parent 13cc175dc3
commit b4aa34d24a
8 changed files with 178 additions and 10 deletions
+28
View File
@@ -14,6 +14,8 @@ create table measure (
,dt_created timestamp NOT NULL default CURRENT_TIMESTAMP -- äàòà çàïèñè
,dt_updated timestamp NOT NULL default CURRENT_TIMESTAMP -- äàòà ïîñëåäíåé ìîäèôèêàöèè
);
ALTER TABLE measure OWNER TO dbo;
insert into measure (measure, measure_short) values ('øòóêà','øò.');
insert into measure (measure, measure_short) values ('êèëîâàòò','êÂò');
insert into measure (measure, measure_short) values ('êèëîâàòò-÷àñ','êÂò-÷');
@@ -22,6 +24,28 @@ insert into measure (measure, measure_short) values ('
insert into measure (measure, measure_short) values ('10000 øò.','10òûñ.øò.');
drop table if exists pricing_model;
create table pricing_model (
pricing_model_id int PRIMARY KEY NOT NULL
,pricing_model varchar(255) NOT NULL
,pricing_model_short varchar(255) NOT NULL -- ýòî íå êîä, à êîðîòêîå íàçâàíèå
,pricing_model_code char(1) NOT NULL -- ñóôôèêñ
,descr text NULL
,creator_id int NULL
,updater_id int NULL
,dt_created timestamp NOT NULL default CURRENT_TIMESTAMP -- äàòà çàïèñè
,dt_updated timestamp NOT NULL default CURRENT_TIMESTAMP -- äàòà ïîñëåäíåé ìîäèôèêàöèè
);
insert into pricing_model (pricing_model_id, pricing_model, pricing_model_short, pricing_model_code, descr)
values (1, 'Îäíîêðàòíàÿ', 'install', 'i', 'Îäíîêðàòíàÿ èëè èíñòàëëÿöèîííàÿ óñëóãà');
insert into pricing_model (pricing_model_id, pricing_model, pricing_model_short, pricing_model_code, descr)
values (2, 'Ôèêñèðîâàííàÿ', 'fix', 'f', 'Ôèêñèðîâàííàÿ ðåãóëÿðíàÿ îïëàòà çà îïðåäåëåííûé îáúåì (êâîòó), ÷àñòî allocation èëè reservation. Êàê ïðàâèëî, åæåìåñÿ÷íûé ïëàòåæ, èíîãäà ïîêâàðòàëüíûé, âîçìîæíû è äðóãèå. Allocation íå ýêâèâàëåíòíî Fix.');
insert into pricing_model (pricing_model_id, pricing_model, pricing_model_short, pricing_model_code, descr)
values (3, 'Ïî ïîòðåáëåíèþ', 'metered', 'm','Îïëàòà ïî ôàêòó ïîòðåáëåíèÿ, metered, PAYG');
ALTER TABLE pricing_model OWNER TO dbo;
drop table if exists contragent CASCADE;
create table contragent (
contragent_id int GENERATED BY DEFAULT AS IDENTITY NOT NULL PRIMARY KEY
@@ -126,6 +150,7 @@ create table specification_item (
specification_item_uid uuid NOT NULL PRIMARY KEY DEFAULT gen_random_uuid() -- êëþ÷ ñòðîêè
,specification_id int NOT NULL --FK
,svc_id int NOT NULL --immutable
,pricing_model_id int NOT NULL --immutable
,creator_id int NULL
,updater_id int NULL
@@ -133,6 +158,7 @@ create table specification_item (
,dt_updated timestamp NOT NULL default CURRENT_TIMESTAMP -- äàòà ïîñëåäíåé ìîäèôèêàöèè
);
ALTER TABLE specification_item OWNER TO dbo;
--ALTER TABLE specification_item ADD pricing_model_id int NOT NULL default 2;
-- âåðñèÿ ñòðîêè ñïåöèôèêàöèè (âåðñèîííîñòü áåðåòñÿ îò ñïåêè)
drop table if exists specification_item_version CASCADE;
@@ -151,8 +177,10 @@ create table specification_item_version (
,dt_created timestamp NOT NULL default CURRENT_TIMESTAMP -- äàòà çàïèñè
,dt_updated timestamp NOT NULL default CURRENT_TIMESTAMP -- äàòà ïîñëåäíåé ìîäèôèêàöèè
,CONSTRAINT PK_specification_item_version PRIMARY KEY (specification_item_uid, agreement_version)
,CONSTRAINT CK_specification_item_version_dt CHECK NOT(dt_from IS NULL AND dt_to IS NULL)
);
ALTER TABLE specification_item OWNER TO dbo;
-- ALTER TABLE specification_item_version ADD CONSTRAINT CK_specification_item_version_dt CHECK(NOT(dt_from IS NULL AND dt_to IS NULL));
-- ïàðàìåòð (êîìïîíåíò) ñîáñòâåííîé âåðñèîííîñòè íå èìååò, ïðè ñîçäàíèè íîâîé âåðñèè ñòðîêè êëîíèðóåòñÿ
drop table if exists specification_item_param CASCADE;