package org.springblade.sqlfly.type;

/**
 * postgreSql数据类型映射到Java
 * 
 * @author William
 * @date 2022年10月28日 上午11:31:36
 */
public class PostgreType extends JavaType {

	public PostgreType() {
	}

	@Override
	public String get(String dataType) {
		String type = dataType.toLowerCase();
		if (type.contains("int")) {
			if (type.contains("int8")) {
				return "Long";
			}
			return "Integer";
		}

		if (type.contains("serial")) {
			if (type.contains("bigserial")) {
				return "Long";
			}
			return "Integer";
		}

		if (type.contains("enum")) {
			return "Integer";
		}

		if (type.contains("float")) {
			if (type.contains("float8")) {
				return "Double";
			}
			return "Float";
		}

		if (type.contains("money")) {
			return "Double";
		}

		if (type.contains("bit") || type.contains("bool")) {
			return "Boolean";
		}

		if (type.contains("numeric")) {
			return "BigDecimal";
		}

		if (type.contains("time")) {
			return "Date";
		}

		return "String";
	}

	@Override
	public String get(String dataType, int size, int scale) {
		return null;
	}

}
