pub struct Paper {Show 21 fields
pub id: PaperId,
pub title: String,
pub authors: Vec<String>,
pub abstract: String,
pub full_text: Option<String>,
pub summary: Option<String>,
pub doi: Option<String>,
pub arxiv_id: Option<String>,
pub pubmed_id: Option<String>,
pub inspire_id: Option<String>,
pub openalex_id: Option<String>,
pub year: Option<i32>,
pub journal: Option<String>,
pub url: Option<String>,
pub source_urls: HashMap<String, String>,
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
pub local_path: Option<String>,
pub download_status: Option<DownloadStatus>,
pub last_attempt_at: Option<DateTime<Utc>>,
pub bibtex_key: Option<String>,
}Expand description
Canonical, deduplicated paper record.
A paper exists once regardless of how many searches found it.
Fields§
§id: PaperId§title: String§abstract: String§full_text: Option<String>§summary: Option<String>§doi: Option<String>§arxiv_id: Option<String>§pubmed_id: Option<String>§inspire_id: Option<String>§openalex_id: Option<String>§year: Option<i32>§journal: Option<String>§url: Option<String>§source_urls: HashMap<String, String>§created_at: DateTime<Utc>§updated_at: DateTime<Utc>§local_path: Option<String>Absolute path to the locally downloaded file (PDF/HTML), if any.
Populated by the download pipeline; None until first successful
download attempt. See #112.
download_status: Option<DownloadStatus>Outcome of the most recent download attempt. None = never tried.
last_attempt_at: Option<DateTime<Utc>>Wall-clock time of the most recent download attempt. Together with
download_status lets the UI distinguish “fresh failure” from
“tried weeks ago, retry might work”.
bibtex_key: Option<String>Stable citation key used in BibTeX / BibLaTeX export (#132).
Assigned on first encounter via the Better-BibTeX-style
algorithm in scitadel-export::bibtex::generate_key and frozen
thereafter — the freeze contract is why we persist it rather
than recompute. None means the paper predates migration 009
and will be backfilled on next Database::migrate call.