package service

import (
	"acme-mana-server-go/acme"
	"acme-mana-server-go/dao"
	"acme-mana-server-go/model"
	"acme-mana-server-go/vo"
)

var acmeUserDao = &dao.AcmeUserDao{}

type AcmeUserService struct {
}

func (_ *AcmeUserService) Get(id int) *model.AcmeUser {
	return acmeUserDao.Get(id)
}
func (_ *AcmeUserService) List() *[]model.AcmeUser {
	return acmeUserDao.List()
}
func (service *AcmeUserService) Add(acmeUser *model.AcmeUser) *model.AcmeUser {
	acmeUser = &model.AcmeUser{
		Email:  acmeUser.Email,
		Status: 0,
	}
	acmeUser = acmeUserDao.Add(acmeUser)

	register := acme.Register(acmeUser.Email)
	acmeUser.PrivateKey = register.PrivateKey
	acmeUser.Registration = register.Registration
	acmeUser.Status = 1
	service.Edit(acmeUser)

	return acmeUser
}
func (_ *AcmeUserService) Edit(acmeUser *model.AcmeUser) *model.AcmeUser {
	return acmeUserDao.Edit(acmeUser)
}
func (_ *AcmeUserService) Delete(id int) {
	acmeUserDao.Delete(id)
}

func (_ *AcmeUserService) Page(req *vo.AcmeUserPageReq) (int64, *[]model.AcmeUser) {
	return acmeUserDao.Page(req)
}