import os


class BaseConfig(object):
    # ODPS服务配置
    ODPS_CONFIG = {
        'ENDPOINT': 'http://service.cn.maxcompute.aliyun.com/api',
        'ACCESSID': 'LTAIWYUujJAm7CbH',
        'ACCESSKEY': 'RfSjdiWwED1sGFlsjXv0DlfTnZTG1P',
    }
    # adIdeaId对应Thompson参数结果存放 redis key 前缀,完整格式:thompson:param:{ad_idea_id}
    THOMPSON_PARAM_KEY_PREFIX = 'thompson:param:'
    FEISHU_ROBOT = {
        'server_robot': {
            'webhook': 'https://open.feishu.cn/open-apis/bot/v2/hook/8de4de35-30ed-4692-8854-7a154e89b2f2',
            # 自定义关键词key_word
            'key_word': '服务报警'
        },
    }


class TestConfig(BaseConfig):
    """测试环境配置"""
    # 报警内容 环境区分
    ENV_TEXT = "测试环境"
    # 测试环境redis地址
    REDIS_INFO = {
        'host': 'r-bp1ps6my7lzg8rdhwx682.redis.rds.aliyuncs.com',
        'port': 6379,
        'password': 'Wqsd@2019',
    }


class PreProductionConfig(BaseConfig):
    """预发布环境配置"""
    # 报警内容 环境区分
    ENV_TEXT = "预发布环境"
    # 预发布环境redis地址
    REDIS_INFO = {
        'host': 'r-bp1yup71yo02ki3yb5.redis.rds.aliyuncs.com',
        'port': 6379,
        'password': 'Wqsd@2019',
    }


class ProductionConfig(BaseConfig):
    """生产环境配置"""
    # 报警内容 环境区分
    ENV_TEXT = "生产环境"
    # 生产环境redis地址
    REDIS_INFO = {
        'host': 'r-bp1yup71yo02ki3yb5.redis.rds.aliyuncs.com',
        'port': 6379,
        'password': 'Wqsd@2019',
    }


def set_config():
    # 获取环境变量 AD_SERVER_OFFLINE_ENV
    env = os.environ.get('AD_SERVER_OFFLINE_ENV')
    # env = 'test'
    if env is None:
        return
    if env == 'test':
        return TestConfig()
    elif env == 'pre':
        return PreProductionConfig()
    elif env == 'pro':
        return ProductionConfig()
    else:
        return