"""
User router for user registration and management
"""

from fastapi import APIRouter, HTTPException, Depends
from sqlalchemy.orm import Session
from models.user import User as UserPydantic
from models.users import User as UserORM
from models.user_chat_history import UserChatHistory
from core.database import get_db

router = APIRouter(prefix="", tags=["users"])


@router.post("/save-user")
async def register_user(user: UserPydantic, db: Session = Depends(get_db)):
    """Register a new user"""
    try:
        # Create user record
        new_user = UserORM(
            conversation_id=user.conversationId,
            name=user.name,
            email=user.email,
            phone=user.phone
        )
        db.add(new_user)
        db.commit()
        db.refresh(new_user)

        # Save history log in user_chat_history table without user_id
        if user.history_log:
            user_chat = UserChatHistory(
                conversation_id=user.conversationId,
                history_log=user.history_log
            )
            db.add(user_chat)
            db.commit()
            db.refresh(user_chat)

        return {
            "status": "success",
            "message": "User registered and chat history saved",
            "user_id": new_user.id
        }
    except Exception as e:
        db.rollback()
        raise HTTPException(status_code=500, detail=f"Error registering user: {str(e)}")
