5 CREATE TABLE config.circ_matrix_weights (
7 name TEXT NOT NULL UNIQUE,
8 org_unit NUMERIC(6,2) NOT NULL,
9 grp NUMERIC(6,2) NOT NULL,
10 circ_modifier NUMERIC(6,2) NOT NULL,
11 copy_location NUMERIC(6,2) NOT NULL,
12 marc_type NUMERIC(6,2) NOT NULL,
13 marc_form NUMERIC(6,2) NOT NULL,
14 marc_bib_level NUMERIC(6,2) NOT NULL,
15 marc_vr_format NUMERIC(6,2) NOT NULL,
16 copy_circ_lib NUMERIC(6,2) NOT NULL,
17 copy_owning_lib NUMERIC(6,2) NOT NULL,
18 user_home_ou NUMERIC(6,2) NOT NULL,
19 ref_flag NUMERIC(6,2) NOT NULL,
20 juvenile_flag NUMERIC(6,2) NOT NULL,
21 is_renewal NUMERIC(6,2) NOT NULL,
22 usr_age_lower_bound NUMERIC(6,2) NOT NULL,
23 usr_age_upper_bound NUMERIC(6,2) NOT NULL,
24 item_age NUMERIC(6,2) NOT NULL
27 -- Hold Matrix Weights
28 CREATE TABLE config.hold_matrix_weights (
29 id SERIAL PRIMARY KEY,
30 name TEXT NOT NULL UNIQUE,
31 user_home_ou NUMERIC(6,2) NOT NULL,
32 request_ou NUMERIC(6,2) NOT NULL,
33 pickup_ou NUMERIC(6,2) NOT NULL,
34 item_owning_ou NUMERIC(6,2) NOT NULL,
35 item_circ_ou NUMERIC(6,2) NOT NULL,
36 usr_grp NUMERIC(6,2) NOT NULL,
37 requestor_grp NUMERIC(6,2) NOT NULL,
38 circ_modifier NUMERIC(6,2) NOT NULL,
39 marc_type NUMERIC(6,2) NOT NULL,
40 marc_form NUMERIC(6,2) NOT NULL,
41 marc_bib_level NUMERIC(6,2) NOT NULL,
42 marc_vr_format NUMERIC(6,2) NOT NULL,
43 juvenile_flag NUMERIC(6,2) NOT NULL,
44 ref_flag NUMERIC(6,2) NOT NULL,
45 item_age NUMERIC(6,2) NOT NULL
48 -- Linking between weights and org units
49 CREATE TABLE config.weight_assoc (
50 id SERIAL PRIMARY KEY,
52 org_unit INT NOT NULL REFERENCES actor.org_unit (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
53 circ_weights INT REFERENCES config.circ_matrix_weights (id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED,
54 hold_weights INT REFERENCES config.hold_matrix_weights (id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED
56 CREATE UNIQUE INDEX cwa_one_active_per_ou ON config.weight_assoc (org_unit) WHERE active;