]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/sql/Postgres/002.schema.config.sql
a8a04885a9cd5c27154ebdfd86828d260f956159
[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 COMMIT;