using FoodLabeling.Application.Contracts.Dtos.Common;
using FoodLabeling.Application.Contracts.Dtos.TeamMember;
using Microsoft.AspNetCore.Mvc;
namespace FoodLabeling.Application.Contracts.IServices;
public interface ITeamMemberAppService
{
///
/// 成员分页列表。数据范围:系统管理员(admin / 超管)可查全部成员;其它账号仅返回其
/// userlocation 绑定门店所属公司下的成员(与 partner 列表 Token 范围一致),再与 Query 筛选求交。
///
Task> GetListAsync(TeamMemberGetListInputVo input);
Task GetAsync(Guid id);
Task CreateAsync(TeamMemberCreateInputVo input);
Task UpdateAsync(Guid id, TeamMemberUpdateInputVo input);
Task DeleteAsync(Guid id);
///
/// 下载 Team Member 批量导入模板(服务器 batchImportOfFiles 目录下 xlsx)
///
Task DownloadTeamMemberImportTemplateAsync();
///
/// 按列表筛选条件全量导出成员为 PDF(与列表相同过滤;不分页、不限条数)
///
Task ExportTeamMembersPdfAsync(TeamMemberGetListInputVo input);
///
/// 批量导入成员(Excel,multipart/form-data 字段 file)
///
Task ImportTeamMembersBatchAsync(TeamMemberBatchImportInputVo input);
///
/// 批量编辑成员(JSON 一次提交多行)
///
Task UpdateTeamMembersBulkAsync(TeamMemberBulkUpdateInputVo input);
}