Extending Django CMS functionality, opionions and tips welcome

I want to add some functionality and I was hoping to get some advice on doing it properly.

So, I have already created a plugin for events. In this case, they are events like concerts, dance parties, workshops, lectures, etc… Events will have images attached to them, flyers, posters, after the event maybe video recordings or photos taken. I want the events to work comparably to djangocms-blog, with being able to add a several types of events from the main menu, just like writing a new blog entry. I think using the manual on creating plugins and using the code from djangocms-blog as an example I will be fine with that part.
I also want to add a contacts app, where contacs and locations can be stored, so that for instance the artist for a concert but also the location of the concert can be added to the event.

Now here comes the part where I have some questions. I want to add different types of images. So for instance, I want categories like flyers, posters (both as advertisement for events), photos, etc… I want each category of image to have it’s own subfolder in the media folder. These images should have a category choice field with preset choices for users to pick. And I want images of the category photo to be assignable to galleries.
I’m thinking the easies way to do this would be to create a new type of plugin for each category of image that I want to add, where the new plugins inherit from the bootstrap4 extension which as I understand is an extension of django-filer.
I’m looking for a way to add this functionality in a way that will be easily sustainable with future updates of djangocms. Please let me know what you think.