module Memo::SourceRegistry

Extended Modules

Defined in:

memo/source_registry.cr

Instance Method Summary

Instance Method Detail

def create(db : DB::Database, source_type : String) : Int64 #

Create a source with no external ID (memo-managed)

Returns the internal (database) ID for the new source.


[View source]
def delete(db : DB::Database, source_type : String, external_id : ExternalId) : Bool #

Delete a source record and return whether it existed

Note: This only deletes the source registry entry. Caller is responsible for cleaning up related data (chunks, texts, etc.)


[View source]
def delete_by_id(db : DB::Database, internal_id : Int64) : Bool #

Delete source by internal ID


[View source]
def get_external(db : DB::Database, internal_id : Int64) : Tuple(String, ExternalId | Nil) | Nil #

Get external ID and source_type from internal ID

Returns tuple of (source_type, external_id) or nil if not found. external_id may be nil if source has no external ID (memo-managed).


[View source]
def get_internal(db : DB::Database, source_type : String, external_id : ExternalId) : Int64 | Nil #

Get internal ID for an external source

Returns nil if source doesn't exist (unlike resolve, doesn't create).


[View source]
def get_internal_any_type(db : DB::Database, external_id : ExternalId) : Int64 | Nil #

Get internal ID without source_type filter

Searches integer, text, and blob IDs. Returns first match. Use when source_type is unknown or when IDs are globally unique.


[View source]
def list(db : DB::Database, source_type : String, limit : Int32 = 100, offset : Int32 = 0) : Array(Tuple(Int64, ExternalId | Nil)) #

List all sources for a given type, ordered by external ID

For integer IDs, returns sorted by external_int (chronological). For text IDs, returns sorted by external_text (alphabetical). Sources without external IDs are included with nil external_id.


[View source]
def resolve(db : DB::Database, source_type : String, external_id : ExternalId) : Int64 #

Resolve external ID to internal ID, creating source record if needed

Returns the internal (database) ID for the given source.


[View source]