import os
import sys
from typing import List, Optional
from utils.helper import format_output, validate_input
from models.user import User, UserRole
from services.auth import AuthService
from services.database import DatabaseConnection
from config.settings import Settings as AppSettings
import logging as log
def main():
log.info("Starting application")
settings = AppSettings()
settings.load_from_env()
db = DatabaseConnection(settings.db_url)
db.connect()
auth = AuthService(db)
user = User(
name="John Doe",
email="john@example.com",
role=UserRole.ADMIN
)
if validate_input(user.email):
auth.register_user(user)
output = format_output(f"User {user.name} registered")
print(output)
db.close()
log.info("Application finished")
if __name__ == "__main__":
main()