package alert

import "github.com/gin-gonic/gin"

// ListEssentialAlertSubscribers
//
//	@Id				ListEssentialAlertSubscribers
//	@Tags			alert subscriber
//	@Description	list essential alert subscribers
//	@Produce		json
//	@Param			orgId		path		string	true	"organization id"
//	@Param			projectId	path		string	true	"project id"
//	@Param			clusterId	path		string	true	"cluster id"
//	@Success		200			{object}	entity.ListAlertSubscribersResponse
//	@Failure		400			{object}	common.BaseResp
//	@Failure		500			{object}	common.BaseResp
//	@Router			/api/alert/v1/orgs/{orgId}/projects/{projectId}/clusters/{clusterId}/alertSubscribers [get]
func (s *Service) ListEssentialAlertSubscribers(c *gin.Context) {
	s.ListNextGenAlertSubscribers(c)
}

// GetEssentialAlertSubscriberQuota
//
//	@Id				GetEssentialAlertSubscriberQuota
//	@Tags			alert subscriber
//	@Description	get essential alert subscriber quota
//	@Produce		json
//	@Param			orgId		path		string	true	"organization id"
//	@Param			projectId	path		string	true	"project id"
//	@Param			clusterId	path		string	true	"cluster id"
//	@Success		200			{object}	entity.GetAlertSubscriberQuotaResponse
//	@Failure		400			{object}	common.BaseResp
//	@Failure		500			{object}	common.BaseResp
//	@Router			/api/alert/v1/orgs/{orgId}/projects/{projectId}/clusters/{clusterId}/alertSubscriberQuota [get]
func (s *Service) GetEssentialAlertSubscriberQuota(c *gin.Context) {
	s.GetNextGenAlertSubscriberQuota(c)
}

// CreateEssentialAlertSubscriber
//
//	@Id				CreateEssentialAlertSubscriber
//	@Tags			alert subscriber
//	@Description	create essential alert subscriber
//	@Produce		json
//	@Param			orgId		path		string								true	"organization id"
//	@Param			projectId	path		string								true	"project id"
//	@Param			clusterId	path		string								true	"cluster id"
//	@Param			req			body		entity.CreateAlertSubscriberRequest	true	"request param"
//	@Success		200			{object}	common.BaseResp
//	@Router			/api/alert/v1/orgs/{orgId}/projects/{projectId}/clusters/{clusterId}/alertSubscribers [post]
func (s *Service) CreateEssentialAlertSubscriber(c *gin.Context) {
	s.CreateNextGenAlertSubscriber(c)
}

// DeleteEssentialAlertSubscriber
//
//	@Id				DeleteEssentialAlertSubscriber
//	@Tags			alert subscriber
//	@Description	delete essential alert subscriber
//	@Produce		json
//	@Param			orgId				path		string	true	"organization id"
//	@Param			projectId			path		string	true	"project id"
//	@Param			clusterId			path		string	true	"cluster id"
//	@Param			alertSubscriberId	path		string	true	"alert subscriber id"
//	@Success		200					{object}	common.BaseResp
//	@Failure		400					{object}	common.BaseResp
//	@Failure		500					{object}	common.BaseResp
//	@Router			/api/alert/v1/orgs/{orgId}/projects/{projectId}/clusters/{clusterId}/alertSubscribers/{alertSubscriberId} [delete]
func (s *Service) DeleteEssentialAlertSubscriber(c *gin.Context) {
	s.DeleteNextGenAlertSubscriber(c)
}
