package handlers import ( "context" "net/http" "github.com/gin-gonic/gin" "switchbot-api/internal/transport/http/response" ) type ReadinessUsecase interface { Check(ctx context.Context) error } type HealthHandler struct { readiness ReadinessUsecase } func NewHealthHandler(readiness ReadinessUsecase) *HealthHandler { return &HealthHandler{readiness: readiness} } func (h *HealthHandler) Healthz(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"status": "ok"}) } func (h *HealthHandler) Readyz(c *gin.Context) { if err := h.readiness.Check(c.Request.Context()); err != nil { response.WriteError(c, http.StatusServiceUnavailable, "service not ready") return } c.JSON(http.StatusOK, gin.H{"status": "ok"}) }