import os
from pathlib import Path
from dotenv import load_dotenv
load_dotenv('../.env')

class Config(object):
    APP_HOST = '0.0.0.0'
    DATA = os.getenv('DATA')
    DEBUG = False
    TESTING = False
    SECRET_KEY = os.getenv('SECRET_KEY')
    SERVER_NAME = os.getenv('SERVER_NAME')
    SESSION_COOKIE_SECURE = True
    SQLALCHEMY_DATABASE_URI = f'sqlite:///{Path(os.path.abspath(f"{DATA}/database.db"))}'
    SQLALCHEMY_TRACK_MODIFICATIONS = False

    MAIL_SERVER = os.getenv('MAIL_SERVER')
    MAIL_PORT = int(os.getenv('MAIL_PORT'))
    MAIL_USE_TLS = False
    MAIL_USE_SSL = False
    MAIL_DEBUG = False
    MAIL_USERNAME = os.getenv('MAIL_USERNAME')
    MAIL_PASSWORD = os.getenv('MAIL_PASSWORD')
    MAIL_DEFAULT_SENDER = os.getenv('MAIL_DEFAULT_SENDER')
    MAIL_MAX_EMAILS = int(os.getenv('MAIL_MAX_EMAILS'))
    MAIL_SUPPRESS_SEND = False
    MAIL_ASCII_ATTACHMENTS = bool(os.getenv('MAIL_ASCII_ATTACHMENTS'))

class Production(Config):
    pass

class Development(Config):
    APP_HOST = '127.0.0.1'
    DEBUG = True
    SERVER_NAME = '127.0.0.1:5000'
    SESSION_COOKIE_SECURE = False
    MAIL_SERVER = 'localhost'
    MAIL_DEBUG = True
    MAIL_SUPPRESS_SEND = False

class Testing(Development):
    TESTING = True
    SESSION_COOKIE_SECURE = False
    MAIL_SERVER = os.getenv('MAIL_SERVER')
    MAIL_DEBUG = True
    MAIL_SUPPRESS_SEND = False