ILabelAppService.cs 1.73 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> 按 Region 筛选(命中 <c>fl_label_region</c> 或 <c>AppliedRegionType=ALL</c>);出参含 <c>region</c>、<c>regionIds</c>、<c>appliedRegionType</c>。
    /// </summary>
    Task<PagedResultWithPageDto<LabelGetListOutputDto>> GetListAsync(LabelGetListInputVo input);

    /// <summary>
    /// 标签详情(id=LabelCode)。出参含 <c>appliedRegionType</c>、<c>region</c>、<c>regionIds</c>、<c>groupIds</c>。
    /// </summary>
    Task<LabelGetOutputDto> GetAsync(string id);

    /// <summary>
    /// 新增标签。Body 支持 <c>appliedRegion</c>(ALL/SPECIFIED)、<c>regionIds</c> / <c>groupIds</c>(<c>fl_group.Id</c> 数组,落库 <c>fl_label_region</c>)。
    /// </summary>
    Task<LabelGetOutputDto> CreateAsync(LabelCreateInputVo 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);
}