OK, been working on it this week, so far so good.
The CRUD for notification stuff is whats taking almost all the time, its still incomplete. While doing those changes I realize there are lots of other places earlier in the process that needs attention, mostly the Query class which is a fundamental part of the whole system.
I'm also in the process of removing the DB abstraction class, although I still believe on it and I will still use it on other smaller mods, This is a big mod with a lot of places that produces queries, most of them are custom queries that the DB layer cannot handle because it is pretty simple layer that was designed out of my laziness
I will also replace the current jquery script for notifications (I already did it for the notifications, the comments and status are still left to do) with this one: https://github.com/needim/noty
much more customizable and overall it suits better for Breeze needs.
Until the last commit, github says I added 34,223 lines and deleted 24,404 on 212 commits, leaving a total of 9819 lines, this of course includes empty lines (as I like to separate bits of code a lot!) so, making an estimate, leaving out license, comments and empty lines, the grand total would be around 4000~5000 lines of code! thats a lot considering how simple the idea behind this mod is and how I've been removing features from the initial idea.
Tested it on 2.1, it works since this is an edit-free mod, however, it doesn't really take full advantage of all the new features 2.1 provides, I'm currently thinking whats the best approach to take advantage of 2.1 new features without having to re-write the entire mod, perhaps another hooks.php made specifically for 2.1 and add more methods in the core classes, this shouldn't affect 2.0 since those method will never be used on this version, actually, there are a lot of unused methods all over the place, simply because it's ridiculously easy to add them (all hail OOP!) and you never know when you will use them.
Another point its inheritance, I want Breeze classes to be more connected and easily accessible by gradually removing static methods and change abstract classes to normal ones capable of being instantiated, thus removing the need to make calls like this one:
and instead simply call the parent constructor and then directly use $this->text() so I can get access to the class this method instantiate:
$text = $this->text();
if I'm gonna use text() a lot.
another point is MVC, I've been gradually removing stuff from the model (query class) and add then to the controller where they belong (multiple classes that calls the query class for their dirty stuff), the same with removing template things form the controller and move them to the view (template files) where they belong.
Overall, there are tons of stuff left to do, strangely enough, right now I'm not cursing everyone because I have to re-write code all the time, instead, I'm looking at it as a chance to implement what I've been learning, as time goes by the places needed to be changed decrease.