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