import os
from datetime import timedelta
from .settings import (
    OLLAMA_URL,
    CHAT_ENDPOINT,
    OLLAMA_MODEL,
    OLLAMA_TIMEOUT,
    OLLAMA_TEMPERATURE,
    OLLAMA_TOP_P,
    OLLAMA_TOP_K,
    RETRY_TOTAL,
    RETRY_BACKOFF_FACTOR,
    RETRY_STATUS_FORCELIST,
    RETRY_ALLOWED_METHODS,
    CHATGPT_API_KEY
)

class Config:
    SECRET_KEY = os.environ.get('SECRET_KEY') or 'dev-key-please-change-in-production'
    SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL')
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    UPLOAD_FOLDER = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'uploads')
    MAX_CONTENT_LENGTH = 1024 * 1024 * 1024 
    ALLOWED_EXTENSIONS = {'txt', 'csv', 'xlsx', 'pdf', 'doc', 'docx', 'xls', 'xlsx', 'json', 'md'}
    PERMANENT_SESSION_LIFETIME = timedelta(days=1)
    SESSION_COOKIE_SECURE = True
    SESSION_COOKIE_HTTPONLY = True
    REMEMBER_COOKIE_SECURE = True
    REMEMBER_COOKIE_HTTPONLY = True
    OLLAMA_URL = OLLAMA_URL
    CHAT_ENDPOINT = CHAT_ENDPOINT
    OLLAMA_MODEL = OLLAMA_MODEL
    OLLAMA_TIMEOUT = OLLAMA_TIMEOUT
    OLLAMA_TEMPERATURE = OLLAMA_TEMPERATURE
    OLLAMA_TOP_P = OLLAMA_TOP_P
    OLLAMA_TOP_K = OLLAMA_TOP_K
    RETRY_TOTAL = RETRY_TOTAL
    RETRY_BACKOFF_FACTOR = RETRY_BACKOFF_FACTOR
    RETRY_STATUS_FORCELIST = RETRY_STATUS_FORCELIST
    RETRY_ALLOWED_METHODS = RETRY_ALLOWED_METHODS
    CHATGPT_API_KEY = CHATGPT_API_KEY

class DevelopmentConfig(Config):
    DEBUG = True
    SESSION_COOKIE_SECURE = False
    REMEMBER_COOKIE_SECURE = False

class ProductionConfig(Config):
    DEBUG = False

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