package mongodbmgr

import (
	"log"
	"server/common"
	"server/conf"

	"gopkg.in/mgo.v2/bson"
)

// 定义用户集合操作
var userCollection = NewCollection(conf.MongoDBName, "users")

// 新增用户到 MongoDB
func AddUser(userData *common.UserData) error {
	// 创建插入的用户数据
	err := userCollection.Insert(userData)
	if err != nil {
		log.Printf("Error inserting user data into MongoDB: %v", err)
		return err
	}
	log.Printf("User data added to MongoDB for userId: %s", userData.Id)
	return nil
}

// 更新用户信息到 MongoDB
func UpdateUserInfo(userData *common.UserData) error {
	// 使用用户 ID 来更新用户数据
	err := userCollection.Update(bson.M{"id": userData.Id}, bson.M{"$set": userData})
	if err != nil {
		log.Printf("Error updating user data in MongoDB: %v", err)
		return err
	}
	log.Printf("User data updated in MongoDB for userId: %s", userData.Id)
	return nil
}

// 获取用户信息从 MongoDB
func GetUserInfoFromMongoDB(userId string) (*common.UserData, error) {
	var userData common.UserData
	err := userCollection.FindOne(bson.M{"id": userId}, &userData) // 查找用户ID
	if err != nil {
		log.Printf("Error fetching user data from MongoDB: %v", err)
		// 如果没有找到用户数据，可以返回 nil 或者处理错误
		return nil, err
	}
	return &userData, nil
}
