ILabelAppService.cs 2.25 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>locationIds</c>(可含哨兵 <c>ALL</c>,归档为 AppliedRegionType=ALL)。
    /// </summary>
    Task<LabelGetOutputDto> CreateAsync(LabelCreateInputVo input);

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

    /// <summary>
    /// 编辑标签(id=LabelCode)。范围传参与 <see cref="CreateAsync"/> 一致,支持 Id 数组传 <c>ALL</c>。
    /// </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);
}