package message

import (
	"context"

	"github.com/tidbcloud/account/commons/config"

	"github.com/spf13/viper"
	"github.com/tidbcloud/account/idl/pbgen/proto/central"
	"github.com/tidbcloud/tiinf/monitor/tilog"
	"go.uber.org/zap"

	"github.com/tidbcloud/account/central/utils"
	"google.golang.org/protobuf/types/known/emptypb"
)

type MessageService struct {
	central.UnimplementedMessageServiceServer
}

func NewMessageService() central.MessageServiceServer {
	return &MessageService{}
}

func (s *MessageService) QueryNotice(ctx context.Context, req *emptypb.Empty) (*central.QueryNoticeResp, error) {
	var notice string
	var level uint64
	if !config.IsLocalEnv() {
		notice = viper.GetString("message.notice")
		level = viper.GetUint64("message.noticeLevel")
	}
	tilog.Info(ctx, "QueryNotice value from oneConfig", zap.Any("message.notice", notice))

	resp := &central.QueryNoticeResp{Notice: notice, Level: level}
	return resp, utils.ConvertErr2GrpcErr(nil)
}
