package repository

import "be.ems/src/modules/system/model"

// ISysTenant 租户表 数据层接口
type ISysTenant interface {
	// SelectTenantList 查询租户管理数据
	SelectTenantList(sysTenant model.SysTenant, dataScopeSQL string) []model.SysTenant

	// SelectTenantListByRoleId 根据角色ID查询租户树信息
	SelectTenantListByRoleId(roleId string, tenantCheckStrictly bool) []string

	// SelectTenantById 根据租户ID查询信息
	SelectTenantById(tenantId string) model.SysTenant

	// SelectChildrenTenantById 根据ID查询所有子租户
	SelectChildrenTenantById(tenantId string) []model.SysTenant

	// HasChildByTenantId 是否存在子节点
	HasChildByTenantId(tenantId string) int64

	// CheckTenantExistUser 查询租户是否存在用户
	CheckTenantExistUser(tenantId string) int64

	// CheckUniqueTenant 校验租户是否唯一
	CheckUniqueTenant(sysTenant model.SysTenant) string

	// 校验租赁对象是否唯一
	IsUniqueTenancy(sysTenant model.SysTenant) bool

	// InsertTenant 新增租户信息
	InsertTenant(sysTenant model.SysTenant) string

	// UpdateTenant 修改租户信息
	UpdateTenant(sysTenant model.SysTenant) int64

	// UpdateTenantStatusNormal 修改所在租户正常状态
	UpdateTenantStatusNormal(tenantIds []string) int64

	// UpdateTenantChildren 修改子元素关系
	UpdateTenantChildren(sysTenants []model.SysTenant) int64

	// DeleteTenantById 删除租户管理信息
	DeleteTenantById(tenantId string) int64

	// DeleteTenantById 删除租户管理信息
	UpdateUDMSubTenantID(tenantId, assetKey string) int64
}
