package com.ningdatech.pmapi.common.model.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Collection;
import java.util.List;


/**
 *  文件模板导出对象
 * @author CMM
 * @since 2023/02/11 11:26
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ExcelExportWriter {
    /**
     * 文件名称
     */
    private String fileName;

    /**
     * sheet 名称数组
     */
    private List<String> sheets;

    /**
     * 是否启用 头部Excel属性。
     * 如果使用，则会读取 class对象注解 ExcelProperty 属性值。
     * 不启用：则会根据heads 动态对列名称去便利
     */
    private Boolean headPropertyFlag;

    /**
     * 头部属性class
     */
    private Class headPropertyClass;

    /**
     * 动态列名称
     * 描述：
     * 第一个List 代表：sheet 列表集合
     * 第二个List 代表：表体行数据（集合）
     * 第三个list 代表：表体列数据（集合）
     */
    private List<List<List<String>>> heads;


    /**
     * 数据对象
     * 1、对象写：根据对象固定字段写（分为三层）
     * 第二个List 代表：表体行数据（集合）
     * 第三个对象（class）  对象
     * List<ActivityUserPrizeVO>
     *
     * 2、无对象写（动态表体数据） 分为三层
     * 第一个List 代表：表体行数据（集合）
     * 第二个list 代表：表体列数据（集合）
     * List<List<Object>>
     */
    private Collection<?> datas;
}
