Summary
Allow repositories to mark entities as deleted instead of physically removing their rows.
Soft-delete behavior must be opt-in and visible in repository configuration.
Current behavior
removeById() and removeAll() always execute physical DELETE statements.
Applications requiring archival behavior must implement custom repositories.
Expected behavior
A repository configured with a soft-delete column must:
- update that column during removal;
- exclude deleted rows from normal reads;
- allow explicit access to deleted rows;
- allow restoration where supported.
Scope
Suggested files
modules/orm/include/vix/orm/Repository.hpp
modules/orm/include/vix/orm/SoftDelete.hpp
modules/orm/tests/soft_delete_test.cpp
Acceptance criteria
Non-goals
This issue does not include:
- automatic data retention policies;
- scheduled cleanup;
- relationship cascading;
- audit history.
Suggested labels
scope:orm
type:feature
tests
help wanted
status:accepted
Summary
Allow repositories to mark entities as deleted instead of physically removing their rows.
Soft-delete behavior must be opt-in and visible in repository configuration.
Current behavior
removeById()andremoveAll()always execute physicalDELETEstatements.Applications requiring archival behavior must implement custom repositories.
Expected behavior
A repository configured with a soft-delete column must:
Scope
Suggested files
modules/orm/include/vix/orm/Repository.hppmodules/orm/include/vix/orm/SoftDelete.hppmodules/orm/tests/soft_delete_test.cppAcceptance criteria
Non-goals
This issue does not include:
Suggested labels
scope:ormtype:featuretestshelp wantedstatus:accepted