namespace Domain.Ports.Repositories; using Domain.Entities; public interface IEnrollmentRepository { Task GetByIdAsync(int id, CancellationToken ct = default); Task GetByStudentAndSubjectAsync(int studentId, int subjectId, CancellationToken ct = default); Task> GetByStudentIdAsync(int studentId, CancellationToken ct = default); Task> GetBySubjectIdAsync(int subjectId, CancellationToken ct = default); Task> GetClassmatesAsync(int studentId, int subjectId, CancellationToken ct = default); Task>> GetClassmatesBatchAsync( int studentId, IEnumerable subjectIds, CancellationToken ct = default); void Add(Enrollment enrollment); void Delete(Enrollment enrollment); }