package ports import ( "Yimaru-Backend/internal/domain" "context" ) type ModuleStore interface { CreateModule(ctx context.Context, programID, courseID int64, input domain.CreateModuleInput) (domain.Module, error) GetModuleByID(ctx context.Context, id int64) (domain.Module, error) ListModulesByProgramAndCourse(ctx context.Context, programID, courseID int64, limit, offset int32) ([]domain.Module, int64, error) ListModuleIDsByCourse(ctx context.Context, courseID int64) ([]int64, error) ReorderModulesInCourse(ctx context.Context, courseID int64, orderedIDs []int64) error UpdateModule(ctx context.Context, id int64, input domain.UpdateModuleInput) (domain.Module, error) DeleteModule(ctx context.Context, id int64) error }