UsAppLabelPrintInputVo.cs 2.07 KB
using System;
using System.Collections.Generic;
using System.Text.Json;

namespace FoodLabeling.Application.Contracts.Dtos.UsAppLabeling;

/// <summary>
/// App 打印入参
/// </summary>
public class UsAppLabelPrintInputVo
{
    /// <summary>
    /// 门店Id(fl_label.LocationId)
    /// </summary>
    public string LocationId { get; set; } = string.Empty;

    /// <summary>
    /// 标签编码(fl_label.LabelCode)
    /// </summary>
    public string LabelCode { get; set; } = string.Empty;

    /// <summary>
    /// 选择用于打印的产品Id(fl_product.Id)
    /// 不传则默认取该标签绑定的第一个产品
    /// </summary>
    public string? ProductId { get; set; }

    /// <summary>
    /// 打印份数(&lt;=0 则按 1 处理)
    /// </summary>
    public int PrintQuantity { get; set; } = 1;

    /// <summary>
    /// 客户端幂等请求Id(可选)。
    /// 同一个 clientRequestId 重复调用 print 接口时,后端会直接返回首次创建的 batchId/taskIds,不会重复写库。
    /// </summary>
    public string? ClientRequestId { get; set; }

    /// <summary>
    /// 业务基准时间(用于 DATE/TIME 等元素的计算)
    /// </summary>
    public DateTime? BaseTime { get; set; }

    /// <summary>
    /// 打印数据(对齐《标签模块接口对接说明(10)》):
    /// - App 推荐传:与平台导出 label-template-*.json 同构的<strong>合并后模板</strong>(含 elements[].config),便于落库后直接重打;
    /// - 兼容旧客户端:扁平字典(key 对齐元素 inputKey),由服务端 PreviewAsync 解析生成 RenderDataJson。
    /// </summary>
    public JsonElement? PrintInputJson { get; set; }

    /// <summary>
    /// 打印机Id(可选,若业务需要追踪)
    /// </summary>
    public string? PrinterId { get; set; }

    /// <summary>
    /// 打印机蓝牙 MAC(可选)
    /// </summary>
    public string? PrinterMac { get; set; }

    /// <summary>
    /// 打印机地址(可选)
    /// </summary>
    public string? PrinterAddress { get; set; }
}