from core.config import get_db
from core.security.authentication import hash_password, get_user
from core.security.exceptions import CoreDBError
from models import Parent, User
from schema.parent import ParentResponseSchema
from schema.user import GuestResponseSchema


class GuestService:


    def update_profile(self,guest_id,request):
        with get_db() as db:
            payload=request.model_dump()
            print(payload)
            try:
                db.query(User).filter(User.id==guest_id,User.user_type=='guest').update(payload)
                db.commit()
            except Exception as e:
                db.rollback()
                raise CoreDBError(f"Could not create account: {e}")


    def get_guest_profile(self,guest_id):
        with get_db() as db:
            instance=db.query(User).filter(User.id==guest_id,User.user_type=='guest').first()
            return GuestResponseSchema.model_validate(instance).model_dump()
