package handler import ( "net/http" "github.com/gin-gonic/gin" "github.com/muyuqingfeng/iloom/shared/pkg/response" "github.com/muyuqingfeng/iloom/textile-service/internal/service" ) type PlanHandler struct { svc *service.PlanService } func NewPlanHandler(svc *service.PlanService) *PlanHandler { return &PlanHandler{svc: svc} } func (h *PlanHandler) List(c *gin.Context) { companyID := c.GetHeader("X-Company-ID") if companyID == "" { response.BadRequest(c, "missing X-Company-ID header") return } plans, err := h.svc.List(c.Request.Context(), companyID) if err != nil { response.Error(c, http.StatusInternalServerError, 50000, err.Error()) return } response.OK(c, plans) } func (h *PlanHandler) Get(c *gin.Context) { companyID := c.GetHeader("X-Company-ID") if companyID == "" { response.BadRequest(c, "missing X-Company-ID header") return } planID := c.Param("id") plan, err := h.svc.GetByID(c.Request.Context(), planID, companyID) if err != nil { response.NotFound(c, "plan not found") return } response.OK(c, plan) }