yes $m->addCondition('gender','M'); where 'gender' can be arbitrary expression, sub-select, field from association(join) or mapped no another physical field.
Define a special DB-hook. Every time new "Model" is initialized,
extra "condition" will be added. This will make sure that you won't
forget some important condition when traversing references. You can
also restrict access to edit/delete through per-model hooks that
can be globally set.
Agile Data is designed to work with UI toolkits. Generic widgets
can explore model fields and various meta-information about those
fields. References are easy to identify and traverse allowing
DropDown fields to populate values inside select.
Secure Enclave - extension to proxy "model" would allow
un-safe 3rd party code to perform C.R.U.D operations as long as
conditions are satisfied for a single model. This allows 3rd party
code to discover part of your schema. Proxy can be configured with
custom ACL rules on per-extension basis. Additional rules may be
imposed based on user.
yes Define "system_id" for all models that have this field defined - this will create global condition for all models making sure that user can work with records of one system at a time.
Returns destination model instance with dynamically applied
criteria (parent_id=123). No queries are executed. Inserting record
into this model will ensure association with parent model.
Record dirty fields before persisting. Type-cast into JSON string
and store in a single field of AuditLog Model. This model can be
persisted anywhere, table, file, etc.