#!/usr/bin/env python3
"""
app.py
======
Entry point ENIGMA Inventario.

Uso:
    python app.py              # Run con Flask dev server (debug)
    python app.py --prod       # Run in production mode
    python app.py --setup      # Setup database e user demo

Variabili ambiente (.env):
    FLASK_ENV=development|production
    FLASK_DEBUG=True|False
    DB_HOST, DB_USER, DB_PASS, DB_NAME
    JWT_SECRET_KEY
    SERVER_HOST, SERVER_PORT
"""

import os
import sys
from dotenv import load_dotenv

# Carica variabili da .env
load_dotenv()

# Import app factory
from app_init import create_app

def main():
    """Entry point principale."""
    
    # Parsing argomenti
    if len(sys.argv) > 1:
        cmd = sys.argv[1].lower()
        
        if cmd == '--setup':
            setup_demo()
            return
        elif cmd == '--prod':
            os.environ['FLASK_ENV'] = 'production'
            os.environ['FLASK_DEBUG'] = 'False'
        elif cmd == '--help':
            print(__doc__)
            return
    
    # Crea app
    app = create_app()
    
    # Server config
    host = os.getenv('SERVER_HOST', '0.0.0.0')
    port = int(os.getenv('SERVER_PORT', 5000))
    debug = os.getenv('FLASK_DEBUG', 'False') == 'True'
    
    # Banner
    print("\n" + "="*50)
    print("    🎯 ENIGMA Inventario")
    print("    Version: 0.1.0-demo")
    print(f"    Environment: {app.config['ENV']}")
    print("="*50)
    print(f"\n    ▶️  Server running at http://{host}:{port}")
    print(f"    🔧 Debug mode: {debug}\n")
    
    # Run
    app.run(host=host, port=port, debug=debug)

if __name__ == '__main__':
    main()
