package com.smppw.constants;

import com.smppw.common.pojo.enums.Indicator;
import com.smppw.common.pojo.enums.strategy.Strategy;

import java.util.Arrays;
import java.util.List;

/**
 * @author Yu Liu
 *
 */
public class Consts {
	public final static String YEAR_DATE_PATTERN = "yyyy";
	public final static String SHORT_DATE_PATTERN = "yyyy-MM";
	public final static String DEFAULT_DATE_PATTERN = "yyyy-MM-dd";
	public final static String WEEK_DATE_PATTERN = "yyyyww";
	public static final String INIT_YEAR = "1990";
	public final static String START_DATE = "1900-01-01";

	public final static String REQUEST_ID_IN_LOG = "_req_id_in_log";

	public static final String SPACE = " ";

	public static final String SERVER_TIME_ZONE = "Asia/Shanghai";

	public static final String SPLUNK_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSS";

	public static final String BENCHMARK = "IN00000008";
	public static final String RISK_OF_FREE = "IN0000000M";
	public static final boolean IGNORE_DATA_CHECK = false;



	public static final Double INFINITY = 999999D;
	public static final int STRTEGY_COUNT = 8;

	public static final String INCEP = "incep";
	public static final String MAX_NAV_DATE = "maxNavDate";
	public static final String YTD = "ytd";
	public static final String INCEP_DATE_RANGE = "inceptDateRange";

	public static final List<Strategy> STRATEGY_SQUENCE = Arrays.asList(Strategy.Equity,
			Strategy.Future, Strategy.Bond, Strategy.Portfolio, Strategy.Multiple,
			Strategy.Others);

	public static final List<String> CATES_INDUSTRY_CITIC5 = Arrays.asList("Finance", "Period", "Comsumption", "Growth",
			"Stability", "Cash");
	public static final List<String> CATES_INDUSTRY_CSI10 = Arrays.asList("Materials", "Telecommunication Services",
			"Industrials", "Utilities", "Financials", "ComsumerDiscretionary", "Energy", "ConsumerStaples",
			"InformationTechnology", "Health Care", "Cash");

	/**
	 * beta1         农林牧渔        IN000000O6
	 * beta2         基础化工灵      IN000000O8
	 * beta3         钢铁灵          IN000000O9
	 * beta4         有色金属灵      IN000000OA
	 * beta5         电子灵          IN000000OB
	 * beta6         家用电器        IN000000OC
	 * beta7         食品饮料        IN000000OD
	 * beta8         纺织服饰        IN000000OE
	 * beta9         轻工制造        IN000000OF
	 * beta10        医药生物        IN000000OG
	 * beta11        公用事业        IN000000OH
	 * beta12        交通运输        IN000000OI
	 * beta13        房地产          IN000000OJ
	 * beta14        商贸零售        IN000000OK
	 * beta15        社会服务        IN000000OL
	 * beta16        综合           IN000000OM
	 * beta17        建筑材料       IN000000ON
	 * beta18        建筑装饰       IN000000OO
	 * beta19        电力设备       IN000000OP
	 * beta20        国防军工       IN000000OQ
	 * beta21        计算机         IN000000OR
	 * beta22        传媒           IN000000OS
	 * beta23        通信           IN000000OT
	 * beta24        银行           IN000000OU
	 * beta25        非银金融       IN000000OV
	 * beta26        汽车          IN000000OW
	 * beta27        机械设备      IN000000OX
	 * beta28        煤炭          IN000002CY
	 * beta29        石油石化      IN000002CZ
	 * beta30        环保          IN000002D0
	 * beta31        美容护理      IN000002D1
	 * beta32        现金          IN0000007G
	 *
	 * 添加最后三个
	 */
	public static final List<String> CATES_INDUSTRY_SHENWAN = Arrays.asList("AgroforestryFishing",
			"ChemicalIndustry", "Steel", "NonferrousMetal", "Electronics", "HouseholdElectric", "FoodBeverage",
			"TextileClothing", "LightIndustry", "MedicalBiology", "PublicService", "Transportation", "RealEstate",
			"CommercialTrade", "LeisureService", "Comprehensive", "BuildingMaterial", "BuildingDecoration",
			"ElectricalEquipment", "DefenseMilitary", "Computer", "Media", "Communication", "Bank", "NonBankFinance",
			"Automobile", "MechanicalEquipment", "coal" ,"Petrochemical","GreenInitiative","BeautyCare","Cash");

	public static final List<String> CATES_VALUE_GROWTH_CNI6STYLE = Arrays.asList("LargeCapGrowth", "LargeCapValue",
			"MiddleCapGrowth", "MiddleCapValue", "SmallCapGrowth", "SmallCapValue", "Cash");
	public static final List<String> CATES_VALUE_GROWTH_CNI2STYLE = Arrays.asList("Growth", "Value", "Cash");
	public static final List<String> CATES_VALUE_GROWTH_CNI6STRATEGY = Arrays.asList("LargeCapLowVolatility",
			"LargeCapHighBeta", "MiddleCapLowVolatility", "MiddleCapHighBeta", "SmallCapLowVolatility",
			"SmallCapHighBeta", "Cash");

	public static final List<String> CATES_ASSET_STYLE_MULTI_ASSET = Arrays.asList("CSI300", "CBI", "CCFI", "Cash");
	public static final List<String> CATES_ASSET_STYLE_RONG_ZHI_STRATEGY = Arrays.asList("Equity", "Bond", "Future",
			"Relative", "Cash");
	
