package service

import "nms_nbi/src/modules/network_element/model"

// 网元信息 服务层接口
type INeInfo interface {
	// SelectNeInfoByNeTypeAndNeID 通过ne_type和ne_id查询网元信息
	SelectNeInfoByNeTypeAndNeID(neType, neID string) model.NeInfo

	// RefreshByNeTypeAndNeID 通过ne_type和ne_id刷新redis中的缓存
	RefreshByNeTypeAndNeID(neType, neID string) model.NeInfo

	// ClearNeCacheByNeType 清除网元类型缓存
	ClearNeCacheByNeType(neType string) bool

	// SelectNeInfoByRmuid 通过rmUID查询网元信息
	SelectNeInfoByRmuid(rmUid string) model.NeInfo

	// SelectPage 根据条件分页查询
	//
	// bandStatus 带状态信息
	SelectPage(query map[string]any, bandStatus bool) map[string]any

	// SelectList 查询列表
	//
	// bandStatus 带状态信息
	SelectList(ne model.NeInfo, bandStatus bool) []model.NeInfo

	// SelectByIds 通过ID查询
	//
	// bandStatus 带主机信息
	SelectById(infoId string, bandHost bool) model.NeInfo

	// Insert 新增信息
	Insert(neInfo model.NeInfo) string

	// Update 修改信息
	Update(neInfo model.NeInfo) int64

	// DeleteByIds 批量删除信息
	DeleteByIds(infoIds []string) (int64, error)

	// CheckUniqueNeTypeAndNeId 校验同类型下标识是否唯一
	CheckUniqueNeTypeAndNeId(neType, neId, infoId string) bool
}
