# coding=utf-8
import os

basedir = os.path.abspath(os.path.dirname(__file__))
USERNAME = 'flaskg'
PASSWORD = 'plus'
HOSTNAME = 'localhost'
DATABASE = 'flaskg'


class Config:
    SECRET_KEY = 'ni cia cai a'
    SQLALCHEMY_COMMIT_ON_TEARDOWN = True
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    FLASKG_MAIL_SUBJECT_PREFIX = '[FLASKG]'
    FLASKG_MAIL_SENDER = 'lambdaplus@163.com'
    FLASKG_ADMIN = 'lambdaplus@163.com'

    @staticmethod
    def init_app(app):
        pass


class DevelopmentConfig(Config):
    DEBUG = True
    MAIL_SERVER = 'smtp.163.com'
    MAIL_PORT = 25
    MAIL_USE_TLS = True
    MAIL_USERNAME = 'lambdaplus@163.com'
    MAIL_PASSWORD = 'B13010418'  # os.environ.get('MAIL_PASSWORD')
    SQLALCHEMY_DATABASE_URI = os.environ.get('DEV_DATABASE_URL') or \
        'mysql://{}:{}@{}/{}'.format(
            USERNAME, PASSWORD, HOSTNAME, DATABASE)
# 'sqlite:///' + os.path.join(basedir, 'data-dev.sqlite')


class TestingConfig(Config):
    TESTING = True
    SQLALCHEMY_DATABASE_URI = os.environ.get('TEST_DATABASE_URL') or \
        'mysql://{}:{}@{}/{}'.format(
            USERNAME, PASSWORD, HOSTNAME, DATABASE)
    #    'sqlite:///' + os.path.join(basedir, 'data-test.sqlite')


class ProductionConfig(Config):
    SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \
        'mysql://{}:{}@{}/{}'.format(
            USERNAME, PASSWORD, HOSTNAME, DATABASE)
    #    'sqlite:///' + os.path.join(basedir, 'data.sqlite')


config = {
    'development': DevelopmentConfig,
    'testing': TestingConfig,
    'product': ProductionConfig,
    'default': DevelopmentConfig
}
