I am creating a learning management system, where admins can create Curriculums and assign it to users. A Curriculum has_many Courses, and users mark courses as complete.
Now, I want to extend this feature and add a Document model, where the admin can upload a document and assign it to users. Users will then have to come to the platform and mark the document as completed, similar to how they interact with courses.
I know I should have started off with a model such as AssignableMaterial and made Curriculums and Document inherit from AssignableMaterial, but I didn't think I would be adding Documents. What would be the best way to add Documents and still use the "assign" feature from Curriculum, and "mark as complete" feature from Course?
Could Document inherit from Curriculums, or would I either have to move all the methods tied to Curriculums/Courses into a parent model AssignableMaterial, and then inherit Document from that parent model?