import sys from database import SessionLocal from models import User from services import AuthService from os import getenv def create_admin(): email = getenv("ADMIN_EMAIL") password = getenv("ADMIN_PASSWORD") if not email or not password: raise RuntimeError("ADMIN_EMAIL y ADMIN_PASSWORD is required.") if len(password) < 8: raise RuntimeError("ADMIN_PASSWORD need almost 8 caracters.") db = SessionLocal() try: existing = db.query(User).filter(User.email == email).first() if existing: print(f"[INFO] Admin '{email}' already exists, skipping creation.") return admin = User( name='Admin', email=email, password=AuthService.hash_password(password), rol='admin', active=True ) db.add(admin) db.commit() print(f"[INFO] Admin '{email}' created successfully.") except Exception as e: db.rollback() print(f"[ERROR] Failed to create admin: {e}", file=sys.stderr) raise finally: db.close()