# Functions
@Summary Create a new notification @Tags Notifications @Param notification body models.Notification true "notification data" @Success 201 {object} map[string]interface{} @Failure 400 {object} map[string]interface{} @Router /api/v1/notifications [post] @Security BearerAuth.
@Summary Delete a notification @Tags Notifications @Router /api/v1/notifications [delete] @Security BearerAuth.
@Summary sends an email verification notification and creates a database entry for it @Tags Notifications @Success 200 {array} map[string]interface{} @Router /api/v1/notifications/verify-email [post] @Security BearerAuth.
@Summary Health Check @Tags Health @Success 200 {object} map[string]interface{} @Router /health [get].
@Summary Get all notifications @Tags Notifications @Success 200 {array} map[string]interface{} @Router /api/v1/notifications [get] @Security BearerAuth.
@Summary Get a single notification @Tags Notifications @Success 200 {array} map[string]interface{} @Router /api/v1/notifications/:id [get] @Security BearerAuth.
@Summary Retrieve user settings @Description Fetches the saved settings for the authenticated user.
@Summary creates a database entry for an order creation notification @Tags Notifications @Param orderId path uint true "Order ID" @Success 200 {array} map[string]interface{} @Router /api/v1/notifications/order-created/:orderId [post] @Security BearerAuth.
@Summary creates a database entry for an order shipped notification @Tags Notifications @Param orderId path uint true "Order ID" @Success 200 {array} map[string]interface{} @Router /api/v1/notifications/order-shipped/:orderId [post] @Security BearerAuth.
@Summary Mark notification as read @Tags Notifications @Param id path uint true "Notification ID" @Success 200 {object} map[string]string @Failure 400 {object} map[string]string @Failure 404 {object} map[string]string @Router /api/v1/notifications/read [patch] @Security BearerAuth.
@Summary Toggle one (only one) specific user setting @Description Toggles a setting based on a query parameter.
@Summary Initialize user settings @Description Creates default settings entries for a user in the database.