package v1 import ( "quyun/v2/app/errorx" "quyun/v2/app/http/v1/dto" "quyun/v2/app/services" "quyun/v2/database/models" "github.com/gofiber/fiber/v3" ) // @provider type Creator struct{} // Apply to become a creator // // @Router /v1/t/:tenantCode/creator/apply [post] // @Router /v1/t/:tenantCode/creator/members/:id/review [post] // @Router /v1/t/:tenantCode/creator/members/invite [post] // @Router /v1/t/:tenantCode/creator/members [get] // @Router /v1/t/:tenantCode/creator/members/invites [get] // @Router /v1/t/:tenantCode/creator/members/invites/:id [delete] // @Router /v1/t/:tenantCode/creator/members/join-requests [get] // @Router /v1/t/:tenantCode/creator/members/:id [delete] // @Router /v1/t/:tenantCode/creator/reports/overview [get] // @Router /v1/t/:tenantCode/creator/reports/export [post] // @Router /v1/t/:tenantCode/creator/dashboard [get] // @Router /v1/t/:tenantCode/creator/contents/:id [get] // @Router /v1/t/:tenantCode/creator/contents [get] // @Router /v1/t/:tenantCode/creator/contents [post] // @Router /v1/t/:tenantCode/creator/contents/:id [put] // @Router /v1/t/:tenantCode/creator/contents/:id [delete] // @Router /v1/t/:tenantCode/creator/orders [get] // @Router /v1/t/:tenantCode/creator/orders/:id/refund [post] // @Router /v1/t/:tenantCode/creator/settings [get] // @Router /v1/t/:tenantCode/creator/settings [put] // @Router /v1/t/:tenantCode/creator/payout-accounts [get] // @Router /v1/t/:tenantCode/creator/payout-accounts [post] // @Router /v1/t/:tenantCode/creator/payout-accounts [delete] // @Router /v1/t/:tenantCode/creator/withdraw [post] // @Router /v1/t/:tenantCode/creator/coupons [post] // @Router /v1/t/:tenantCode/creator/coupons [get] // @Router /v1/t/:tenantCode/creator/coupons/:id [get] // @Router /v1/t/:tenantCode/creator/coupons/:id [put] // @Router /v1/t/:tenantCode/creator/coupons/:id/grant [post] // @Summary Grant coupon // @Description Grant coupon to users // @Tags CreatorCenter // @Accept json // @Produce json // @Param id path int64 true "Coupon ID" // @Param form body dto.CouponGrantForm true "Grant form" // @Success 200 {string} string "Granted" // @Bind user local key(__ctx_user) // @Bind id path // @Bind form body func (c *Creator) GrantCoupon(ctx fiber.Ctx, _ *models.User, id int64, form *dto.CouponGrantForm) (string, error) { tenantID := getTenantID(ctx) if form == nil { return "", errorx.ErrInvalidParameter.WithMsg("参数无效") } _, err := services.Coupon.Grant(ctx, tenantID, id, form.UserIDs) if err != nil { return "", errorx.ErrOperationFailed.WithCause(err) } return "Granted", nil }