	//沪深300，中证500，中证1000，恒生指数，中证海外（不含香港），中债总指数，南华商品指数，现金
	public static final List<String> CATES_ASSET_STYLE_SEGMENTATION_ASSET = Arrays.asList("CSI300", "CIC500", "CIC1000","HSI","CICOverseas",
			"TotalDebtIndex", "CommodityFuture", "Cash");
	
//	public static final List<String> CATES_ASSET_STYLE_SEGMENTATION_ASSET = Arrays.asList("CSI300", "CIC500", "CIC1000",
//			"TotalDebtIndex", "CommodityFuture", "Cash");

	public final static List<Indicator> DRAWDOWN_RELATIVE = Arrays.asList(Indicator.MaxDrawdown,
			Indicator.MaxDrawdownInterval, Indicator.MaxDrawdownRecureDate, Indicator.MaxDrawdownRecureInterval,
			Indicator.CalmarRatio);
	public static final String MAX_INCEPT = "maxIncept";
	public static final String MIN_INCEPT = "minIncept";
	public static final String MAX_NEW = "maxNew";
	public static final String MIN_NEW = "minNew";

	public static final List<String> POSSHARPE_LIST = Arrays.asList("(0, 1]", "(1, 2]", "(2, 3]", "(3, 4]", "(4, +)");
	public static final List<String> MAXDRAWDOWN_LIST = Arrays.asList("(0, 5%]", "(5%, 10%]", " (10%, 20%]",
			"(20%, 30%]", " (30%, +)");
	public static final List<String> MANAGEMENT_SCALE = Arrays.asList("(0, 1]", "(1, 10]", "(10, 20]", "(20, 50]",
			"(50, +)");
	public static final List<String> POS_NEG_LIST = Arrays.asList("+", "-");
	public static final List<String> MAIN_CITY = Arrays.asList("上海", "深圳", "北京", "杭州", "广州", "南京");

	/**
	 * 管理期货RBSA相关指数类名称list
	 */
	public static final List<String> ZHONGZHENG_CFI = Arrays.asList("CSI300", "Wealth", "NobleMetal",
			"EnergyChemicalEngineering", "IndustrialMetal", "FarmProduce");
	public static final List<String> ZHONGZHENG_COMMODITY = Arrays.asList("CSI300", "Wealth", "NobleMetal", "Energy",
			"ChemicalIndustry", "IndustrialMetal", "Oil", "Spin", "FoodStuff");
	public static final List<String> NANHUA_FUTURE_INDEX = Arrays.asList("CSI300", "Wealth", "NobleMetal", "Metal",
			"EnergyChemicalEngineering", "FarmProduce");
	public static final List<String> WIND_FUTURE_INDEX = Arrays.asList("CSI300", "Wealth", "NobleMetal",
			"NonferrousMetal", "CoalCharSteel", "NonmetallicBuildingMaterials", "Energy", "ChemicalIndustry", "Grain",
			"Oil", "SoftCommodity", "FarmProduce");
	public static final List<String> MONITORING_CENTER_SEGMENTATION = Arrays.asList("CSI300", "Wealth", "Oil",
			"FoodStuff", "SoftCommodity", "Feed", "Grain", "BuildingMaterial", "EnergyChemicalEngineering", "Steel");
	public static final List<String> MONITORING_CENTER_LARGE = Arrays.asList("CSI300", "CAFI", "CIFI");
	public static final List<String> ZHONGXIN_COMMODITY = Arrays.asList("CSI300", "Wealth", "FarmProduce", "Oil",
			"NonferrousMetal", "NobleMetal", "EnergyChemicalEngineering", "BlackBuildingMaterials");
	public static final List<String> RISK_FACTOR = Arrays.asList("CSI300", "Wealth", "NanHuaCommodity",
			"CommodityTrend", "CommodityMomentum", "TermStructure");
	public static final double PROB = 0.05;

	//新增排排网orgId 2021-08-03 by David
	public static final int ORGANIZATION_ID = 14724;

	// 数据库中老策略（融智八大策略）信息的PID，对应`rz_hfdb_core`.`fund_parameters`的p_id
	public static final String OLD_STRATEGY_PID = "8deb7afa-672e-dba4-2b70-3abf789b8e19";

	// 数据库中策略信息的PID，对应`rz_hfdb_core`.`fund_parameters`的p_id
	public static final String STRATEGY_PID = "dd43bcd2-fe60-8db7-805f-ec31f620fda8";

	// 数据库中公募策略信息
	public static final String PUBLIC_STRATEGY_PID = "f910b5d5-fadc-40eb-7336-7716a4303d97";

	// 基金策略确认状态 - 已确认
	public static final Integer FUND_STRATEGY_STATUS_CONFIRMED = 2;
	// 基金策略确认状态 - 确认中
	public static final Integer FUND_STRATEGY_STATUS_CONFIRMING = 1;
	// 基金策略确认状态 - 待确认
	public static final Integer FUND_STRATEGY_STATUS_UNCONFIRMED = 0;

	/**
	 * 排排网·对冲基金信心指数
	 */
	public static final String CONFIDENT_INDEX = "IN0000000L";

	/**
	 * 默认的序列号版本号
	 */
	public static final long DEFAULT_SERIAL_VERSION_UID = 888L;
}
