package service

import (
	"fmt"

	"be.ems/src/modules/network_data/model"
	"be.ems/src/modules/network_data/repository"
)

// 实例化数据层 CDREventSMSC 结构体
var NewCDREventSMSC = &CDREventSMSC{
	cdrEventRepository: repository.NewCDREventSMSC,
}

// CDREventSMSC CDR会话事件SMSC 服务层处理
type CDREventSMSC struct {
	cdrEventRepository *repository.CDREventSMSC // CDR会话事件数据信息
}

// SelectPage 根据条件分页查询
func (r *CDREventSMSC) SelectPage(querys model.CDREventSMSCQuery) map[string]any {
	return r.cdrEventRepository.SelectPage(querys)
}

// DeleteByIds 批量删除信息
func (r *CDREventSMSC) DeleteByIds(cdrIds []string) (int64, error) {
	// 检查是否存在
	ids := r.cdrEventRepository.SelectByIds(cdrIds)
	if len(ids) <= 0 {
		return 0, fmt.Errorf("not data")
	}

	if len(ids) == len(cdrIds) {
		rows := r.cdrEventRepository.DeleteByIds(cdrIds)
		return rows, nil
	}
	// 删除信息失败！
	return 0, fmt.Errorf("delete fail")
}
