LabelCreateInputVo.cs 2.38 KB
namespace FoodLabeling.Application.Contracts.Dtos.Label;

public class LabelCreateInputVo
{
    /// <summary>标签编码(可选;未传或空字符串时由后端自动生成唯一编码)</summary>
    public string? LabelCode { get; set; }

    public string LabelName { get; set; } = string.Empty;

    public string TemplateCode { get; set; } = string.Empty;

    /// <summary>
    /// 适用 Company(<c>fl_partner.Id</c>);与 <see cref="PartnerIds"/> / <see cref="CompanyIds"/> 合并,单选
    /// </summary>
    public string? PartnerId { get; set; }

    /// <summary>
    /// 适用 Company 多选字段(仅支持 1 个;与 <see cref="CompanyIds"/> 相同)
    /// </summary>
    public List<string>? PartnerIds { get; set; }

    /// <summary>
    /// 适用 Company(单选,<c>fl_partner.Id</c>);与 <see cref="PartnerId"/> / <see cref="PartnerIds"/> 合并
    /// </summary>
    public List<string>? CompanyIds { get; set; }

    /// <summary>
    /// 适用 Region 范围:<c>ALL</c> / <c>SPECIFIED</c>。
    /// 亦可在 <see cref="RegionIds"/> / <see cref="LocationIds"/> 传哨兵 <c>["ALL"]</c>(即使本字段为 SPECIFIED 亦归档 ALL;POST/PUT 均支持)。
    /// </summary>
    public string? AppliedRegionType { get; set; }

    /// <summary>
    /// 适用 Region 多选(<c>fl_group.Id</c>);与 <see cref="GroupIds"/> 合并;可含 <c>ALL</c>
    /// </summary>
    public List<string>? RegionIds { get; set; }

    /// <summary>
    /// 适用 Region 多选(与 <see cref="RegionIds"/> 相同);可含 <c>ALL</c>
    /// </summary>
    public List<string>? GroupIds { get; set; }

    /// <summary>
    /// 适用门店 Id 数组(<c>location.Id</c>);可含 <c>ALL</c>;落库 <c>fl_label_location</c>
    /// </summary>
    public List<string>? LocationIds { get; set; }

    /// <summary>
    /// 兼容旧入参:单门店 Id;与 <see cref="LocationIds"/> 合并,首项写入 <c>fl_label.LocationId</c>
    /// </summary>
    public string? LocationId { get; set; }

    public string LabelCategoryId { get; set; } = string.Empty;

    /// <summary>标签类型 Id(<c>fl_label_type.Id</c>);可选,未传时标签不绑定类型</summary>
    public string? LabelTypeId { get; set; }

    public List<string> ProductIds { get; set; } = new();

    public object? LabelInfoJson { get; set; }

    public bool State { get; set; } = true;
}