
import os
from flask import Flask, request, jsonify

app = Flask(__name__, instance_path=os.path.dirname(__file__))
application = app

# SECRET_KEY configurable para producción (cPanel/Passenger)
app.secret_key = os.environ.get(
    "SECRET_KEY",
    "97110c78ae51a45af397b6534caef90ebb9b1dcb3380f008f90b23a5d1616bf1bc29098105da20fe",
)

# Soporte para montaje bajo subcarpeta (ej: https://dominio.com/sigeduc)
# Passenger en cPanel suele definir SCRIPT_NAME.
app.config["APPLICATION_ROOT"] = os.environ.get("APPLICATION_ROOT", os.environ.get("SCRIPT_NAME", ""))
app.config["PREFERRED_URL_SCHEME"] = os.environ.get("PREFERRED_URL_SCHEME", "https")

# Configuración para subir archivos grandes (200MB)
app.config['MAX_CONTENT_LENGTH'] = 200 * 1024 * 1024  # 200MB en bytes



# Manejador de errores para archivos demasiado grandes
@app.errorhandler(413)
def too_large(e):
    return jsonify({
        'error': 'El archivo es demasiado grande',
        'message': 'El tamaño máximo permitido es 200MB',
        'code': 413
    }), 413


# Importando todos mis Routers (Rutas)
from routers.router_login import *
from routers.router_home import *
from routers.router_ie import *
from routers.router_admin import *
from routers.router_page_not_found import *
from routers.router_calendarizacion import *
from routers.router_guardar_calendarizacion import *
from routers.router_actualizar_estado_calendarizacion import *

# Ejecutando el objeto Flask
if __name__ == '__main__':
    app.run()
