using FoodLabeling.Th.Application.Contracts.Dtos.MultiTenancy;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
namespace FoodLabeling.Th.Application.Contracts.IServices;
///
/// 泰额版多租户辅助接口(租户列表、当前租户信息)
///
public interface IThMultiTenancyAppService : IApplicationService
{
///
/// 获取可选租户列表(平台管理员创建租户后供登录选择)
///
Task> GetTenantSelectAsync();
///
/// 获取当前请求上下文解析到的租户 Id
///
Task GetCurrentTenantAsync();
///
/// 平台级管理员:分页获取公司(租户)列表及可回显加密凭据
///
Task> GetCompanyListAsync(ThCompanyListInput input);
///
/// 平台级管理员:修改公司默认管理员账号/密码
///
Task UpdateCompanyAdminAsync(ThUpdateCompanyAdminInputVo input);
///
/// 平台级管理员:获取 SaaS 菜单权限树
///
Task> GetMenuPermissionTreeAsync();
///
/// 平台级管理员:获取公司(租户)已分配菜单权限
///
Task GetCompanyMenusAsync(Guid tenantId);
///
/// 平台级管理员:覆盖式设置公司(租户)菜单权限
///
Task UpdateCompanyMenusAsync(ThUpdateCompanyMenusInputVo input);
///
/// 平台级管理员:获取租户内角色及已绑定菜单
///
Task> GetCompanyRolesAsync(Guid tenantId);
///
/// 平台级管理员:覆盖式设置租户内角色菜单绑定
///
Task UpdateCompanyRoleMenusAsync(ThUpdateCompanyRoleMenusInputVo input);
///
/// 平台级管理员:删除公司(租户),可选 DROP 对应业务库
///
Task DeleteCompanyAsync(Guid tenantId, bool dropDatabase = true);
}