package user

import "github.com/timandy/routine"

var userUserLocalStorage = routine.NewThreadLocal[*UserInfo]()

type UserInfo struct {
	UserID uint64
	Email  string
}

func NewUserInfo() *UserInfo {
	return &UserInfo{UserID: 0, Email: ""}
}

func GetCurrentUserInfo() *UserInfo {
	nowUser := userUserLocalStorage.Get()
	if nowUser == nil {
		return NewUserInfo()
	}
	return nowUser
}

func SetCurrentUserInfo(userInfo *UserInfo) {
	userUserLocalStorage.Set(userInfo)
}

func GetCurrentUserID() uint {
	return uint(GetCurrentUserInfo().UserID)
}

func GetCurrentUserEmail() string {
	return GetCurrentUserInfo().Email
}
