import datetime


class HardCoded(object):
    """Constants used throughout the application.

    All hard coded settings/data that are not actual/official configuration options for Flask, Celery, or their
    extensions goes here.
    """
    ADMINS = ['adam.schubert@sg1-game.net']
    DB_MODELS_IMPORTS = ('pritunl_dedicated',)  # Like CELERY_IMPORTS in CeleryConfig.
    ENVIRONMENT = property(lambda self: self.__class__.__name__)
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    LANGUAGE = 'cs'


class Config(HardCoded):
    """Default Flask configuration inherited by all environments. Use this for development environments."""
    DEBUG = True
    TESTING = False
    SECRET_KEY = "i_don't_want_my_cookies_expiring_while_developing_pritunl-dedicated"
    SQLALCHEMY_DATABASE_URI = 'sqlite:////tmp/pritunl_dedicated.db'
    JWT_ERROR_MESSAGE_KEY = 'message'
    #JWT_ACCESS_TOKEN_EXPIRES = datetime.timedelta(minutes=15)
    JWT_ACCESS_TOKEN_EXPIRES = False
    PORT = 5000
    HOST = '0.0.0.0'


class Testing(Config):
    TESTING = True


class Production(Config):
    DEBUG = False
    SECRET_KEY = None  # To be overwritten by a YAML file.
    PORT = None  # To be overwritten by a YAML file.
    HOST = None  # To be overwritten by a YAML file.