import hashlib
import os
from utility.function import Function
from connectors.firebase.firebase import Firebase
fb = Firebase(host=os.environ.get("FIREBASE_HOST"))
func = Function()
class C360Search:
    def __init__(self, property_id: str):
        self.property_id = property_id
    

    def get_profile(self, key:str, value:str):
        # Transform
        #if key == 'phoneNumber' -- >66xxxxxxxxx
        if key and value:
            if key == 'phoneNumber' and value:
                value = Function.clean_and_format_thai_phone_number(value)
            
            searchVal = hashlib.sha256(value.encode()).hexdigest()
                
            #find in profile mapping
            user_pseudo_id = fb.db.reference().child(f"account/{self.property_id}/profile_temp/{key}/{searchVal}").get(shallow=True)
            if user_pseudo_id:
                return user_pseudo_id
            else:
                return None
        else:
            return None
    
    def get_profile_by_user_pseudo_id(self, user_pseudo_id: str):
        if not user_pseudo_id:
            return None
        
        data = fb.db.reference().child(f"account/{self.property_id}/profile/{user_pseudo_id}").get()
        return data if data else None
