]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/sql/Postgres/002.schema.config.sql
35c7f80e2ea6dcb0d9ac142af50b5bb2984f3d48
[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.metabib_field (
16         id              SERIAL  PRIMARY KEY,
17         field_class     TEXT    NOT NULL CHECK (lower(field_class) IN ('title','author','subject','keyword')),
18         name            TEXT    NOT NULL UNIQUE,
19         xpath           TEXT    NOT NULL
20 );
21
22 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'title', 'abbreviated', $$//mods:mods/mods:titleInfo[mods:title and (@type='abreviated')]$$ );
23 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'title', 'translated', $$//mods:mods/mods:titleInfo[mods:title and (@type='translated')]$$ );
24 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'title', 'uniform', $$//mods:mods/mods:titleInfo[mods:title and (@type='uniform')]$$ );
25 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'title', 'proper', $$//mods:mods/mods:titleInfo[mods:title and not (@type)]$$ );
26 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']]$$ );
27 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']]$$ );
28 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']]$$ );
29 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'author', 'other', $$//mods:mods/mods:name[@type='personal']/mods:namePart[not(../mods:role)]$$ );
30 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'subject', 'geographic', $$//mods:mods/mods:subject/mods:geographic$$ );
31 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'subject', 'name', $$//mods:mods/mods:subject/mods:name$$ );
32 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'subject', 'temporal', $$//mods:mods/mods:subject/mods:temporal$$ );
33 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'subject', 'topic', $$//mods:mods/mods:subject/mods:topic$$ );
34 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'subject', 'genre', $$//mods:mods/mods:genre$$ );
35 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'keyword', 'keyword', $$//mods:mods/*[not(local-name()='originInfo')]$$ ); -- /* to fool vim */
36
37 CREATE TABLE config.identification_type (
38         id              SERIAL  PRIMARY KEY,
39         name            TEXT    NOT NULL UNIQUE
40 );
41
42 INSERT INTO config.identification_type ( name ) VALUES ( 'Drivers Licence' );
43 INSERT INTO config.identification_type ( name ) VALUES ( 'Voter Card' );
44 INSERT INTO config.identification_type ( name ) VALUES ( 'Two Utility Bills' );
45 INSERT INTO config.identification_type ( name ) VALUES ( 'State ID' );
46 INSERT INTO config.identification_type ( name ) VALUES ( 'SSN' );
47
48 CREATE TABLE config.rule_circ_duration (
49         id                      SERIAL          PRIMARY KEY,
50         name                    TEXT            NOT NULL UNIQUE CHECK ( name ~ '^\\w+$' ),
51         extended_duration       INTERVAL        NOT NULL,
52         normal_duration         INTERVAL        NOT NULL,
53         short_duration          INTERVAL        NOT NULL,
54         max_renewals            INT             NOT NULL
55 );
56
57 CREATE TABLE config.rule_max_fine (
58         id      SERIAL          PRIMARY KEY,
59         name    TEXT            NOT NULL UNIQUE CHECK ( name ~ '^\\w+$' ),
60         amount  NUMERIC(6,2)    NOT NULL
61 );
62
63 CREATE TABLE config.rule_recuring_fine (
64         id              SERIAL          PRIMARY KEY,
65         name            TEXT            NOT NULL UNIQUE CHECK ( name ~ '^\\w+$' ),
66         high_amount     NUMERIC(6,2)    NOT NULL,
67         normal_amount   NUMERIC(6,2)    NOT NULL,
68         low_amount      NUMERIC(6,2)    NOT NULL
69 );
70
71 CREATE TABLE config.rule_age_hold_protect (
72         id      SERIAL          PRIMARY KEY,
73         name    TEXT            NOT NULL UNIQUE CHECK ( name ~ '^\\w+$' ),
74         age     INTERVAL        NOT NULL,
75         radius  INT             NOT NULL
76 );
77
78 COMMIT;