package com.ruoyi.common.importExcel.annotation;

import com.ruoyi.common.importExcel.excel.ExcelCellValueType;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import static com.ruoyi.common.importExcel.excel.ExcelCellValueType.STRING;

/**
 * @Description 设置对象属性对应excel表格中列的信息
 * @Author qianhd
 * @Date 2019/12/13 14:07
 * @Return 
 */
@Target({ ElementType.FIELD })
@Retention(value = RetentionPolicy.RUNTIME)
public @interface ExcelSheetColumn {

    /**
     * @Description 对应列的索引
     * @Param
     * @Author qianhd
     * @Date 2019/12/13 14:08
     * @Return
     */
    int index();

    /**
     * @Description 对应行的索引
     * @Param
     * @Author qianhd
     * @Date 2019/12/13 14:08
     * @Return
     */
    int row() default -1;

    /**
     * @Description 对应列的名称
     * @Param
     * @Author qianhd
     * @Date 2019/12/13 14:08
     * @Return
     */
    String colName();
    
    String i18nCode() default "";

    /**
     * @Description 对应列的背景色
     * @Param
     * @Author qianhd
     * @Date 2019/12/13 14:08
     * @Return
     */
    String color() default "";

    /**
     * @Description 字段类型
     * @Param
     * @Author qianhd
     * @Date 2019/12/14 12:09
     * @Return
     */
    ExcelCellValueType type() default STRING;

    /**
     * 字典类型
     * @return
     */
    String dictKey() default "";

    /**
     * @Description 能不能为空
     * @Param
     * @Author qianhd
     * @Date 2019/12/26 18:23
     * @Return
     */
    boolean notBlank() default true;

    /**
     * @Description 数据值的长度
     * @Param
     * @Author qianhd
     * @Date 2020/1/3 12:44
     * @Return
     */
    int maxLength() default 0;

    int minLength() default 0;

    /**
     * @Description 字段是否可重复
     * @Param
     * @Author qianhd
     * @Date 2020/1/3 12:44
     * @Return
     */
    boolean unique() default false;

    /**
     * @Description 重复校验分组，配合unique使用，默认为空单字段去重，需要多字段组合校验时设置组名
     * @Param
     * @Author qianhd
     * @Date 2020/1/3 12:44
     * @Return
     */
    String uniqueGroup() default "";

    /**
     * @Description 是否忽略（不会读取此列的值）
     * @Param
     * @Author qianhd
     * @Date 2020/1/3 12:44
     * @Return
     */
    boolean ignore() default false;

    /**
     * @Description 整数位数
     * @Param
     * @Author qianhd
     * @Date 2020/1/3 12:44
     * @Return
     */
    int intNum() default 8;

    /**
     * @Description 小数位数
     * @Param
     * @Author qianhd
     * @Date 2020/1/3 12:44
     * @Return
     */
    int precision() default 2;
}
