Subscriptions endpoint RFC

From Koha Wiki
Jump to navigation Jump to search

This RFC should be the basis for writing an endpoint for CRUD operations on subscriptions following the guidelines.

Actions and routes

TODO

subscription object definition

DB schema Proposed API Katrin Details
biblionumber biblio_id biblio_id foreign key for biblio.biblionumber that this subscription is attached to
subscriptionid subscription_id subscription_id unique key for this subscription
librarian user_id user_id librarian's username from borrowers.userid
startdate start_date start_date ` date default NULL, -- start date for this subscription
aqbooksellerid ?? vendor_id int(11) default 0, -- foreign key for aqbooksellers.id to link to the vendor
cost ?? price int(11) default 0,
aqbudgetid ?? fund_id int(11) default 0,
weeklength ?? length_in_weeks int(11) default 0, -- subscription length in weeks (will not be filled in if monthlength or numberlength is set)
monthlength ?? length_in_months int(11) default 0, -- subscription length in weeks (will not be filled in if weeklength or numberlength is set)
numberlength ?? length_in_issues int(11) default 0, -- subscription length in weeks (will not be filled in if monthlength or weeklength is set)
periodicity ?? frequency_id integer default null, -- frequency type links to subscription_frequencies.id
countissuesperunit ?? issues_per_unit INTEGER NOT NULL DEFAULT 1,
notes ?? notes LONGTEXT, -- notes
status ?? status varchar(100) NOT NULL default , -- status of this subscription
lastvalue1 ?? last_value_1 int(11) default NULL,
innerloop1 ?? inner_counter_1 int(11) default 0,
lastvalue2 ?? last_value_2 int(11) default NULL,
innerloop2 ?? inner_counter_2 int(11) default 0,
lastvalue3 ?? last_value_3 int(11) default NULL,
innerloop3 ?? inner_counter_3 int(11) default 0,
firstacquidate ?? first_issue_date date default NULL, -- first issue received date
manualhistory ?? manual_history (BOOLEAN?) tinyint(1) NOT NULL default 0, -- yes or no to managing the history manually
irregularity ?? irregularities MEDIUMTEXT, -- any irregularities in the subscription
skip_serialseq ?? skip_issue_numbers BOOLEAN NOT NULL DEFAULT 0,
letter ?? notice_code varchar(20) default NULL,
numberpattern ?? numbering_pattern_id integer default null, -- the numbering pattern used links to subscription_numberpatterns.id
locale ?? locale VARCHAR(80) DEFAULT NULL, -- for foreign language subscriptions to display months, seasons, etc correctly
distributedto ?? UNUSED? MEDIUMTEXT,
internalnotes ?? internal_notes LONGTEXT,
callnumber ?? callnumber MEDIUMTEXT, -- default call number
location ?? location varchar(80) NULL default , -- default shelving location (items.location)
branchcode ?? library_id varchar(10) NOT NULL default , -- default branches (items.homebranch)
lastbranch ?? UNUSED? varchar(10),
serialsadditems ?? add_items tinyint(1) NOT NULL default '0', -- does receiving this serial create an item record
staffdisplaycount ?? staff_display_count VARCHAR(10) NULL, -- how many issues to show to the staff
opacdisplaycount ?? opac_display_count VARCHAR(10) NULL, -- how many issues to show to the public
graceperiod ?? grace_period int(11) NOT NULL default '0', -- grace period in days
enddate ?? end_date date default NULL, -- subscription end date
closed ?? ended / cancelled (BOOLEAN) INT(1) NOT NULL DEFAULT 0, -- yes / no if the subscription is closed
reneweddate ?? renewal_date date default NULL, -- date of last renewal for the subscription
itemtype ?? item_type VARCHAR( 10 ) NULL,
previousitemtype ?? previous_item_type VARCHAR( 10 ) NULL,
mana_id ?? mana_id int(11) NULL DEFAULT NULL,

Comment

Not sure if this is ready for voting yet. As there were a lot of blanks to fill, I've added a new column above with my suggestions.

  • user_id = We should really fix Bug 13542, but until we do, the API should still accept a valid patron_id hat is translated to a userid internally.
  • letter = We haven't done letter yet. Letter has a combined primary key of module, code and banchcode. Here the code is used, so I suggest: notice_code.

--Kfischer 18:26, 12 January 2020 (EST)

Comments