package controller

import (
	"github.com/gin-gonic/gin"
	"strconv"
	"trading-go/model"
	"trading-go/response"
)

// GetAllCategories
// @Tags 分类模块
// @Summary 获取所有分类
// @Accept application/json
// @Produce application/json
// @Success 200 {object} response.Response
// @Router /category [get]
func GetAllCategories(c *gin.Context) {
	var category model.Category
	categories, err := category.GetAll()
	if err != nil {
		msg := err.Error()
		response.Fail(c.Writer, msg, 500)
		return
	}
	response.Success(c.Writer, "success", categories)
}

// CreateCategory
// @Tags 分类模块
// @Summary 创建分类
// @Accept application/json
// @Produce application/json
// @Param json body model.CategoryJson true "分类数据"
// @Success 200 {object} response.Response
// @Router /category/create [post]
func CreateCategory(c *gin.Context) {
	var categoryJson model.CategoryJson
	var category model.Category
	err := c.ShouldBindJSON(&categoryJson)
	if err != nil {
		msg := err.Error()
		response.Fail(c.Writer, msg, 500)
		return
	}
	category = categoryJson.Change()
	err = category.Create()
	if err != nil {
		msg := err.Error()
		response.Fail(c.Writer, msg, 500)
		return
	}
	response.Success(c.Writer, "success", nil)
}

// DCategory
// @Tags 分类模块
// @Summary 根据分类id删除某个分类
// @Produce application/json
// @Param id path uint true "分类id"
// @Success 200 {object} response.Response
// @Router /category/delete/{id} [delete]
func DCategory(c *gin.Context) {
	var category model.Category
	ids := c.Param("id")
	id, err := strconv.Atoi(ids)
	if err != nil {
		response.Fail(c.Writer, err.Error(), 500)
		return
	}
	category.Id = uint(id)
	err = category.Delete()
	if err != nil {
		msg := err.Error()
		response.Fail(c.Writer, msg, 500)
		return
	}
	response.Success(c.Writer, "success", nil)

}