001package cn.mybatis.mp.generator.config;
002
003import lombok.Getter;
004
005import java.util.ArrayList;
006import java.util.Arrays;
007import java.util.List;
008
009/**
010 * 列配置
011 */
012@Getter
013public class ColumnConfig {
014
015    /**
016     * 排除列
017     */
018    private final List<String> excludeColumns = new ArrayList<>();
019
020    /**
021     * 禁止修改的列
022     */
023    private final List<String> disableUpdateColumns = new ArrayList<>();
024
025    /**
026     * 禁止查询列
027     */
028    private final List<String> disableSelectColumns = new ArrayList<>();
029
030    /**
031     * 乐观锁列名
032     */
033    private String versionColumn = "";
034
035    /**
036     * 租户ID列名
037     */
038    private String tenantIdColumn = "";
039
040    /**
041     * 排除列
042     */
043    public ColumnConfig excludeColumns(String... columns) {
044        this.excludeColumns.addAll(Arrays.asList(columns));
045        return this;
046    }
047
048    /**
049     * 禁止修改的列
050     */
051    public ColumnConfig disableUpdateColumns(String... columns) {
052        this.disableUpdateColumns.addAll(Arrays.asList(columns));
053        return this;
054    }
055
056    /**
057     * 禁止查询列
058     */
059    public ColumnConfig disableSelectColumns(String... columns) {
060        this.disableSelectColumns.addAll(Arrays.asList(columns));
061        return this;
062    }
063
064    /**
065     * 乐观锁列名
066     *
067     * @param versionColumn
068     * @return
069     */
070    public ColumnConfig versionColumn(String versionColumn) {
071        this.versionColumn = versionColumn;
072        return this;
073    }
074
075    /**
076     * 租户ID列名
077     *
078     * @param tenantIdColumn
079     * @return
080     */
081    public ColumnConfig tenantIdColumn(String tenantIdColumn) {
082        this.tenantIdColumn = tenantIdColumn;
083        return this;
084    }
085}