Class: VerseLinkRecord
Defined in: Data/Models/Common/VerseLinkRecord.ts:36
A row of the unified verse_link table (Module Format v2, WS-3).
CREATE TABLE verse_link (
link_id INTEGER PRIMARY KEY AUTOINCREMENT,
source_type TEXT NOT NULL,
source_id INTEGER NOT NULL,
verse_id_start INTEGER NOT NULL,
verse_id_end INTEGER, -- NULL = single verse
link_type TEXT NOT NULL DEFAULT 'reference',
sort_order INTEGER NOT NULL DEFAULT 0,
context TEXT,
metadata TEXT
);
This one table replaces the six legacy content→verse shapes:
scripture_reference (book), JSON scripture_verses (devotional), JSON
example_verses (dictionary), topic_verses (topical, with reversed column
names), content_verse_link / note_verse_link / journal_verse_link (user).
It is identical in every module database and in the user database.
Range convention: see the single normative statement in Core/Types.ts
(search for "RANGE CONVENTION"). Do not rely on verseIdEnd === undefined
being distinguishable from verseIdEnd === verseIdStart; use
VerseLinkRecord.effectiveEnd.
Named VerseLinkRecord rather than VerseLink because the legacy
note-scoped VerseLink interface (Models/User/UserNote) is still part of
the published @bible/core surface and is consumed by @bible/desktop.
Retiring that name is a Pass-2 follow-up.
Constructors
Constructor
new VerseLinkRecord(
data):VerseLinkRecord
Defined in: Data/Models/Common/VerseLinkRecord.ts:50
Parameters
data
context?
string
linkId?
number
linkType?
"cross_reference" | "reference" | "annotation" | "primary_passage"
metadata?
sortOrder?
number
sourceId
number
sourceType
"journal" | "prayer" | "verse" | "note" | "dictionary_entry" | "book_section" | "commentary_entry" | "devotional_entry" | "topic" | "cross_reference_group" | "entity_facet"
verseIdEnd?
number
verseIdStart
number
Returns
VerseLinkRecord
Properties
context?
optionalcontext?:string
Defined in: Data/Models/Common/VerseLinkRecord.ts:47
Surrounding text/anchor phrase where the reference appears.
linkId?
optionallinkId?:number
Defined in: Data/Models/Common/VerseLinkRecord.ts:37
linkType
linkType:
"cross_reference"|"reference"|"annotation"|"primary_passage"
Defined in: Data/Models/Common/VerseLinkRecord.ts:44
metadata?
optionalmetadata?:Metadata
Defined in: Data/Models/Common/VerseLinkRecord.ts:48
sortOrder
sortOrder:
number
Defined in: Data/Models/Common/VerseLinkRecord.ts:45
sourceId
sourceId:
number
Defined in: Data/Models/Common/VerseLinkRecord.ts:39
sourceType
sourceType:
"journal"|"prayer"|"verse"|"note"|"dictionary_entry"|"book_section"|"commentary_entry"|"devotional_entry"|"topic"|"cross_reference_group"|"entity_facet"
Defined in: Data/Models/Common/VerseLinkRecord.ts:38
verseIdEnd?
optionalverseIdEnd?:number
Defined in: Data/Models/Common/VerseLinkRecord.ts:43
Inclusive end of the linked range; undefined for a single verse.
verseIdStart
verseIdStart:
number
Defined in: Data/Models/Common/VerseLinkRecord.ts:41
Inclusive start of the linked verse range.
Methods
containsVerse()
containsVerse(
verseId):boolean
Defined in: Data/Models/Common/VerseLinkRecord.ts:93
True when verseId falls inside the inclusive range.
Parameters
verseId
number
Returns
boolean
effectiveEnd()
effectiveEnd():
number
Defined in: Data/Models/Common/VerseLinkRecord.ts:83
Inclusive end of the range, defaulting to the start for single verses.
Returns
number
isRange()
isRange():
boolean
Defined in: Data/Models/Common/VerseLinkRecord.ts:78
True when the link spans more than one verse.
Returns
boolean
isSingleVerse()
isSingleVerse():
boolean
Defined in: Data/Models/Common/VerseLinkRecord.ts:73
True when the link targets exactly one verse.
Returns
boolean
verseCount()
verseCount():
number
Defined in: Data/Models/Common/VerseLinkRecord.ts:88
Number of verse IDs spanned (1 for a single verse).
Returns
number