import os


class BaseConfig(object):
    # creativeId对应Thompson参数结果存放 redis key 前缀,完整格式:thompson:param:{creative_id}
    THOMPSON_PARAM_KEY_PREFIX = 'thompson:param:'


class TestConfig(BaseConfig):
    """测试环境配置"""
    # 日志服务配置
    ALIYUN_LOG = {
        'ENDPOINT': 'cn-hangzhou-intranet.log.aliyuncs.com',
        'ACCESSID': 'LTAIWYUujJAm7CbH',
        'ACCESSKEY': 'RfSjdiWwED1sGFlsjXv0DlfTnZTG1P',
        'PROJECT': 'algo-ad-server-test',
    }
    # 测试环境redis地址
    REDIS_INFO = {
        'host': 'r-bp1ps6my7lzg8rdhwx682.redis.rds.aliyuncs.com',
        'port': 6379,
        'password': 'Wqsd@2019',
    }


class PreProductionConfig(BaseConfig):
    """预发布环境配置"""
    # 日志服务配置
    ALIYUN_LOG = {
        'ENDPOINT': 'cn-hangzhou-intranet.log.aliyuncs.com',
        'ACCESSID': 'LTAIWYUujJAm7CbH',
        'ACCESSKEY': 'RfSjdiWwED1sGFlsjXv0DlfTnZTG1P',
        'PROJECT': 'algo-ad-server',
    }
    # 预发布环境redis地址
    REDIS_INFO = {
        'host': 'r-bp1yup71yo02ki3yb5.redis.rds.aliyuncs.com',
        'port': 6379,
        'password': 'Wqsd@2019',
    }


class ProductionConfig(BaseConfig):
    """生产环境配置"""
    # 日志服务配置
    ALIYUN_LOG = {
        'ENDPOINT': 'cn-hangzhou-intranet.log.aliyuncs.com',
        'ACCESSID': 'LTAIWYUujJAm7CbH',
        'ACCESSKEY': 'RfSjdiWwED1sGFlsjXv0DlfTnZTG1P',
        'PROJECT': 'algo-ad-server',
    }
    # 生产环境redis地址
    REDIS_INFO = {
        'host': 'r-bp1yup71yo02ki3yb5.redis.rds.aliyuncs.com',
        'port': 6379,
        'password': 'Wqsd@2019',
    }


def set_config():
    # 获取环境变量 AD_SERVER_ENV
    env = os.environ.get('AD_SERVER_ENV')
    # env = 'test'
    if env is None:
        # log_.error('ENV ERROR: is None!')
        return
    if env == 'test':
        return TestConfig()
    elif env == 'pre':
        return PreProductionConfig()
    elif env == 'pro':
        return ProductionConfig()
    else:
        # log_.error('ENV ERROR: is {}'.format(env))
        return