defmodule MishkaInstaller.Event do alias __MODULE__ alias MishkaInstaller.Reference, as: Ref @type event :: %Event{name: atom(), section: atom(), reference: module()} defstruct [:name, :section, :reference] @spec system_events :: [event] def system_events do [ # Content %Event{ name: :on_content_prepare, section: :mishka_content, reference: Ref.OnContentPrepare }, %Event{ name: :on_content_after_title, section: :mishka_content, reference: Ref.OnContentAfterTitle }, %Event{ name: :on_content_before_display, section: :mishka_content, reference: Ref.OnContentBeforeDisplay }, %Event{ name: :on_content_after_display, section: :mishka_content, reference: Ref.OnContentAfterDisplay }, %Event{ name: :on_content_before_save, section: :mishka_content, reference: Ref.OnContentBeforeSave }, %Event{ name: :on_content_after_save, section: :mishka_content, reference: Ref.OnContentAfterSave }, %Event{ name: :on_content_prepare_form, section: :mishka_content, reference: Ref.OnContentPrepareForm }, %Event{ name: :on_content_prepare_data, section: :mishka_content, reference: Ref.OnContentPrepareData }, %Event{ name: :on_content_before_delete, section: :mishka_content, reference: Ref.OnContentBeforeDelete }, %Event{ name: :on_content_after_delete, section: :mishka_content, reference: Ref.OnContentAfterDelete }, %Event{ name: :on_content_change_state, section: :mishka_content, reference: Ref.OnContentChangeState }, %Event{name: :on_content_search, section: :mishka_content, reference: Ref.OnContentSearch}, %Event{ name: :on_content_search_areas, section: :mishka_content, reference: Ref.OnContentSearchAreas }, # Captcha %Event{name: :on_init, section: :mishka_user, reference: Ref.OnInit}, %Event{name: :on_display, section: :mishka_user, reference: Ref.OnDisplay}, %Event{name: :on_check_answer, section: :mishka_user, reference: Ref.OnCheckAnswer}, %Event{ name: :on_privacy_collect_admin_capabilities, section: :mishka_user, reference: Ref.OnPrivacyCollectAdminCapabilities }, # User %Event{ name: :on_user_authorisation, section: :mishka_user, reference: Ref.OnUserAuthorisation }, %Event{ name: :on_user_authorisation_failure, section: :mishka_user, reference: Ref.OnUserAuthorisationFailure }, %Event{name: :on_user_before_save, section: :mishka_user, reference: Ref.OnUserBeforeSave}, %Event{name: :on_user_after_save, section: :mishka_user, reference: Ref.OnUserAfterSave}, %Event{ name: :on_user_after_delete, section: :mishka_user, reference: Ref.OnUserAfterDelete }, %Event{name: :on_user_login, section: :mishka_user, reference: Ref.OnUserLogin}, %Event{ name: :on_user_login_failure, section: :mishka_user, reference: Ref.OnUserLoginFailure }, %Event{name: :on_user_after_login, section: :mishka_user, reference: Ref.OnUserAfterLogin}, %Event{ name: :on_user_after_logout, section: :mishka_user, reference: Ref.OnUserAfterLogout }, %Event{ name: :on_user_after_save_role, section: :mishka_user, reference: Ref.OnUserAfterSaveRole }, %Event{ name: :on_user_after_delete_role, section: :mishka_user, reference: Ref.OnUserAfterDeleteRole }, %Event{ name: :on_user_after_save_failure, section: :mishka_user, reference: Ref.OnUserAfterSaveFailure }, # Dependency %Event{ name: :on_change_dependency, section: :mishka_installer, reference: Ref.OnChangeDependency } ] end end