ILabelTemplateAppService.cs 1.66 KB
using FoodLabeling.Application.Contracts.Dtos.Common;
using FoodLabeling.Application.Contracts.Dtos.LabelTemplate;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;

namespace FoodLabeling.Application.Contracts.IServices;

/// <summary>
/// 标签模板管理接口(美国版对外)
/// </summary>
public interface ILabelTemplateAppService : IApplicationService
{
    /// <summary>
    /// 标签模板分页列表;Query 支持 <c>partnerId</c>(Company)、<c>groupId</c>(Region)、<c>locationId</c>(门店)筛选;
    /// 出参含 <c>company</c>/<c>region</c>/<c>location</c>、<c>items</c>/<c>itemNames</c>(模板控件名称,逗号拼接)。
    /// <c>SkipCount</c> 为页码(从 1 起,第一页传 1)。
    /// </summary>
    Task<PagedResultWithPageDto<LabelTemplateGetListOutputDto>> GetListAsync(LabelTemplateGetListInputVo input);

    /// <summary>
    /// 标签模板详情(含 elements 与 Company/Region/Location 适用范围)
    /// </summary>
    Task<LabelTemplateGetOutputDto> GetAsync(string id);

    /// <summary>
    /// 新增标签模板;body 支持 Company/Region/Location 三维范围(各维度 ALL/SPECIFIED + Id 数组)。
    /// </summary>
    Task<LabelTemplateGetOutputDto> CreateAsync(LabelTemplateCreateInputVo input);

    /// <summary>
    /// 编辑标签模板(版本号 +1,重建 elements);适用范围多选规则同新增。
    /// </summary>
    Task<LabelTemplateGetOutputDto> UpdateAsync(string id, LabelTemplateUpdateInputVo input);

    /// <summary>
    /// 删除标签模板(逻辑删除;若已被标签引用则禁止)
    /// </summary>
    Task DeleteAsync(string id);
}