package middleware

import (
	"net/http"

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

// SensitiveRateLimit 敏感操作（改密/注销/签到）IP 维度限流中间件。
// 1 分钟最多 5 次请求，超限后封禁 5 分钟。
func SensitiveRateLimit(rl *RateLimiter) gin.HandlerFunc {
	return func(c *gin.Context) {
		result := rl.AllowSensitive(c.ClientIP())
		if result.Blocked {
			c.JSON(http.StatusTooManyRequests, gin.H{
				"success": false,
				"error":   result.Message,
			})
			c.Abort()
			return
		}
		c.Next()
	}
}
