import os


DEFAULT_DATABASE_URL = 'sqlite:///financials.db'


def get_database_url():
    database_url = os.environ.get('DATABASE_URL', DEFAULT_DATABASE_URL)
    if database_url.startswith('sqlite:///instance/'):
        return 'sqlite:///' + database_url.removeprefix('sqlite:///instance/')
    return database_url


class Config:
    SECRET_KEY = os.environ.get('SECRET_KEY', 'dev-secret-key-change-in-production')
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    WTF_CSRF_ENABLED = True
    MAX_CONTENT_LENGTH = 32 * 1024 * 1024  # 32 MB max upload (PDF statements)


class DevelopmentConfig(Config):
    DEBUG = True
    SQLALCHEMY_DATABASE_URI = DEFAULT_DATABASE_URL


class ProductionConfig(Config):
    DEBUG = False
    SQLALCHEMY_DATABASE_URI = DEFAULT_DATABASE_URL


config = {
    'development': DevelopmentConfig,
    'production': ProductionConfig,
    'default': DevelopmentConfig,
}
