package gov.nysenate.openleg.dao.transcript; import com.google.common.collect.Range; import gov.nysenate.openleg.dao.base.LimitOffset; import gov.nysenate.openleg.dao.base.PaginatedList; import gov.nysenate.openleg.dao.base.SortOrder; import gov.nysenate.openleg.model.transcript.Transcript; import gov.nysenate.openleg.model.transcript.TranscriptFile; import gov.nysenate.openleg.model.transcript.TranscriptId; import gov.nysenate.openleg.model.transcript.TranscriptUpdateToken; import java.time.LocalDateTime; import java.util.List; public interface TranscriptDao { /** * Retrieves all TranscriptId's for a year. * * @param sortOrder SortOrder * @param limOff LimitOffset * @return List<TranscriptId> */ public List<TranscriptId> getTranscriptIds(SortOrder sortOrder, LimitOffset limOff); /** * Retrieves a Transcript via its TranscriptId. * * @param transcriptId The transcriptId of the Transcript to return * @return The Transcript belonging to the transcriptId * @see gov.nysenate.openleg.model.transcript.TranscriptId * @see Transcript */ public Transcript getTranscript(TranscriptId transcriptId); /** * Updates the backing store with the given instance or inserts it * if the record doesn't already exist. * * @param transcript The {@link Transcript} to update. * @param transcriptFile The {@link TranscriptFile} which updated the Transcript. */ public void updateTranscript(Transcript transcript, TranscriptFile transcriptFile); /** * Fetches new and updated transcripts from a specified date range. * @param dateRange Range{@literal <}LocalDateTime{@literal >} - The date range to search within. * @param dateOrder SortOrder - Order by the date/time. * @param limOff LimitOffset - Restrict the result set. * @return PaginatedList containing TranscriptUpdateToken's */ public PaginatedList<TranscriptUpdateToken> transcriptsUpdatedDuring(Range<LocalDateTime> dateRange, SortOrder dateOrder, LimitOffset limOff); }