using TMSDAL.DTO.AssessmentQuestion; namespace TMSBLL.Assessment { public class GenerationConfigDTO { public int QuestionCount { get; set; } = 10; public byte? QuestionType { get; set; } // null = mixed } // Extension point for AI-assisted question generation from a training programme's material. // The default implementation returns an empty list (today's baseline: an admin authors // questions manually) — a real AI service is registered later purely via DI. Output is always // DRAFTS: never auto-published into MASSESSMENTQUESTION without an admin explicitly saving, // since AI output needs vetting before it can affect real scoring. public interface IAssessmentQuestionGenerationService { Task> GenerateQuestionsAsync(int programmeId, string? materialReference, GenerationConfigDTO config, CancellationToken ct); } // Named to match assembly-scan's Foo->IFoo auto-registration convention (AsMatchingInterface) — // a "NoOp"-prefixed name here would silently fail to register in DI. public class AssessmentQuestionGenerationService : IAssessmentQuestionGenerationService { public Task> GenerateQuestionsAsync(int programmeId, string? materialReference, GenerationConfigDTO config, CancellationToken ct) => Task.FromResult(new List()); } }