package gov.nysenate.openleg.service.transcript.data;
import gov.nysenate.openleg.dao.base.LimitOffset;
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.TranscriptNotFoundEx;
import java.util.List;
/**
* Data service layer for retrieval and persistence of transcripts.
*/
public interface TranscriptDataService
{
/**
* Fetch a transcript given an id.
*
* @param transcriptId TranscriptId
* @return Transcript
*/
public Transcript getTranscript(TranscriptId transcriptId) throws TranscriptNotFoundEx;
/**
* Get a list of transcript ids for a given session year.
*
* @param sortOrder SortOrder
* @param limitOffset LimitOffset
* @return List<TranscriptId>
*/
public List<TranscriptId> getTranscriptIds(SortOrder sortOrder, LimitOffset limitOffset);
/**
* Saves the transcript.
*
* @param transcript Transcript
* @param transcriptFile TranscriptFile
*/
public void saveTranscript(Transcript transcript, TranscriptFile transcriptFile, boolean postUpdateEvent);
}