* Create webhook models
* Define interfaces for service and repository
* Create Webhook dto and corresponding factory
* implement WebhookRepository.cs
* Remove entity name from models, as that should be resolved in mapping instead
* Add new table to schema creator
* Register repo for DI
* Remove more mentions of entityname
* Refactor repository to guids
* Implement WebhookService
* Use scopes in service
* Start creating tests for service
* Refactor delete to use Id and not entire entity
* Rework Webhooks to be able to have multiple entity keys
* Implement GetAll functionality
* Implement webhook controller
* Imeplement get all events action
* Add equalityComparer deletegate to Webhook
* Add datacontract attirbutes to properties
* Implement backoffice webhooks tree
* Implement first webhooks menu
* Make WebHookController authorized
* Update to have tabs with webhooks and logs
* Enable create overlay
* Push to entityKeys array
* Fix up pagination
* Implement delete functionality
* remove pagination
* add log view
* Fix create to be able to select more than one content type
* implement type name resolving for content
* Refactor to use less duplication
* Implement update functionality in frontend
* Rename database table
* Make multiple events possible
* create new event picker
* Refactor to actually add new database table with proper name
* Make it possible to select multiple events
* Fix updating current items
* Fix up update functionality after db rework
* Add webhook icon
* Switch to match heartcore icons
* Refactor to use bases instead of Enum
* Refactor to make IWebhookEvent to Collection, so it can be injected instead of using reflection
* Fix up frontend to match new models
* Fix integration tests
* Remove obsolete entity key from webhookdto
* Introduce constants instead of hard coded strings
* Start implementation of firing mechanism
* Add new GetByEventName method
* Add 1 to many list on WebhookDto
* Implement new repository pattern
* Implement GetByEventName
* Fix up repository to use all async
* Refactor events to fire
* Refactor WebhookEvents to be more DRY
* Add custom header
* Start implementing log repository
* Implement GetPaged
* Implement WebhookLogService
* Implement GetLogs
* Add url to webhook log
* Implement log overview
* Formatting
* Implement details view
* Refactor to get actual retry count
* Refactor firing to fire only when Enabled
* Add Status code to detailed view
* Add configuration to disable webhooks entirely
* Implement custom headers frontend
* Implement persistence of custom headers
* Refactor retry service to also retry on non success status codes.
* Refactor registration of Webhooks, to also register as NotificationHandler
* Add webhooks migration
* Add key for adding webhook headers
* Fix up test
* Change event icon to flag
* Remember event, when editing what events you have chosen
* Refactor reflection to check if INotificationAsyncHandler instead
* Formatting
* Refactor webhook model to no longer derive from EntityBase
* Rename entityKeys to content keys
* Rename controller to lowercase H
* Add null check before trying to access selectedEvents
* Add configuration for maximum number of retries
* Add index to date
* Add webhook Key to logs
* Check for SchedulingPublisher before sending webhooks
* rename requestObject to payload
* Refactor event to send appropriate payloads
* Refactor logging to happen for every try.
* Order date by descending
* Add todo
* Change firing service to use String not ByteContent
* Update Headers to Interface instead of concrete implementation
* Dont return if a table exists already
* Rename updateModel to webhook
* Annotate WebhookController.cs with PluginController attribute
* Add danish translations
* Do not check if fail
* Dont filter when selecting custom items
* Remove delay from WebhookFiringService
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>