FoodLabelingBatchImportOptions.cs 1.87 KB
namespace FoodLabeling.Application.Options;

/// <summary>
/// 批量导入模板目录(服务器静态路径)等配置。
/// </summary>
public class FoodLabelingBatchImportOptions
{
    public const string SectionName = "FoodLabeling:BatchImport";

    /// <summary>
    /// 模板文件所在目录(Linux 示例:<c>/www/wwwroot/FoodLabelingManagementUs/batchImportOfFiles</c>)
    /// </summary>
    public string TemplateDirectory { get; set; } =
        "/www/wwwroot/FoodLabelingManagementUs/batchImportOfFiles";

    /// <summary>
    /// Location Manager 导入模板文件名(与服务器上已上传文件名一致)
    /// </summary>
    public string LocationTemplateFileName { get; set; } = "Location-Manager-批量导入模板.xlsx";

    /// <summary>
    /// Team Member 导入模板文件名(与服务器上已上传文件名一致)
    /// </summary>
    public string TeamMemberTemplateFileName { get; set; } = "Team-Member-批量导入模板.xlsx";

    /// <summary>
    /// Product(Menu Management)导入模板文件名
    /// </summary>
    public string ProductTemplateFileName { get; set; } = "Product-Manager-批量导入模板.xlsx";

    /// <summary>
    /// Team Member 批量导入时,Excel 未填写「Password」列则使用的默认初始密码
    /// </summary>
    public string TeamMemberImportDefaultPassword { get; set; } = "ChangeMe123!";

    /// <summary>
    /// 单次导入最多处理的数据行数(不含表头)
    /// </summary>
    public int MaxImportRows { get; set; } = 5000;

    /// <summary>
    /// 上传 Excel 最大体积(字节),默认 10MB
    /// </summary>
    public long MaxUploadBytes { get; set; } = 10 * 1024 * 1024;

    /// <summary>
    /// 单次「批量编辑」请求最多允许的条数(含空行过滤前的数组长度)
    /// </summary>
    public int MaxBulkUpdateItems { get; set; } = 500;
}