package controller

import (
	_const "chonho/const"
	"chonho/internal/api-v1/usecase/category_usecase"
	_error "chonho/pkg/c_error"
	"github.com/gin-gonic/gin"
)

type CategoryController struct {
	Controller
	categoryUseCase category_usecase.CategoryUseCase
}

func NewCategoryController(u category_usecase.CategoryUseCase) *CategoryController {
	return &CategoryController{
		categoryUseCase: u,
	}
}

// ListCategory godoc
// @Summary Get category list
// @Tags Category
// @ID category-list
// @Accept json
// @Produce json
// @Success 200 {object} entity.ListCategoryResponse
// @Failure 400 {object} entity.Response
// @Router /category [get]
// @Security ApiVersion
// @Security AppVersion
// @Security AppPlatform
func (c *CategoryController) ListCategory(ctx *gin.Context) {
	categories, err := c.categoryUseCase.ListCategory()
	if err != nil {
		c.Failure(ctx, _error.New(_const.StatusBadRequest, err.Error()))
	} else {
		c.Success(ctx, categories)
	}
}
