package admin

import (
	"common/connection"
	"goutil/logUtilPlus"
)

// AddAdmin 添加管理员
// AddAdmin 添加新的管理员到数据库中。
// 参数 admin: 包含管理员信息的对象。
// 返回值: 插入操作影响的行数和可能发生的错误。
func AddAdmin(admin *Admin) (int64, error) {

	//处理一些验证

	// 写入到数据库
	result := connection.GetAdminDB().Create(&admin) // 通过数据的指针来创建

	if result.Error != nil {
		logUtilPlus.ErrorLog("添加管理员失败 错误信息：", result.Error.Error())
	}
	return admin.ID, nil
}

// GetAdminByID 根据管理员ID获取管理员信息
func GetAdminByID(adminID int64) (*Admin, error) {
	var admin Admin
	result := connection.GetAdminDB().First(&admin, adminID)
	if result.Error != nil {
		return nil, result.Error
	}
	return &admin, nil
}

// 管理员登录
func Login(account string, password string) (*Admin, error) {
	var admin Admin
	result := connection.GetAdminDB().Where("account = ? AND password = ?", account, password).First(&admin)
	if result.Error != nil {
		return nil, result.Error
	}
	return &admin, nil
}
