from langchain_core.retrievers import BaseRetriever
from langchain.schema.document import Document
from langchain_core.callbacks.manager import CallbackManagerForRetrieverRun

from qdrant import QwinQdrantClient

class AffiliateRetriever(BaseRetriever):
    qdrant: QwinQdrantClient
    
    def _get_relevant_documents(self, query, run_manager: CallbackManagerForRetrieverRun):
        # return [Document(page_content=doc) 
        #         for doc in self.qdrant.search_affiliate_docs()]
        return [Document(page_content='Affiliate program is under developing. Qwin will announce when it will be ready.')]
    
def create_affiliate_retriever() -> AffiliateRetriever:
    return AffiliateRetriever(qdrant=QwinQdrantClient())