Files
SVSimServer/SVSim.Database/Repositories/Story/IStoryMasterRepository.cs
2026-05-25 19:07:49 -04:00

28 lines
1.2 KiB
C#

using SVSim.Database.Entities.Story;
namespace SVSim.Database.Repositories.Story;
public interface IStoryMasterRepository
{
Task<List<StorySection>> GetSectionsByFamilyAsync(StoryApiType apiType);
Task<List<StoryWorld>> GetWorldsForSectionsAsync(IEnumerable<int> worldIds);
Task<List<StoryChapter>> GetChaptersBySectionCharaAsync(int sectionId, int charaId);
/// <summary>
/// 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.
/// </summary>
Task<List<StoryChapter>> GetChaptersBySectionsAsync(IEnumerable<int> sectionIds);
Task<StoryChapter?> GetChapterByIdAsync(int storyId);
Task<SpecialBattleSetting?> GetSbsByIdAsync(int sbsId);
/// <summary>
/// Resolve a wire story_id to a sub-chapter row when no top-level <see cref="StoryChapter"/>
/// 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.
/// </summary>
Task<StorySubChapter?> FindSubChapterByStoryIdAsync(int storyId);
}