.. _admin-user-repository-signals:
Signals from AdminUserRepository
================================
The :py:class:`lback.repositories.admin_user_repository.AdminUserRepository` handles direct database interactions for :py:class:`~lback.models.adminuser.AdminUser` entities. This repository emits signals at critical stages of the create, update, and delete operations, providing **essential hooks for auditing changes to admin user data, triggering related business logic, or integrating with external data synchronization services.**
.. list-table::
:widths: 25 50 25
:header-rows: 1
* - Signal Name
- Description
- Arguments (`kwargs`)
* - ``admin_user_pre_create``
- Emitted just before a new `AdminUser` instance is created and added to the database session.
- ``sender`` (:py:class:`~lback.repositories.admin_user_repository.AdminUserRepository`): The repository instance.
``data`` (:py:class:`dict`): The dictionary of data used to create the `AdminUser` (password is masked).
``session`` (:py:class:`~sqlalchemy.orm.Session`): The SQLAlchemy session being used for the operation.
* - ``admin_user_post_create``
- Emitted immediately after a new `AdminUser` instance has been successfully created and added to the database session (but not yet committed).
- ``sender`` (:py:class:`~lback.repositories.admin_user_repository.AdminUserRepository`): The repository instance.
``admin_user`` (:py:class:`~lback.models.adminuser.AdminUser`): The newly created `AdminUser` instance.
``session`` (:py:class:`~sqlalchemy.orm.Session`): The SQLAlchemy session being used for the operation.
* - ``admin_user_pre_update``
- Emitted just before an existing `AdminUser` instance is updated with new data in the database session.
- ``sender`` (:py:class:`~lback.repositories.admin_user_repository.AdminUserRepository`): The repository instance.
``admin_user`` (:py:class:`~lback.models.adminuser.AdminUser`): The `AdminUser` instance about to be updated.
``update_data`` (:py:class:`dict`): The dictionary of data used for the update (password is masked).
``session`` (:py:class:`~sqlalchemy.orm.Session`): The SQLAlchemy session being used for the operation.
* - ``admin_user_post_update``
- Emitted immediately after an existing `AdminUser` instance has been successfully updated in the database session (but not yet committed).
- ``sender`` (:py:class:`~lback.repositories.admin_user_repository.AdminUserRepository`): The repository instance.
``admin_user`` (:py:class:`~lback.models.adminuser.AdminUser`): The updated `AdminUser` instance.
``session`` (:py:class:`~sqlalchemy.orm.Session`): The SQLAlchemy session being used for the operation.
* - ``admin_user_pre_delete``
- Emitted just before an `AdminUser` instance is marked for deletion in the database session.
- ``sender`` (:py:class:`~lback.repositories.admin_user_repository.AdminUserRepository`): The repository instance.
``admin_user`` (:py:class:`~lback.models.adminuser.AdminUser`): The `AdminUser` instance about to be deleted.
``session`` (:py:class:`~sqlalchemy.orm.Session`): The SQLAlchemy session being used for the operation.
* - ``admin_user_post_delete``
- Emitted immediately after an `AdminUser` instance has been successfully marked for deletion in the database session (but not yet committed).
- ``sender`` (:py:class:`~lback.repositories.admin_user_repository.AdminUserRepository`): The repository instance.
``admin_user_id`` (:py:class:`int` or :py:class:`str`): The ID of the `AdminUser` that was marked for deletion.
``session`` (:py:class:`~sqlalchemy.orm.Session`): The SQLAlchemy session being used for the operation.