]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/sql/Postgres/002.schema.config.sql
big changes... big
[Evergreen.git] / Open-ILS / src / sql / Postgres / 002.schema.config.sql
1 DROP SCHEMA config CASCADE;
2
3 BEGIN;
4 CREATE SCHEMA config;
5
6 CREATE TABLE config.bib_source (
7         id      SERIAL  PRIMARY KEY,
8         quality INT     CHECK ( quality BETWEEN 0 AND 100 ),
9         source  TEXT    NOT NULL UNIQUE
10 );
11
12 INSERT INTO config.bib_source (quality, source) VALUES (90, 'OcLC');
13 INSERT INTO config.bib_source (quality, source) VALUES (10, 'System Local');
14
15 CREATE TABLE config.standing (
16         id              SERIAL  PRIMARY KEY,
17         value           TEXT    NOT NULL UNIQUE
18 );
19
20 INSERT INTO config.standing (value) VALUES ('Good');
21 INSERT INTO config.standing (value) VALUES ('Barred');
22 INSERT INTO config.standing (value) VALUES ('Blocked');
23
24 CREATE TABLE config.metabib_field (
25         id              SERIAL  PRIMARY KEY,
26         field_class     TEXT    NOT NULL CHECK (lower(field_class) IN ('title','author','subject','keyword')),
27         name            TEXT    NOT NULL UNIQUE,
28         xpath           TEXT    NOT NULL
29 );
30
31 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'title', 'abbreviated', $$//mods:mods/mods:titleInfo[mods:title and (@type='abreviated')]$$ );
32 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'title', 'translated', $$//mods:mods/mods:titleInfo[mods:title and (@type='translated')]$$ );
33 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'title', 'uniform', $$//mods:mods/mods:titleInfo[mods:title and (@type='uniform')]$$ );
34 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'title', 'proper', $$//mods:mods/mods:titleInfo[mods:title and not (@type)]$$ );
35 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'author', 'corporate', $$//mods:mods/mods:name[@type='corporate']/mods:namePart[../mods:role/mods:text[text()='creator']]$$ );
36 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'author', 'personal', $$//mods:mods/mods:name[@type='personal']/mods:namePart[../mods:role/mods:text[text()='creator']]$$ );
37 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'author', 'conference', $$//mods:mods/mods:name[@type='conference']/mods:namePart[../mods:role/mods:text[text()='creator']]$$ );
38 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'author', 'other', $$//mods:mods/mods:name[@type='personal']/mods:namePart[not(../mods:role)]$$ );
39 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'subject', 'geographic', $$//mods:mods/mods:subject/mods:geographic$$ );
40 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'subject', 'name', $$//mods:mods/mods:subject/mods:name$$ );
41 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'subject', 'temporal', $$//mods:mods/mods:subject/mods:temporal$$ );
42 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'subject', 'topic', $$//mods:mods/mods:subject/mods:topic$$ );
43 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'subject', 'genre', $$//mods:mods/mods:genre$$ );
44 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'keyword', 'keyword', $$//mods:mods/*[not(local-name()='originInfo')]$$ ); -- /* to fool vim */
45
46 CREATE TABLE config.identification_type (
47         id              SERIAL  PRIMARY KEY,
48         name            TEXT    NOT NULL UNIQUE
49 );
50
51 INSERT INTO config.identification_type ( name ) VALUES ( 'Drivers Licence' );
52 INSERT INTO config.identification_type ( name ) VALUES ( 'Voter Card' );
53 INSERT INTO config.identification_type ( name ) VALUES ( 'Two Utility Bills' );
54 INSERT INTO config.identification_type ( name ) VALUES ( 'State ID' );
55 INSERT INTO config.identification_type ( name ) VALUES ( 'SSN' );
56
57 CREATE TABLE config.rule_circ_duration (
58         id              SERIAL          PRIMARY KEY,
59         name            TEXT            NOT NULL UNIQUE CHECK ( name ~ '^\\w+$' ),
60         extended        INTERVAL        NOT NULL,
61         normal          INTERVAL        NOT NULL,
62         short           INTERVAL        NOT NULL,
63         max_renewals    INT             NOT NULL
64 );
65
66 CREATE TABLE config.rule_max_fine (
67         id      SERIAL          PRIMARY KEY,
68         name    TEXT            NOT NULL UNIQUE CHECK ( name ~ '^\\w+$' ),
69         amount  NUMERIC(6,2)    NOT NULL
70 );
71
72 CREATE TABLE config.rule_recuring_fine (
73         id      SERIAL          PRIMARY KEY,
74         name    TEXT            NOT NULL UNIQUE CHECK ( name ~ '^\\w+$' ),
75         high    NUMERIC(6,2)    NOT NULL,
76         normal  NUMERIC(6,2)    NOT NULL,
77         low     NUMERIC(6,2)    NOT NULL
78 );
79
80 CREATE TABLE config.rule_age_hold_protect (
81         id      SERIAL          PRIMARY KEY,
82         name    TEXT            NOT NULL UNIQUE CHECK ( name ~ '^\\w+$' ),
83         age     INTERVAL        NOT NULL,
84         radius  INT             NOT NULL
85 );
86
87 CREATE TABLE config.copy_status (
88         id      SERIAL          PRIMARY KEY,
89         name    TEXT            NOT NULL UNIQUE
90 );
91 INSERT INTO config.copy_status (id,name) VALUES (0,'Available');
92 INSERT INTO config.copy_status (name) VALUES ('Checked out');
93 INSERT INTO config.copy_status (name) VALUES ('Bindery');
94 INSERT INTO config.copy_status (name) VALUES ('Lost');
95 INSERT INTO config.copy_status (name) VALUES ('Missing');
96 INSERT INTO config.copy_status (name) VALUES ('In process');
97 INSERT INTO config.copy_status (name) VALUES ('In transit');
98 INSERT INTO config.copy_status (name) VALUES ('Reshelving');
99 INSERT INTO config.copy_status (name) VALUES ('On holds shelf');
100 INSERT INTO config.copy_status (name) VALUES ('On order');
101 INSERT INTO config.copy_status (name) VALUES ('ILL');
102 INSERT INTO config.copy_status (name) VALUES ('Cataloging');
103 INSERT INTO config.copy_status (name) VALUES ('Reserves');
104 INSERT INTO config.copy_status (name) VALUES ('Discard/Weed');
105
106 CREATE TABLE config.net_access_level (
107         id      SERIAL          PRIMARY KEY,
108         name    TEXT            NOT NULL UNIQUE
109 );
110 INSERT INTO config.net_access_level (name) VALUES ('Restricted');
111 INSERT INTO config.net_access_level (name) VALUES ('Full');
112 INSERT INTO config.net_access_level (name) VALUES ('None');
113
114 COMMIT;