package data

import (
	"context"

	pb "bsm/full/module/base/initial/pb"
	"git.apinb.com/bsm-sdk/core/errcode"
	"git.apinb.com/bsm-sdk/core/printer"
)

// 系统标签数据
func Datas(ctx context.Context, in *pb.Empty) (reply *pb.DatasReply, err error) {
	// 查询系统数据，按数据类型和ID排序
	datas, err := GetDatasByCache()
	if err != nil {
		printer.Error("GetDatasByCache", err)
		return nil, errcode.ErrDB
	}

	// 转换为响应格式
	var data []*pb.DatasItem

	// 添加默认的"全部"选项
	data = append(data, &pb.DatasItem{
		Id:       0,
		DataType: "default",
		Key:      "all",
		Title:    "全部",
		Remark:   "默认全部选项",
		Icon:     "",
	})

	// 添加数据库中的数据
	for _, item := range datas {
		data = append(data, &pb.DatasItem{
			Id:       int64(item.ID),
			DataType: item.DataType,
			Key:      item.Key,
			Title:    item.Title,
			Remark:   item.Remark,
			Icon:     item.Icon,
		})
	}

	return &pb.DatasReply{
		Datas: data,
	}, nil
}
