</permacrud>
</class>
+ <class id="bpt" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="biblio::peer_type" oils_persist:tablename="biblio.peer_type" reporter:label="Bibliographic Record Peer Type" oils_persist:field_safe="true">
+ <fields oils_persist:primary="id" oils_persist:sequence="biblio.peer_type_id_seq">
+ <field reporter:label="ID" name="id" reporter:selector="name" reporter:datatype="id"/>
+ <field reporter:label="Name" name="name" reporter:datatype="text" oils_persist:i18n="true"/>
+ </fields>
+ <links/>
+ <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+ <actions>
+ <create permission="CREATE_BIB_PTYPE" global_required="true"/>
+ <retrieve/>
+ <update permission="UPDATE_BIB_PTYPE" global_required="true"/>
+ <delete permission="DELETE_BIB_PTYPE" global_required="true"/>
+ </actions>
+ </permacrud>
+ </class>
+
+ <class id="bpbcm" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="biblio::peer_bib_copy_map" oils_persist:tablename="biblio.peer_bib_copy_map" reporter:label="Bibliographic Record Peer Copy Map">
+ <fields oils_persist:primary="id" oils_persist:sequence="biblio.peer_bib_copy_map_id_seq">
+ <field reporter:label="ID" name="id" reporter:selector="name" reporter:datatype="id"/>
+ <field reporter:label="Peer Type" name="peer_type" reporter:datatype="link"/>
+ <field reporter:label="Peer Record" name="peer_record" reporter:datatype="link"/>
+ <field reporter:label="Target Copy" name="target_copy" reporter:datatype="link"/>
+ </fields>
+ <links>
+ <link field="peer_type" reltype="has_a" key="id" map="" class="bpt"/>
+ <link field="peer_record" reltype="has_a" key="id" map="" class="bre"/>
+ <link field="target_copy" reltype="has_a" key="id" map="" class="acp"/>
+ </links>
+ <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+ <actions>
+ <create permission="UPDATE_COPY">
+ <context link="target_copy" field="circ_lib"/>
+ </create>
+ <retrieve/>
+ <update permission="UPDATE_COPY">
+ <context link="target_copy" field="circ_lib"/>
+ </update>
+ <delete permission="UPDATE_COPY">
+ <context link="target_copy" field="circ_lib"/>
+ </delete>
+ </actions>
+ </permacrud>
+ </class>
+
<class id="cbrebt" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="container::biblio_record_entry_bucket_type" oils_persist:tablename="container.biblio_record_entry_bucket_type" reporter:label="Bibliographic Record Bucket Type" oils_persist:field_safe="true">
<fields oils_persist:primary="code">
<field reporter:label="Code" name="code" reporter:selector="name" reporter:datatype="id"/>
editor create_date edit_date pub/ );
#-------------------------------------------------------------------------------
+#-------------------------------------------------------------------------------
+package biblio::peer_type;
+use base qw/biblio/;
+
+biblio::peer_type->table( 'biblio_peer_type' );
+biblio::peer_type->columns( Essential => qw/id name/ );
+#-------------------------------------------------------------------------------
+
+#-------------------------------------------------------------------------------
+package biblio::peer_record_copy_map;
+use base qw/biblio/;
+
+biblio::peer_record_copy_map->table( 'biblio_peer_record_copy_map' );
+biblio::peer_record_copy_map->columns( Essential => qw/id peer_type peer_record target_copy/ );
+#-------------------------------------------------------------------------------
+
1;
{
#-------------------------------------------------------------------------------
+ package biblio::peer_record_copy_map;
+
+ biblio::peer_record_copy_map->table( 'biblio.peer_record_copy_map' );
+ biblio::peer_record_copy_map->sequence( 'biblio.peer_record_copy_map_id_seq' );
+
+ #-------------------------------------------------------------------------------
+ package biblio::peer_type;
+
+ biblio::peer_type->table( 'biblio.peer_type' );
+ biblio::peer_type->sequence( 'biblio.peer_type_id_seq' );
+
+ #-------------------------------------------------------------------------------
package container::user_bucket;
container::user_bucket->table( 'container.user_bucket' );
CREATE INDEX biblio_record_note_creator_idx ON biblio.record_note ( creator );
CREATE INDEX biblio_record_note_editor_idx ON biblio.record_note ( editor );
+CREATE TABLE biblio.peer_type (
+ id SERIAL PRIMARY KEY,
+ name TEXT NOT NULL UNIQUE -- i18n
+);
+
+CREATE TABLE biblio.peer_bib_copy_map (
+ id SERIAL PRIMARY KEY,
+ peer_type INT NOT NULL REFERENCES biblio.peer_type (id),
+ peer_record BIGINT NOT NULL REFERENCES biblio.record_entry (id),
+ target_copy BIGINT NOT NULL -- can't use fkey because of acp subtables
+);
+
COMMIT;
(3, 1, oils_i18n_gettext(3, 'Project Gutenberg', 'cbs', 'source'), TRUE);
SELECT SETVAL('config.bib_source_id_seq'::TEXT, 100);
+INSERT INTO biblio.peer_type (id,name) VALUES
+ (1,oils_i18n_gettext(1,'Bound Volume','bpt','name')),
+ (2,oils_i18n_gettext(2,'Bilingual','bpt','name')),
+ (3,oils_i18n_gettext(3,'Back-to-back','bpt','name')),
+ (4,oils_i18n_gettext(4,'Set','bpt','name')),
+ (5,oils_i18n_gettext(5,'e-Reader Preload','bpt','name'));
+SELECT SETVAL('biblio.peer_type_id_seq'::TEXT, 100);
+
INSERT INTO config.standing (id, value) VALUES (1, oils_i18n_gettext(1, 'Good', 'cst', 'value'));
INSERT INTO config.standing (id, value) VALUES (2, oils_i18n_gettext(2, 'Barred', 'cst', 'value'));
SELECT SETVAL('config.standing_id_seq'::TEXT, 100);