using SVSim.Database.Entities.Story; namespace SVSim.Database.Repositories.Story; public interface IStoryMasterRepository { Task> GetSectionsByFamilyAsync(StoryApiType apiType); Task> GetWorldsForSectionsAsync(IEnumerable worldIds); Task> GetChaptersBySectionCharaAsync(int sectionId, int charaId); /// /// Bulk-load chapter scalars (no owned collections) across multiple sections in one round-trip. /// Used by the section rollup to avoid N+1 per (section, chara) lookups. /// Task> GetChaptersBySectionsAsync(IEnumerable sectionIds); Task GetChapterByIdAsync(int storyId); Task GetSbsByIdAsync(int sbsId); /// /// Resolve a wire story_id to a sub-chapter row when no top-level /// exists for it. Sub-chapter story_ids have no chapter master data of their own — they're /// progress markers hanging off the parent. Used by /finish to record progress at the sub's /// story_id when the client sends sub-chapter ids directly. /// Task FindSubChapterByStoryIdAsync(int storyId); }