ILabelAppService.cs 2.31 KB
using FoodLabeling.Application.Contracts.Dtos.Common;
using FoodLabeling.Application.Contracts.Dtos.Label;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;

namespace FoodLabeling.Application.Contracts.IServices;

/// <summary>
/// 标签管理接口(美国版)
/// </summary>
public interface ILabelAppService : IApplicationService
{
    /// <summary>
    /// 按产品分页列表(一个产品展示多个标签)。支持 <c>GroupId</c> / <c>LocationId</c> 筛选(命中 <c>fl_label_region</c>、<c>fl_label_location</c> 或 <c>AppliedRegionType=ALL</c>);<c>labelTypeId</c> 为可选筛选;出参含 <c>locationIds</c>、<c>region</c>、<c>regionIds</c>、<c>appliedRegionType</c>。
    /// </summary>
    Task<PagedResultWithPageDto<LabelGetListOutputDto>> GetListAsync(LabelGetListInputVo input);

    /// <summary>
    /// 标签详情(id=LabelCode)。出参含 <c>locationIds</c>、<c>location</c>、<c>appliedRegionType</c>、<c>region</c>、<c>regionIds</c>、<c>groupIds</c>;<c>locationId</c> 为 <c>locationIds</c> 首项兼容字段。
    /// </summary>
    Task<LabelGetOutputDto> GetAsync(string id);

    /// <summary>
    /// 新增标签。Body 支持 <c>appliedRegionType</c>(ALL/SPECIFIED)、<c>regionIds</c> / <c>groupIds</c>(落库 <c>fl_label_region</c>)、<c>locationIds</c>(主字段,落库 <c>fl_label_location</c>);<c>locationId</c> 与 <c>locationIds</c> 合并;<c>labelTypeId</c> 可选。
    /// </summary>
    Task<LabelGetOutputDto> CreateAsync(LabelCreateInputVo input);

    /// <summary>
    /// 批量导入标签(同一模板多行)。每行含标签基本字段与模板数据字段;可选合并写入模板 ProductDefaults。
    /// </summary>
    Task<LabelBatchCreateResultDto> BatchCreateAsync(LabelBatchCreateInputVo input);

    /// <summary>
    /// 编辑标签(id=LabelCode)。适用 Region / 门店字段同 <see cref="CreateAsync"/>。
    /// </summary>
    Task<LabelGetOutputDto> UpdateAsync(string id, LabelUpdateInputVo input);

    /// <summary>
    /// 删除标签(逻辑删除)
    /// </summary>
    Task DeleteAsync(string id);

    /// <summary>
    /// 标签预览:解析模板 AUTO_DB/PRINT_INPUT(不做打印落库)
    /// </summary>
    Task<LabelTemplatePreviewDto> PreviewAsync(LabelPreviewResolveInputVo input);
}