ITeamMemberAppService.cs 1.42 KB
using FoodLabeling.Application.Contracts.Dtos.Common;
using FoodLabeling.Application.Contracts.Dtos.TeamMember;
using Microsoft.AspNetCore.Mvc;

namespace FoodLabeling.Application.Contracts.IServices;

public interface ITeamMemberAppService
{
    Task<PagedResultWithPageDto<TeamMemberGetListOutputDto>> GetListAsync(TeamMemberGetListInputVo input);

    Task<TeamMemberGetOutputDto> GetAsync(Guid id);

    Task<TeamMemberGetOutputDto> CreateAsync(TeamMemberCreateInputVo input);

    Task<TeamMemberGetOutputDto> UpdateAsync(Guid id, TeamMemberUpdateInputVo input);

    Task DeleteAsync(Guid id);

    /// <summary>
    /// 下载 Team Member 批量导入模板(服务器 batchImportOfFiles 目录下 xlsx)
    /// </summary>
    Task<IActionResult> DownloadTeamMemberImportTemplateAsync();

    /// <summary>
    /// 按列表筛选条件全量导出成员为 PDF(与列表相同过滤;不分页、不限条数)
    /// </summary>
    Task<IActionResult> ExportTeamMembersPdfAsync(TeamMemberGetListInputVo input);

    /// <summary>
    /// 批量导入成员(Excel,multipart/form-data 字段 <c>file</c>)
    /// </summary>
    Task<TeamMemberBatchImportResultDto> ImportTeamMembersBatchAsync(TeamMemberBatchImportInputVo input);

    /// <summary>
    /// 批量编辑成员(JSON 一次提交多行)
    /// </summary>
    Task<TeamMemberBulkUpdateResultDto> UpdateTeamMembersBulkAsync(TeamMemberBulkUpdateInputVo input);
}