/**
 * 
 */
package org.springblade.etl.controller;

import org.springblade.etl.connector.sink.*;
import org.springblade.etl.connector.source.PlatomixCubeSource;
import org.springblade.etl.connector.source.PlatomixFtpFileSource;
import org.springblade.etl.connector.source.PlatomixHttpSource;
import org.springblade.etl.connector.source.PlatomixJdbcSource;
import org.springblade.etl.connector.source.PlatomixKafkaSource;
import org.springblade.etl.connector.source.PlatomixLocalFileSource;
import org.springblade.etl.connector.source.PlatomixMysqlCdcSource;
import org.springblade.etl.connector.transform.PlatomixRowStackTransform;
import org.springblade.etl.connector.transform.config.SeatunnelColumnAddTransformConfig;
import org.springblade.etl.connector.transform.config.SeatunnelColumnMergeTransformConfig;
import org.springblade.etl.connector.transform.config.SeatunnelColumnSelectTransformConfig;
import org.springblade.etl.connector.transform.config.SeatunnelConditionTransformConfig;
import org.springblade.etl.connector.transform.config.SeatunnelDistinctTransformConfig;
import org.springblade.etl.connector.transform.config.SeatunnelNullReplaceTransformConfig;
import org.springblade.etl.connector.transform.config.SeatunnelPrimaryKeyAddTransformConfig;
import org.springblade.etl.connector.transform.config.SeatunnelReplaceTransformConfig;
import org.springblade.etl.connector.transform.config.SeatunnelScriptJavaTransformConfig;
import org.springblade.etl.connector.transform.config.SeatunnelTypeConversionTransformConfig;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import springfox.documentation.annotations.ApiIgnore;

/**
 * @author wookvn
 *
 */
@RestController
@RequestMapping("/job-connector")
@Api(value = "连接器配置接口[仅做显示使用]", tags = "连接器配置接口[仅做显示使用]")
public class JobConnectorConfigController {

	@ApiIgnore
	@PostMapping("/config1")
	@ApiOperation(value = "SOURCE_CUBE:配置信息")
	public PlatomixCubeSource.Config conf1(){
		return new PlatomixCubeSource.Config();
	}
	
	@PostMapping("/config2")
	@ApiOperation(value = "SOURCE_FTPFILE|SOURCE_SFTPFILE:配置信息")
	public PlatomixFtpFileSource.Config conf2(){
		return new PlatomixFtpFileSource.Config();
	}
	
	@PostMapping("/config3")
	@ApiOperation(value = "SOURCE_LOCALFILE:配置信息")
	public PlatomixLocalFileSource.Config conf4(){
		return new PlatomixLocalFileSource.Config();
	}
	
	@PostMapping("/config4")
	@ApiOperation(value = "SOURCE_JDBC:配置信息")
	public PlatomixJdbcSource.Config conf5(){
		return new PlatomixJdbcSource.Config();
	}
	
	@PostMapping("/config5")
	@ApiOperation(value = "SOURCE_KAFKA:配置信息")
	public PlatomixKafkaSource.Config conf6(){
		return new PlatomixKafkaSource.Config();
	}
	
	@PostMapping("/config6")
	@ApiOperation(value = "SOURCE_MYSQL_CDC:配置信息")
	public PlatomixMysqlCdcSource.Config conf7(){
		return new PlatomixMysqlCdcSource.Config();
	}
	
	@PostMapping("/config7")
	@ApiOperation(value = "SOURCE_HTTP:HTTP配置信息")
	public PlatomixHttpSource.Config conf8(){
		return new PlatomixHttpSource.Config();
	}
	
	@PostMapping("/config50")
	@ApiOperation(value = "TRANSFORM_REPLACE:替换组件配置信息")
	public SeatunnelReplaceTransformConfig conf50(){
		return new SeatunnelReplaceTransformConfig();
	}
	
	@PostMapping("/config51")
	@ApiOperation(value = "TRANSFORM_CONDITION:条件组件配置信息")
	public SeatunnelConditionTransformConfig conf51(){
		return new SeatunnelConditionTransformConfig();
	}
	
	@PostMapping("/config52")
	@ApiOperation(value = "TRANSFORM_COLUMMERGE:列合并组件配置信息")
	public SeatunnelColumnMergeTransformConfig conf52(){
		return new SeatunnelColumnMergeTransformConfig();
	}
	
	@PostMapping("/config53")
	@ApiOperation(value = "TRANSFORM_COLUMADD:添加列组件配置信息")
	public SeatunnelColumnAddTransformConfig conf53(){
		return new SeatunnelColumnAddTransformConfig();
	}
	
	@PostMapping("/config54")
	@ApiOperation(value = "TRANSFORM_TYPECONVERSION:类型/格式转换组件配置信息")
	public SeatunnelTypeConversionTransformConfig conf54(){
		return new SeatunnelTypeConversionTransformConfig();
	}
	
	@PostMapping("/config55")
	@ApiOperation(value = "TRANSFORM_NULLREPLACE:NULL值替换组件配置信息")
	public SeatunnelNullReplaceTransformConfig conf55(){
		return new SeatunnelNullReplaceTransformConfig();
	}
	
	@PostMapping("/config56")
	@ApiOperation(value = "TRANSFORM_DISTINCT:去重组件配置信息")
	public SeatunnelDistinctTransformConfig conf56(){
		return new SeatunnelDistinctTransformConfig();
	}
	
	@PostMapping("/config57")
	@ApiOperation(value = "TRANSFORM_PRIMAYKEY_ADD:添加主键列组件配置信息")
	public SeatunnelPrimaryKeyAddTransformConfig conf57(){
		return new SeatunnelPrimaryKeyAddTransformConfig();
	}
	
	@PostMapping("/config58")
	@ApiOperation(value = "TRANSFORM_COLUMNSELECT:列选择组件配置信息")
	public SeatunnelColumnSelectTransformConfig conf58(){
		return new SeatunnelColumnSelectTransformConfig();
	}
	
	@PostMapping("/config59")
	@ApiOperation(value = "TRANSFORM_ROWSTACK:行堆叠组件配置信息")
	public PlatomixRowStackTransform.Config conf59(){
		return new PlatomixRowStackTransform.Config();
	}
	
	@PostMapping("/config60")
	@ApiOperation(value = "TRANSFORM_SCRIPT_JAVA:JAVA脚本组件配置信息")
	public SeatunnelScriptJavaTransformConfig conf60(){
		return new SeatunnelScriptJavaTransformConfig();
	}
	
	@PostMapping("/config100")
	@ApiOperation(value = "SINK_JDBC:配置信息")
	public PlatomixJdbcSink.Config conf100(){
		return new PlatomixJdbcSink.Config();
	}
	
	@PostMapping("/config101")
	@ApiOperation(value = "SINK_CLICKHOUSE:配置信息")
	public PlatomixClickhouseSink.Config conf101(){
		return new PlatomixClickhouseSink.Config();
	}
	
	@PostMapping("/config102")
	@ApiOperation(value = "SINK_FTPFILE|SINK_SFTPFILE:配置信息")
	public PlatomixFtpSink.Config conf102(){
		return new PlatomixFtpSink.Config();
	}
	@PostMapping("/config103")
	@ApiOperation(value = "SINK_MONGO|SINK_MONGO:配置信息")
	public PlatomixMongoSink.Config conf103(){
		return new PlatomixMongoSink.Config();
	}
	@PostMapping("/config999")
	@ApiOperation(value = "SINK_PREVIEW:预览组件配置信息")
	public PlatomixPreviewSink.Config conf999(){
		return new PlatomixPreviewSink.Config();
	}
}
