/**
 * 
 */
package org.springblade.etl.connector.sink.config;

import java.io.Serializable;
import java.util.List;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

import org.springblade.datasource.transform.general.GeneralModel;
import org.springblade.etl.enums.DataWriteMode;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @author wookvn
 *
 */
@Data
public class PlatomixJdbcSinkBaseConfig implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	/**
	 * SINK数据源ID
	 */
	@NotNull(message = "Sink数据源不能为空")
	@ApiModelProperty("数据源ID")
	private Integer datasourceId;
	/**
	 * 表名
	 */
	@NotEmpty(message = "Sink数据表不能为空")
	@ApiModelProperty("表名")
	private String tableName;
	/**
	 * 数据追加方式
	 */
	@ApiModelProperty("数据追加方式")
	private DataWriteMode writeMode = DataWriteMode.APPEND_INSERT;
	/**
	 * 自动建表
	 */
	@ApiModelProperty("是否自动建表【默认：false】")
	private Boolean autoCreateTable = false;
	@ApiModelProperty("Source数据源ID【自动建表使用】")
	private Integer sourceDatasourceId;
	@ApiModelProperty("Source数据源表名【自动建表使用】")
	private String sourceTableName;
	@ApiModelProperty("Sink表注释【自动建表使用】")
	private String sinkTableComment;
	@ApiModelProperty("表字段信息【自动建表使用】")
	private List<GeneralModel> generalColumnList;
}
