LabelBatchCreateItemInputVo.cs 1.87 KB
namespace FoodLabeling.Application.Contracts.Dtos.Label;

/// <summary>
/// 批量导入单行:标签基本字段 + 模板数据字段
/// </summary>
public class LabelBatchCreateItemInputVo
{
    public string? LabelCode { get; set; }

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

    public string? PartnerId { get; set; }

    public List<string>? PartnerIds { get; set; }

    /// <summary>适用 Company(单选)</summary>
    public List<string>? CompanyIds { get; set; }

    public string? AppliedRegionType { get; set; }

    public List<string>? RegionIds { get; set; }

    public List<string>? GroupIds { get; set; }

    public List<string>? LocationIds { get; set; }

    public string? LocationId { get; set; }

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

    public string? LabelTypeId { get; set; }

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

    /// <summary>标签级模板数据(落库 <c>fl_label.LabelInfoJson</c>);通常批量导入走模板 ProductDefaults</summary>
    public object? LabelInfoJson { get; set; }

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

    /// <summary>
    /// 已组装的模板默认值(elementId → 值)。若传入则优先使用,不再从下方结构化字段推导。
    /// </summary>
    public Dictionary<string, object?>? TemplateDefaultValues { get; set; }

    /// <summary>模板文本类录入(elementId → 文本)</summary>
    public Dictionary<string, string>? TemplateDataValues { get; set; }

    /// <summary>模板日期/时间/时长录入(elementId → 单位+数值)</summary>
    public Dictionary<string, LabelBatchDateOffsetInputVo>? TemplateDateOffsets { get; set; }

    /// <summary>营养成分手动录入(nutritionElementId → 子字段键值)</summary>
    public Dictionary<string, Dictionary<string, string>>? NutritionByElementId { get; set; }
}