diff --git a/src/onyx-sql/model.cr b/src/onyx-sql/model.cr index 6f7ff8d..82e3caa 100644 --- a/src/onyx-sql/model.cr +++ b/src/onyx-sql/model.cr @@ -252,4 +252,10 @@ module Onyx::SQL::Model @{{pk_rivar}} {% end %} end + + def before_insert + end + + def before_update + end end diff --git a/src/onyx-sql/model/instance_query_shortcuts.cr b/src/onyx-sql/model/instance_query_shortcuts.cr index 90b8bda..cb0513d 100644 --- a/src/onyx-sql/model/instance_query_shortcuts.cr +++ b/src/onyx-sql/model/instance_query_shortcuts.cr @@ -13,6 +13,8 @@ module Onyx::SQL::Model # user.insert == Query(User).new.insert(id: 42, name: "John") # ``` def insert : Query + before_insert + query = Query(self).new {% for ivar in @type.instance_vars %} @@ -49,6 +51,8 @@ module Onyx::SQL::Model # user.update(changeset) == Query(User).new.update.set(name: "Jake").where(id: 42) # ``` def update(changeset : Changeset(self, U)) : Query forall U + before_update + query = Query(self).new.update {% begin %}